弾をうつ
投稿者 : 猫太郎(p6071-ipad12sasajima.aichi.ocn.ne.jp)
- 2006/01/06(Fri) 19:59
No.9146
|
|
|
|
|
どうも猫太郎です。またまた質問です。 自分が向いている方向に弾を撃つというのはどうすればできますか?教えてください!
|
Re: 弾をうつ
投稿者 : kkk(i58-93-172-138.s05.a001.ap.plala.or.jp)
- 2006/01/06(Fri) 23:22
No.9149
|
|
|
|
まず、弾($TAMA)の方に
extends DXChar; while(1){ x-=cos(angle+90)*20; //*20を変更する事により、速度を変更 y-=sin(angle+90)*20; //↑に同じく p=$pat_******; update(); }
次に機体の方に
if(getkey(32)){ appear(new TAMA(x,y,0,0,0,angle)); }
と、書いて置きます。 (スペースと撃つと仮定した場合) 急に作った代物ですので、しっかりと動かないかも知れませんが…
|
Re: 弾をうつ
投稿者 : 猫太郎(p1179-ipad46sasajima.aichi.ocn.ne.jp)
- 2006/01/07(Sat) 08:40
No.9150
|
|
|
|
すいません僕の書き方がまずかったのでシューティングゲームとかんちがいしてしまったみたいですね。 僕が作っているのは、方向キーで移動して、スペースキーで弾を発射する迷路のようなゲーム(上から見たような)です。 どうか、おねがいします。
|
Re: 弾をうつ
投稿者 : kkk(i58-93-172-138.s05.a001.ap.plala.or.jp)
- 2006/01/07(Sat) 12:18
No.9151
|
|
|
|
ん?…四方向タイプの物でしたか? どのような迷路ゲームなのかは解りませんが…上の方式では駄目でしたか?
|
Re: 弾をうつ
投稿者 : 猫太郎(p3142-ipad01sasajima.aichi.ocn.ne.jp)
- 2006/01/07(Sat) 17:46
No.9153
|
|
|
|
撃つと上の方向にたくさん飛んで行って 左に移動しながら撃つと右に少しまがり、 右に移動しながら撃つと少し左にまがるんです。
|
Re: 弾をうつ
投稿者 : kkk(i58-93-172-138.s05.a001.ap.plala.or.jp)
- 2006/01/07(Sat) 19:38
No.9154
|
|
|
|
>撃つと上の方向にたくさん飛んで行って 弾道は放射上に広がるのですか?それとも、横一列に何発も? >左に移動しながら撃つと右に少しまがり この曲がると言うのは、少しずつ曲がるのでしょうか? それとも、斜めに発射されるのでしょうか?
|
Re: 弾をうつ
投稿者 : 猫太郎(p5230-ipad44sasajima.aichi.ocn.ne.jp)
- 2006/01/07(Sat) 20:42
No.9157
|
|
|
|
一列に並んで飛んでいきます。 移動していないか、上、下、に移動しているときは、シューティングゲームのようにまっすぐ一列に上に弾が飛んで、 右、左に移動しているときは、進行方向の逆斜めに弾が発射されます。
|
Re: 弾をうつ
投稿者 : kkk(i58-93-172-138.s05.a001.ap.plala.or.jp)
- 2006/01/07(Sat) 21:16
No.9158
|
|
|
|
でしたらそれ程、難しくは無い筈です。 素人(私)でも、簡単に組める物を出して見ようと思います。
extends SpriteChar; while(1) { if (getkey(右)>0) x=x+3; if (getkey(左)>0) x=x-3; if (getkey(上)>0) y=y+3; if (getkey(下)>0) y=y-3; if (getkey(発射)==1){ appear(new Tama(x,y,$pat_******)); appear(new Tama(x+10,y,$pat_******)); appear(new Tama(x-10,y,$pat_******)); appear(new Tama(x+20,y,$pat_******)); appear(new Tama(x-20,y,$pat_******)); } if (getkey(右)>0 && getkey(発射)==1){ appear(new Tama2(x,y,$pat_******)); appear(new Tama2(x+10,y,$pat_******)); appear(new Tama2(x-10,y,$pat_******)); appear(new Tama2(x+20,y,$pat_******)); appear(new Tama2(x-20,y,$pat_******)); } if (getkey(左)>0 && getkey(発射)==1){ appear(new Tama3(x,y,$pat_******)); appear(new Tama3(x+10,y,$pat_******)); appear(new Tama3(x-10,y,$pat_******)); appear(new Tama3(x+20,y,$pat_******)); appear(new Tama3(x-20,y,$pat_******)); } update(); }
(発射弾数は5発と仮定。位置等はご自由に設定して下さい)
tama:只の直進弾 tama2;左斜めに発射される弾 tama3:右斜めに発射される弾
これですと、斜め移動中でも曲がる様にはなる筈です。 動作実験していないので定かでは有りませんが… 極力、簡単かつ弄り易い物にして見たので、激しく無様ですがご容赦を。
|
推察ですが・・・
投稿者 : 迦葉(ZS207176.ppp.dion.ne.jp)
- 2006/01/08(Sun) 00:57
No.9159
|
|
|
|
全部真上にしか飛んでいってないのではないでしょうか・・弾が。
自機が移動しているので相対的にみて斜めに飛んでいるように見えるとか。
自機の説明です。
extends SpriteChar; muki=0;
// 向きをあらわす変数を作ります。上下左右を順番に0123とします。 // 例えば左向きの時muki=2です。
while(1) { if(getkey(37)>0){x--;muki=2;} if(getkey(38)>0){y--;muki=0;} if(getkey(39)>0){x++;muki=3;} if(getkey(40)>0){y++;muki=1;}
// 移動すると共に向きを決めます。雑ですが。
if(getkey(32)%10==0){
if(muki==0){appear(new tama0(x,y));} if(muki==1){appear(new tama1(x,y));} if(muki==2){appear(new tama2(x,y));} if(muki==3){appear(new tama3(x,y));}
}
// 嫌な書き方ですが。一定の時間間隔ごとに弾を撃ちます。 // 間隔を短くしたければ%10を%5とかにしてください。 // %は割ったあまりと言う意味です。
update();}
ここまでですが、tama1とかtama2はそれぞれ上下左右の方向に飛ぶように書いてください。
たとえばtama2だと左向きに飛ぶべきなので extends SpriteChar; while(1){ x-=2; update();}
とかです。返答が見当違いですとかが非常に怖いのですが・・。
|
Re: 弾をうつ
投稿者 : 猫太郎(p4022-ipad45sasajima.aichi.ocn.ne.jp)
- 2006/01/08(Sun) 08:59
No.9162
|
|
|
|
うおお!寝ている間にこんなにも! どうもありがとうございます。 また質問するとおもいますが、よろしくお願いします。
|
|