HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0801
ウーパールーパーどすれば…17解決


ウーパールーパー

リンク

2007/8/1(Wed) 11:47:01|NO.10002


screen 0,500,500 a=250 b=250 c=0 d=5 cls 1 *ii repeat redraw 1 color 219,219,255 boxf 10,10,490,490 color 0,0,0 pos 100,100 mes"○" pos a,b mes"●" stick key, 15 ;キー入力 if key & 1 : a=a-d ;左 if key & 2 : b=b-d ;上 if key & 4 : a=a+d ;右 if key & 8 : b=b+d ;下 if key & 128 : end ;[Esc] if a=100 :goto *kuku *kukukuku if a <= 10 : a=10 if a >= 475 : a=475 if b <= 10 : b=10 if b >= 475 : b=475 await 60 loop *kuku if b=100:goto *kukuku goto *kukukuku *kukuku wait 2 cls mes"クリアー   " stop
これに敵とかつけたい
んですけど
どすれば
いいですか



この記事に返信する


KENTA

リンク

2007/8/1(Wed) 11:52:19|NO.10004

まあ、今度はヒントだけ・・・。

まず、自分と同じ動きにしたいなら、自分の動きと同じように敵の動きを作れ!!


その質問の仕方だと他にどんな敵の動きや攻撃の仕方が分からない。



ウーパールーパー

リンク

2007/8/1(Wed) 11:55:31|NO.10005

>その質問の仕方だと他にどんな敵の動きや攻撃の仕方が分からない。
敵 △▲▽▼∴∵の6種
攻撃法 ぶつかる負けそのかわり動く
=かわすゲーム



KENTA

リンク

2007/8/1(Wed) 12:00:37|NO.10006

>攻撃法 ぶつかる負けそのかわり動く

左から右へか上から下へなどの直線なのか、
ボールが反射するように動くのか、などなど・・・がよく分からない。

その動きを具体的に教えてください。



ウーパールーパー

リンク

2007/8/1(Wed) 12:07:28|NO.10007

反射するかんじですね



KENTA

リンク

2007/8/1(Wed) 12:11:52|NO.10008

ならば、ボールが反射するソースを応用すればいいと思います。
↓これがボールの反射するやつ。

siz=20 x=0 y=0 sx=1 sy=1 move=5 *main redraw 0 color 255,255,255 boxf color circle x,y,x+siz,y+siz if x!limit(x,0,ginfo_winx-siz) :x=limit(x,0,ginfo_winx-siz) :sx*=-1 if y!limit(y,0,ginfo_winy-siz) :y=limit(y,0,ginfo_winy-siz) :sy*=-1 x+sx*move y+sy*move redraw wait 1 goto *main



ウーパールーパー

リンク

2007/8/1(Wed) 18:43:38|NO.10020

意味不



KENTA

リンク

2007/8/1(Wed) 18:49:52|NO.10021

何が意味不明なんですか?
具体的に書いてください。

変数の意味が分からないなら、変数の意味を教えてあげます。
x,y :ボールの座標
sx,sy :ボールの方向
move :ボールの移動量
siz :ボールのサイズ

limitなどの命令が分からないなら、ヘルプで調べてみてください。



ウーパールーパー

リンク

2007/8/1(Wed) 18:51:43|NO.10022

if x!limit(x,0,ginfo_winx-siz) :x=limit(x,0,ginfo_winx-siz) :sx*=-1
が意味不



KENTA

リンク

2007/8/1(Wed) 18:54:14|NO.10023

その判定ですか・・・。

それは

if x<=0 :x=0 :sx*=-1 if x>=ginfo_winx-siz :x=ginfo_winx-siz :sx*=-1
と同じ意味になります。



ウーパールーパー

リンク

2007/8/1(Wed) 19:01:54|NO.10025

二個にしたい



なまこ

リンク

2007/8/1(Wed) 19:04:00|NO.10026

何にも調べる気のない奴に教えるなんて無駄。
調子に乗るだけだから、放置したほうがいいと思うが?



KENTA

リンク

2007/8/1(Wed) 19:06:11|NO.10027

配列変数を使ってみてください。
↓これは、さっきのボールのやつの配列を使ったやつ。

siz=20 dim x,2 dim y,2 dim sx,2 dim sy,2 repeat 2 x(cnt)=rnd(ginfo_winx-siz) y(cnt)=rnd(ginfo_winy-siz) sx(cnt)=1 sy(cnt)=1 loop move=5 *main redraw 0 color 255,255,255 boxf color repeat 2 circle x(cnt),y(cnt),x(cnt)+siz,y(cnt)+siz if x(cnt)!limit(x(cnt),0,ginfo_winx-siz) :x(cnt)=limit(x(cnt),0,ginfo_winx-siz) :sx(cnt)*=-1 if y(cnt)!limit(y(cnt),0,ginfo_winy-siz) :y(cnt)=limit(y(cnt),0,ginfo_winy-siz) :sy(cnt)*=-1 x(cnt)+sx(cnt)*move y(cnt)+sy(cnt)*move loop redraw wait 1 goto *main



ウーパールーパー

リンク

2007/8/1(Wed) 19:10:03|NO.10028

>配列変数を使ってみてください。
なにそれ



ウーパールーパー

リンク

2007/8/1(Wed) 19:14:52|NO.10029

重なるとゲームオーバーってどうやるの



なまこ

リンク

2007/8/1(Wed) 19:23:41|NO.10030

検索って日本語知ってるか?



KENTA

リンク

2007/8/1(Wed) 19:28:18|NO.10031

>配列変数
一度はgoogleで調べてみたら? ↓
http://www.google.co.jp/search?hl=ja&rlz=1T4SUNA_ja___JP223&q=HSP+%E9%85%8D%E5%88%97%E5%A4%89%E6%95%B0%E3%80%80dim+&lr=

>重なるとゲームオーバーってどうやるの
両方から判定を行って、座標が重なったらゲームオーバーにするようにすればいいとおもいます。

siz=20 dim tx,100 //配列変数100個 dim ty,100 x=0 y=0 foreach tx tx(cnt)=rnd(ginfo_winx-siz) //位置を設定する ty(cnt)=rnd(ginfo_winy-siz) loop *main redraw 0 color 255,255,255 boxf color foreach tx //foreach txはrepeat length(tx)と同じ。 circle tx(cnt),ty(cnt),tx(cnt)+siz,ty(cnt)+siz//描画する if tx(cnt)=x & ty(cnt)=y :dialog "ゲームオーバー" :stop //ここで重なっているかの判定をする loop stick sk,15 if sk&1 :x-2 if sk&2 :y-2 if sk&4 :x+2 if sk&8 :y+2 color 255 circle x,y,x+siz,y+siz,0 redraw wait 1 goto *main



ウーパールーパー

リンク

2007/8/1(Wed) 19:31:13|NO.10032

ありがとございやす




ONION software Copyright 1997-2023(c) All rights reserved.