[戻る] 最新記事| 前後の記事|

- 以下は、記事NO. 3783 に関する 返信フォーム です -
弾の問題。 投稿者 : Ultima(FLA1Aaf195.kgw.mesh.ad.jp)
- 2003/06/20(Fri) 15:10 No.3783
 


敵と弾がぶつかると同時に消える処理と、ある敵に弾が当たると跳ね返る処理を作りたいのですがどうしたらイイですか。


Re: 弾の問題。 投稿者 : JAM(pl052.nas313.okayama.nttpc.ne.jp)
- 2003/06/20(Fri) 23:42 No.3785
 
シューティングゲームの作成チュートリアル<敵を破壊する>で,
敵キャラのプログラムとして,
  for (t in $chars) {
   if ( t is Tama && crashTo(t) ) die();
  }
というのがあったと思います.
これを
  for (t in $chars) {
   if ( t is Tama && crashTo(t) ) {
     t.die();         //←追加箇所
        die();
    }
  }
とすると敵と弾が同時に消えます.

跳ね返る処理はこれを応用し,弾のy成分の速度をvyで処理しているとして,
  for (t in $chars) {
   if ( t is Tama && crashTo(t) ) {
     t.vy=-t.vy;        //←変更箇所
        die();
    }
  }
とすると弾が敵に当たるとy成分の速度が反転して跳ね返っているように見えます.
ここは跳ね返っている風に見えるように適宜調整してください.


Re: 弾の問題。 投稿者 : Ultima(FLA1Aad034.kgw.mesh.ad.jp)
- 2003/06/21(Sat) 12:14 No.3787
 
跳ね返る処理で敵に当たるとエラーが起こりました。どうしたらイイですか。


Re: 弾の問題。 投稿者 : Ultima(FLA1Aad034.kgw.mesh.ad.jp)
- 2003/06/21(Sat) 12:16 No.3788
 
エラーは直りました。が、敵に当たっても跳ね返りません。どうしたらイイですか。


Re: 弾の問題。 投稿者 : JAM(pl088.nas313.okayama.nttpc.ne.jp)
- 2003/06/21(Sat) 23:37 No.3796
 
弾のy成分の速度をvyで処理していないことが考えられます.
弾の方のプログラム内に
y+=vy;
が含まれているでしょうか.

これで直らなければプログラムを添付してもらわないと
これ以上の原因究明はできませんのであしからず.


Re: 弾の問題。 投稿者 : Ultima(FLA1Aaa094.kgw.mesh.ad.jp)
- 2003/06/22(Sun) 12:32 No.3798
 
やってみましたが直りません。
添付しようと思ってもたぶん容量が大きすぎるともいます。


Re: 弾の問題。 投稿者 : N.(126.78.244.43.ap.livedoor.jp)
- 2003/06/22(Sun) 15:45 No.3801
 
相当大掛かりなゲームを作っていらっしゃるようですね。
bmpは増えてくると容量が大きくなるため、pngにしたほうがいいと思います。
もちろんランタイム化して添付する必要はありませんし、圧縮すれば、相当小さくなります。
それでもだめなら・・・・・サンプルを新たに作るしかありませんね。。。


Re: 弾の問題。 投稿者 : JAM(pl014.nas313.okayama.nttpc.ne.jp)
- 2003/06/23(Mon) 00:50 No.3802
 
Download:3802.lzh 3802.lzh
これ以上ないほど単純な,弾が敵に当たると跳ね返るサンプルプログラムです.
スペースキーを押すと弾が発射されます.

きちんと動かない原因は,プログラムに足りないものがあるか,
もしくは処理を邪魔する余計なものがあるせいだと思うので,
ご自身のプログラムと比べて,足りないものを付け加え,
もしくは余計な箇所を削ればきちんと動くでしょう.
また,プログラムに大幅な変更を加えるときはもちろん
そうでないときも日頃からプログラムのバックアップを取ることをお勧めします.


Re: 弾の問題。 投稿者 : N.(xfw2.hc.cc.keio.ac.jp)
- 2003/06/23(Mon) 10:55 No.3803
 
>また,プログラムに大幅な変更を加えるときはもちろん
>そうでないときも日頃からプログラムのバックアップを取ることをお勧めします.

激しく同意です.私も初代作品を再起不能にしてしまいました.
新しい機能をつける場合、あらたに研究用プログラムを立てることにしています.


Re: 弾の問題。 投稿者 : Ultima(FLA1Aac208.kgw.mesh.ad.jp)
- 2003/06/23(Mon) 16:35 No.3806
 
圧縮や、バックアップの仕方が分かりません。
あと僕が作っているのは、テスト版です。
でも余りよくないですけど。


Re: 弾の問題。 投稿者 : Ultima(FLA1Aac208.kgw.mesh.ad.jp)
- 2003/06/23(Mon) 16:53 No.3807
 
跳ね返る処理は諦めました。
けど、pngって何?


Re: 弾の問題。 投稿者 : Ultima(FLA1Aac208.kgw.mesh.ad.jp)
- 2003/06/23(Mon) 17:29 No.3808
 
Download:3808.zip 3808.zip コレを見てくダサい。
たぶんよくないと思う。


Re: 弾の問題。 投稿者 : JAM(pl068.nas322.okayama.nttpc.ne.jp)
- 2003/06/24(Tue) 01:34 No.3810
 
諦めないで下さい.私の努力も無駄になってしまいます.
pngは画像の形式です.ネットで検索して調べてください.
バックアップは適当にフォルダを作って,そこにバックアップしたい
フォルダをコピーしてください.

さて,それでは本題です.
プログラムを見ての推測ですが,tamaがUFOにぶつかるときの処理として話を進めます.
跳ね返らない原因は二つ.

まずはtamaのプログラムで,UFOに当たったときtamaが死ぬ処理をしていること.
詳しく言うと,15行目のdie();が不要です.

次にUFOのプログラムで,弾を跳ね返す処理がwhileループの中に入っていないこと.
whileループの前に書いてあるので,一番最初に一度だけ実行されて,以降一度も実行されなくなっています.
for (t in $chars) {
  if ( t is Tama && crashTo(t) ) {
    t.vy=-t.vy;       
   }
}
を,この場合は2つ,2番目と3番目のwhileループの中に入れて下さい.

これで直ると思いますが,直ったもののなぜ直ったか分からない場合は,
一度ヘルプやチュートリアルを理解できるまで良く読むことをお勧めします.


Re: 弾の問題。 投稿者 : Ultima(FLA1Aad047.kgw.mesh.ad.jp)
- 2003/06/25(Wed) 17:22 No.3817
 
弾が跳ね返る処理は出来ましたが、跳ね返った弾にぶつかると死ぬ
ようにするにはどうしたらイイですか?
あと、時間制にしてカウントやカウントが0になったら死ぬようにしたいのですがどうしたらイイですか?


Re: 弾の問題。 投稿者 : けんと(YahooBB220018124020.bbtec.net)
- 2003/06/25(Wed) 20:49 No.3818
 
「1つのスレッドにつきトピック(質問)1つ」を守ってください
と上に書いているのを見ました?


Re: 弾の問題。 投稿者 : Ultima(FLA1Aac223.kgw.mesh.ad.jp)
- 2003/06/26(Thu) 16:44 No.3820
 
ごめんなさい読んでいませんでした。


おなまえ
Eメール
タイトル
メッセージ
推薦記事
添付File
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色