無題
投稿者 : 02(softbank221057004008.bbtec.net)
- 2007/10/22(Mon) 23:06
No.11562
|
|
|
|
|
シューティングゲームでCONTINUE 出来るようにこのようなプログラムを作りました。
extends TextChar; flag=0; zOrder=1; t=timeStop(); //時間を止める while(1) { i++; if (flag==0) { text=" "; }else{ text="CONTINUE?"; } if (i>30) { if (flag==0) { flag=1; }else{ flag=0; } i=0; } if (getkey(32)==1) { //スペースキーを押したら t.releaseAll(); //時間を再開する if (getkey(32)==1) appear(new MyChar (x,y,$pat_Sample+0)); die(); } update(); }
これだとスペースキーを押したときに自機(MyChar) が復活するものの新しい自機が敵に当っても死ななくなって しまいます。どこを直せば良いですか? 因みに自機は extends SpriteChar;
function onDie() { appear(new Text4(x,y)); }
while(1) { i++; j++; k++; if (getkey(39)>0 && x<$screenWidth) x=x+3; if (getkey(37)>0 && x>0) x=x-3; if (getkey(40)>0 && y<650) y=y+3; if (getkey(38)>0 && y>0) y=y-3; if (getkey(90)>0 && i>5) { appear(new Tama(x,y,$pat_Sample+1)); i=0; } if (getkey(65)>0) { if (k>1 && j<30){ appear(new Tama3(x,y,$pat_5+4)); k=0; } if(j>1000) j=0; } else { k=0; j=0; } update(); } 敵は extends SpriteChar; while (y<$screenHeight) { y=y+1; if (crashTo($myChar)) $myChar.die(); if (crashTo($myChar)) $myChar.die(); if (x<$myChar.x) vx=2; else vx=-2; if (x<$myChar.x) vx=2; else vx=-2; y=y+1; x=x+vx; if (crashTo($myChar)) $myChar.die(); update(); }
このようにしています。長文失礼しました。
|
Re: 無題
投稿者 : 涼(58-188-74-191.eonet.ne.jp)
- 2007/10/23(Tue) 08:33
No.11563
|
|
|
|
たぶん・・・ 自機が死んだ時にコンティニューしたとき。 appearで新しい自機を作り出してます。 それで、、、 敵は前の自機にしか攻撃できないので そこを直せば大丈夫だとおもいます。
これ↓を if (crashTo($myChar)) $myChar.die();
これ↓に for (t in $chars) { if (t is mychar && crashTo(t)){ t.die(); } }
変えたら当たるようになると思いますよw
|
Re: 無題
投稿者 : 02(softbank221057004008.bbtec.net)
- 2007/10/24(Wed) 00:02
No.11565
|
|
|
|
if (x<$myChar.x) vx=2; else vx=-2; if (x<$myChar.x) vx=2; else vx=-2; y=y+1; x=x+vx; 敵のこの部分はどのように変えればいいのでしょう? 敵を自機に誘導するようにしたのですが、新しい自機には 反応しません。
|
Re: 無題
投稿者 : 昔の人(actkyo078172.adsl.ppp.infoweb.ne.jp)
- 2007/10/24(Wed) 02:39
No.11566
|
|
|
|
それは、新しく作られた自機を指し示すデータ(オブジェクトコード)が$myCharに入っていないからです。
自機のwhile(1){の直前の行に、 $myChar=this; と書くと、thisにはそのオブジェクトのオブジェクトコードが必ず入っていますから、 $myCharが新しい自機オブジェクトを指し示すようになります。
|
Re: 無題
投稿者 : 02(softbank221057004008.bbtec.net)
- 2007/10/24(Wed) 21:43
No.11569
|
|
|
|
|