敵が倒せません・・・
投稿者 : よー(p1081-ipbf211kyoto.kyoto.ocn.ne.jp)
- 2005/05/16(Mon) 17:57
No.8194
|
|
|
|
|
何故か、自機が踏んでも敵が倒せません。 ソースは以下の通りです。
extends SpriteChar; vx=-2; // 進行方向 a=newAnimation(); // AnimationAdapterを作成 a.loop($pat_Teki+0,$pat_Teki+2,10); // 敵の3つのパターンを往復するアニメーション function appearTeki2() { if (rnd( 50 )==0) appear(new Teki2(x,y,$pat_Teki2+0)); } while(1) { if (crashTo($Jiki)) { // 自機とぶつかったら if ( $Jiki.y < y-8 && $Jiki.vy>0 ) { // 自機は敵より少し上にいて、下方向に速度をもっているならば die(); // 敵が死ぬ $Jiki.vy=-5; // 自機がはねあがる } else { $Jiki.die(); // そうでなければ自機が死ぬ } } x+=vx; // 進行方向へ進む if (vx<0) f=1; else f=0; // vx が負(左向き)なら反転 while(x<$screenWidth) { x=x+2; appearTeki2(); update(); } while(x>0) { x=x-2; appearTeki2(); update(); } } Jiki=自機 Teki=敵 Teki2=敵が投げる武器です。 よろしくお願いします。
|
Re: 敵が倒せません・・・
投稿者 : xsb007(YahooBB221044056135.bbtec.net)
- 2005/05/16(Mon) 19:02
No.8195
|
|
|
|
while(1) { ////////////// *A* ////////////////////////// if (crashTo($Jiki)) { // 自機とぶつかったら if ( $Jiki.y < y-8 && $Jiki.vy>0 ) { // 自機は敵より少し上にいて、下方向に速度をもっているならば die(); // 敵が死ぬ $Jiki.vy=-5; // 自機がはねあがる } else { $Jiki.die(); // そうでなければ自機が死ぬ } } x+=vx; // 進行方向へ進む if (vx<0) f=1; else f=0; // vx が負(左向き)なら反転 ////////////// *A*ここまで ////////////////////////// while(x<$screenWidth) { x=x+2; appearTeki2(); /*A*/ update(); } while(x>0) { x=x-2; /*A*/ appearTeki2(); update(); } } としてしまうと、*A* の部分が画面左で折り返す瞬間しか実行されません。 *A*の部分を、functionにして、/*A*/のところ(2か所とも)で呼び出すようにしてください。
|
Re: 敵が倒せません・・・
投稿者 : よー(p1081-ipbf211kyoto.kyoto.ocn.ne.jp)
- 2005/05/16(Mon) 20:43
No.8198
|
|
|
|
頑張ってみたのですが、だめです。 何故か、敵の出した武器を踏むと倒せてしまい、本体は倒せないし、自機が当たっても自機は死にません。
さっきの通りやった後の敵のソースです。↓
while(1) { function if (crashTo($Jiki)) { // 自機とぶつかったら if ( $Jiki.y < y-8 && $Jiki.vy>0 ) { // 自機は敵より少し上にいて、下方向に速度をもっているならば die(); // 敵が死ぬ $Jiki.vy=-5; // 自機がはねあがる } else { $Kazu.die(); // そうでなければ自機が死ぬ $projectManager.loadPage($page_start); } } x+=vx; // 進行方向へ進む if (vx<0) f=1; else f=0; // vx が負(左向き)なら反転 function while(x<$screenWidth) { x=x+2; appearTeki2(); function update(); } while(x>0) { x=x-2; function appearTeki2(); update(); } }
↑の通りです。どうでしょう・・・?
|
Re: 敵が倒せません・・・
投稿者 : xsb007(YahooBB221044056135.bbtec.net)
- 2005/05/16(Mon) 21:19
No.8199
|
|
|
|
functionにするというのは単にfunctionに置き換えるのではなく、function fname(){} にいれることです。
extends SpriteChar; vx=-2; // 進行方向 a=newAnimation(); // AnimationAdapterを作成 a.loop($pat_Teki+0,$pat_Teki+2,10); // 敵の3つのパターンを往復するアニメーション function appearTeki2() { if (rnd( 50 )==0) appear(new Teki2(x,y,$pat_Teki2+0)); } while(1) { function atari() { if (crashTo($Jiki)) { // 自機とぶつかったら if ( $Jiki.y < y-8 && $Jiki.vy>0 ) { // 自機は敵より少し上にいて、下方向に速度をもっているならば die(); // 敵が死ぬ $Jiki.vy=-5; // 自機がはねあがる } else { $Jiki.die(); // そうでなければ自機が死ぬ } } x+=vx; // 進行方向へ進む if (vx<0) f=1; else f=0; // vx が負(左向き)なら反転 } while(x<$screenWidth) { x=x+2; atari(); appearTeki2(); update(); } while(x>0) { x=x-2; atari(); appearTeki2(); update(); } }
|
Re: 敵が倒せません・・・
投稿者 : よー(p1081-ipbf211kyoto.kyoto.ocn.ne.jp)
- 2005/05/17(Tue) 10:43
No.8203
|
|
|
|
何度もすみません!! 文法エラーになってしまって・・・
extends SpriteChar; function onDie() { appear(new Teki2(x , y ,$pat_Enemy1+0)); } vx=-2; // 進行方向 a=newAnimation(); // AnimationAdapterを作成 a.loop($pat_Enemy1+0,$pat_Enemy1+1,10); // 敵の2つのパターンを往復するアニメーション function appearTeki2() { if (rnd( 50 )==0) appear(new Teki2(x,y,$pat_maze+4)); } while(1) { function fname(){ if (crashTo($Jiki)) { // 自機とぶつかったら if ( $Jiki.y < y-8 && $Jiki.vy>0 ) { // 自機は敵より少し上にいて、下方向に速度をもっているならば die(); // 敵が死ぬ $Jiki.vy=-5; // 自機がはねあがる } else { $Jiki.die(); // そうでなければ自機が死ぬ } } x+=vx; // 進行方向へ進む if (vx<0) f=1; else f=0; // vx が負(左向き)なら反転 } while(x<$screenWidth) { x=x+2; appearTeki2(); function fname(){ update(); } while(x>0) { x=x-2; } appearTeki2(); update(); } }
どうですか・・・? すみません、よろしくお願いします。
ファイル添付の仕方がわからない・・・(汗
|
Re: 敵が倒せません・・・
投稿者 : N@N(actkyo136178.adsl.ppp.infoweb.ne.jp)
- 2005/05/17(Tue) 17:03
No.8204
|
|
|
|
8204.zip
function 関数の名前(){//中身} というのは、枝分かれみたいなもので、 関数の名前(); と書いて「呼び出す」と、//中身 の部分をその場で通ることができます。 そういう意味で、これはプログラムの最初か最後に書いておくほうがよいでしょう。1回書けば何度でも呼び出せます。
サンプルを組み上げてみました。enemyに、修正したプログラムが書かれています。
|
Re: 敵が倒せません・・・
投稿者 : N@N(actkyo136178.adsl.ppp.infoweb.ne.jp)
- 2005/05/17(Tue) 17:12
No.8205
|
|
|
|
ファイル添付の仕方ですが、 @(無い場合は)圧縮ソフトを手に入れる。 「圧縮ソフト」などで検索すると、関係するページが見つかると思います。 A圧縮ソフトの設定を「zip形式」にして、添付したい作品のフォルダ全体を圧縮する。 B圧縮後の大きさが200kB以下であることを確認して(右クリック→プロパティで分かります)、書き込むときに参照ボタンで選択する。 こんな流れになると思います。 圧縮ソフトの詳しい使い方は、そのマニュアルを参照してください。ファイルが大きすぎる時は、音声ファイルなどを除いてみてください。
|
Re: 敵が倒せません・・・
投稿者 : よー(p1081-ipbf211kyoto.kyoto.ocn.ne.jp)
- 2005/05/18(Wed) 17:03
No.8210
|
|
|
|
ありがとうございました。 おかげ様で丸くおさまりました(笑
|
|