ミサイル
投稿者 : あっくん(p15052-adsao04atuta2-acca.aichi.ocn.ne.jp)
- 2004/08/13(Fri) 10:12
No.6846
|
|
|
|
|
向いている方向にミサイルを討ちたいのですが、うまくいく時と、そうでない時があります。どうしたら良いか教えてもらえますか? player
extends SpriteChar;
$map.setBGColor(color(0,20,255)); // 背景色を設定
while(1) { if (getkey(39)>0 && x<$screenWidth && $map.getAt(x+16,y)!=$pat_ima+4){ x+=3;vx+=6;vy=0;p=$pat_ima+8;} if (getkey(37)>0 && x>0 && $map.getAt(x-16,y)!=$pat_ima+4) {x-=3;vx-=6;vy=0; p=$pat_ima+10;} if (getkey(40)>0&& y<$screenHeight && $map.getAt(y+16,x)!=$pat_ima+4){ y+=3;vy+=6;vx=0;p=$pat_ima+11;} if (getkey(38)>0 && y>0 && $map.getAt(y-16,x)!=$pat_ima+4){y-=3;vy-=6;vx=0;p=$pat_ima+0;} if (getkey(32)==1) { nobj=appear(new tama(x,y,$pat_ima+2)); nobj.vx=vx; nobj.vy=vy; } update(); }
tama
extends SpriteChar;
while(1) { x+=vx;y+=vy; update(); }
|
Re: ミサイル
投稿者 : ラティウス(o051012.ap.plala.or.jp)
- 2004/08/13(Fri) 15:45
No.6849
|
|
|
|
tamaを
extends SpriteChar;
ang=angle(vx,vy+n); n=0; //この数値を変えれば向きが変わる while(1) { x+=sin(ang); y+=cos(ang); update(); }
|
Re: ミサイル
投稿者 : あっくん(p30053-adsao01atuta2-acca.aichi.ocn.ne.jp)
- 2004/09/18(Sat) 11:03
No.7177
|
|
|
|
向いている方向にうまく弾が行きません。 どうすれば良いのですか?
|
Re: ミサイル
投稿者 : デックン(YahooBB220018124018.bbtec.net)
- 2004/09/18(Sat) 23:00
No.7182
|
|
|
|
多分、動いていないときに弾を撃つとこの現象がおきるようです。 while(1) { の上に vx=6;vy=0; vx=-6;vy=0; vx=0;vy=-6; vx=0;vy=6; のどれかを追加してあげてください。
|
Re: ミサイル
投稿者 : kenji(YahooBB220010104081.bbtec.net)
- 2004/09/18(Sat) 23:30
No.7184
|
|
|
|
キャラをSpriteCharではなくDxCharにしてangleで操作したほうが効率が良いです。
extends DxChar;
$map.setBGColor(color(0,20,255));
while(1) { if (getkey(39)>0 && x<$screenWidth && $map.getAt(x+16,y)!=$pat_ima+4){x+=3;angle=90;} //移動&グラフィック回転 if (getkey(37)>0 && x>0 && $map.getAt(x-16,y)!=$pat_ima+4) {x-=3;angle=270;} //移動&グラフィック回転 if (getkey(40)>0&& y<$screenHeight && $map.getAt(y+16,x)!=$pat_ima+4){ y+=3;angle=180;} //移動&グラフィック回転 if (getkey(38)>0 && y>0 && $map.getAt(y-16,x)!=$pat_ima+4){y-=3;angle=0} //移動&グラフィック回転 if (getkey(32)==1) { nobj=appear(new tama(x,y,$pat_ima+2)); nobj.vx=cos(angle)*3; //向いている方向を取得しcosでX移動量設定 nobj.vy=sin(angle)*3; //向いている方向を取得しsinでY移動量設定 } update(); }
|
Re: ミサイル
投稿者 : あっくん(p30053-adsao01atuta2-acca.aichi.ocn.ne.jp)
- 2004/09/19(Sun) 16:19
No.7186
|
|
|
|
ありがとうございました。向いている方向にうまく撃てましたが、弾がとてもゆっくりです。どうやって速さを変えるんですか?
|
Re: ミサイル
投稿者 : デックン(YahooBB220018124018.bbtec.net)
- 2004/09/19(Sun) 18:06
No.7187
|
|
|
|
nobj.vx=cos(angle)*3; //向いている方向を取得しcosでX移動量設定 nobj.vy=sin(angle)*3; //向いている方向を取得しsinでY移動量設定 多分、上の3のところを大きくすると早くなると思います。 未確認ですが
|
Re: ミサイル
投稿者 : あっくん(p30053-adsao01atuta2-acca.aichi.ocn.ne.jp)
- 2004/09/19(Sun) 20:59
No.7188
|
|
|
|
7188.lzh
速さが変わりませんでした。 どうすれば良いですか? ファイルを添付しておきます。
|
Re: ミサイル
投稿者 : デックン(YahooBB220018124018.bbtec.net)
- 2004/09/19(Sun) 21:18
No.7189
|
|
|
|
|