色々試したけど・・・・・
投稿者 : ERA(softbank219210100111.bbtec.net)
- 2007/05/06(Sun) 12:58
No.11245
|
|
|
|
|
11245.zip
アイテムを取ると変身して違うキャラになるようにしたんですけど、アイテムを取るとエラーが出てしまいます。 どうすればいいでしょうか。
|
Re: 色々試したけど・・・・・
投稿者 : ERA(softbank219210100111.bbtec.net)
- 2007/05/07(Mon) 17:15
No.11254
|
|
|
|
一応プログラムを貼っときます。 extends SpriteChar; function onDie() { appear(new jiki($jiki.x , $jiki.y ,$pat_f+0)); } a=newAnimation(); // AnimationAdapterを作成 a.loop($pat_f+15,$pat_f+16,5); while(1){ c++; if(c>=200)die(); if (vx<0) f=1; else f=0; if (getkey(39)>0) x+=2; if (getkey(37)>0) x-=2; if (getkey(40)>0) y+=2; if (getkey(38)>0) y-=2; if (vx<0) f=1; else f=0; if(y>400)die(); //穴に落ちると消える $map.scrollTo(x-$screenWidth/2,0); // スクロールする if(getkey(88)==1){//スペースキーが押されたら for(i=0;i<16;i++){//for文 t=appear(new tama3(x,y,$pat_FQ+5));//弾発生 t.vx=cos(i*22.5);//弾のvxを指定 t.vy=sin(i*22.5);//弾のvyを指定 t.s=3;//弾の速度を指定 } } update(); }
|
Re: 色々試したけど・・・・・
投稿者 : 昔の人(actkyo060122.adsl.ppp.infoweb.ne.jp)
- 2007/05/08(Tue) 01:25
No.11255
|
|
|
|
11255.zip
添付されたファイルを解凍してみましたが、実行はできませんでした。 ファイル名の終わりが.cmmlとなっているファイルは一つひとつのページになりますので、 .tonyuファイルと一緒に添付が必要です。
自機には、アイテムに触れたときに起こす動作は無いようですが、 一方のアイテム(?)gyokuro中に問題があります。 私が考えた正しい構文のgyokuroを添付してみました。求めている動作と違っていたらすみません。
|
Re: 色々試したけど・・・・・
投稿者 : ERA(softbank219210100111.bbtec.net)
- 2007/05/08(Tue) 20:19
No.11256
|
|
|
|
Re: 色々試したけど・・・・・
投稿者 : マッキー(0x3d2cb9ba.rev.ncv.ne.jp)
- 2007/05/09(Wed) 16:46
No.11257
|
|
|
|
実行できなかったら、 新しくプロジェクトを作って、 プロジェクトを作ったところに、gyokuro.tonyuを持ってきて オブジェクト→新規で、gyokuroを作れば、いいと思います。
|
Re: 色々試したけど・・・・・
投稿者 : ERA(softbank219210100111.bbtec.net)
- 2007/05/10(Thu) 17:31
No.11260
|
|
|
|
extends SpriteChar; function onDie() { if (target is jiki){//targetの中に入っているオブジェクトがjikiかjiki2かによって、処理を変えます。 appear(new jiki3(target.x , target.y ,$pat_f+15)); }//変身する、ということで、die()したt=targetと同じ場所に新たなjiki3を置きます。 if (target is jiki2){ appear(new jiki3(target.x , target.y ,$pat_f+16)); } } target=0;//変数targetを作ります。まだ何も入れていません。 while(1){ for (t in $chars) { if ( t is jiki && crashTo(t) ) {die(); t.die(); target=t;}//tがjikiで、ぶつかっているのだから、t.die()でそのjikiを消せます。 //同時に、tに入っているjikiオブジェクトをtargetにとっておきます。 if ( t is jiki2 && crashTo(t) ) {die(); t.die(); target=t;} } for (t in $chars) { if ( t is jiki && crashTo(t) ) jiki.die();//ここで jiki と使うと、 jiki という名前の変数になります。 if ( t is jiki2 && crashTo(t) ) jiki2.die();//jiki にオブジェクトが入っていないのに.die()を呼ぶとエラーになります(対象がいないから)。 } update(); } (Variablejikiは初期化されていないため、メソッドdieを呼び出せません) と出てしまいました。 たぶん自分のせいだと思いますがどこをどうすればいいでしょうか。
|
Re: 色々試したけど・・・・・
投稿者 : 昔の人(actkyo060122.adsl.ppp.infoweb.ne.jp)
- 2007/05/11(Fri) 00:07
No.11261
|
|
|
|
for (t in $chars) { if ( t is jiki && crashTo(t) ) jiki.die(); if ( t is jiki2 && crashTo(t) ) jiki2.die(); } この部分を挟むように、/*と*/が書いてあったはずです。 その記号は注釈(リマーク)といい、挟んだ中にある部分を無効にします。 ちょうど//の複数行用です。 エラーの大きな原因がこの部分にあるのですが、私の添付したバージョンでは参考として残しておきました。 この部分を削除すると、正常に動作すると思います。
なお、エラーメッセージが表示された原因は、この部分の説明文そのままです。
|
Re: 色々試したけど・・・・・
投稿者 : ERA(softbank219210100111.bbtec.net)
- 2007/05/11(Fri) 20:06
No.11263
|
|
|
|
extends SpriteChar; function onDie() { if (target is jiki){//targetの中に入っているオブジェクトがjikiかjiki2かによって、処理を変えます。 appear(new jiki3(target.x , target.y ,$pat_f+15)); }//変身する、ということで、die()したt=targetと同じ場所に新たなjiki3を置きます。 if (target is jiki2){ appear(new jiki3(target.x , target.y ,$pat_f+16)); } } target=3;//変数targetを作ります。まだ何も入れていません。 while(1){ for (t in $chars) { if ( t is jiki && crashTo(t) ) {die(); t.die(); target=t;}//tがjikiで、ぶつかっているのだから、t.die()でそのjikiを消せます。 //同時に、tに入っているjikiオブジェクトをtargetにとっておきます。 if ( t is jiki2 && crashTo(t) ) {die(); t.die(); target=t;} } /* for (t in $chars) { if ( t is jiki && crashTo(t) ) jiki.die();//ここで jiki と使うと、 jiki という名前の変数になります。 if ( t is jiki2 && crashTo(t) ) jiki2.die();//jiki にオブジェクトが入っていないのに.die()を呼ぶとエラーになります(対象がいないから)。 } */ update(); } "/と”/を入れたけどアイテムを取ったら消えるだけで JIKI3が出てきません。 もう本当すいません。
|
Re: 色々試したけど・・・・・
投稿者 : ERA(softbank219210100111.bbtec.net)
- 2007/05/11(Fri) 20:07
No.11264
|
|
|
|
extends SpriteChar; function onDie() { if (target is jiki){//targetの中に入っているオブジェクトがjikiかjiki2かによって、処理を変えます。 appear(new jiki3(target.x , target.y ,$pat_f+15)); }//変身する、ということで、die()したt=targetと同じ場所に新たなjiki3を置きます。 if (target is jiki2){ appear(new jiki3(target.x , target.y ,$pat_f+16)); } } target=3;//変数targetを作ります。まだ何も入れていません。 while(1){ for (t in $chars) { if ( t is jiki && crashTo(t) ) {die(); t.die(); target=t;}//tがjikiで、ぶつかっているのだから、t.die()でそのjikiを消せます。 //同時に、tに入っているjikiオブジェクトをtargetにとっておきます。 if ( t is jiki2 && crashTo(t) ) {die(); t.die(); target=t;} } /* for (t in $chars) { if ( t is jiki && crashTo(t) ) jiki.die();//ここで jiki と使うと、 jiki という名前の変数になります。 if ( t is jiki2 && crashTo(t) ) jiki2.die();//jiki にオブジェクトが入っていないのに.die()を呼ぶとエラーになります(対象がいないから)。 } */ update(); } "/と”/を入れたけどアイテムを取ったら消えるだけで JIKI3が出てきません。 もう本当すいません。
|
Re: 色々試したけど・・・・・
投稿者 : 昔の人(actkyo060122.adsl.ppp.infoweb.ne.jp)
- 2007/05/12(Sat) 00:40
No.11265
|
|
|
|
すみません。私のミスの可能性が高いです。 if ( t is jiki && crashTo(t) ) {die(); t.die(); target=t;} if ( t is jiki2 && crashTo(t) ) {die(); t.die(); target=t;} を if ( t is jiki && crashTo(t) ) {t.die(); target=t; die();} if ( t is jiki2 && crashTo(t) ) {t.die(); target=t; die();} にして実行してみてください。
function onDieの中身は、die()命令が反映されてオブジェクトが消去される次のupdate()実行時ではなく、 die()が実行された直後に実行する可能性があります。そのあたりのタイミングを把握していませんでした。
|
Re: 色々試したけど・・・・・
投稿者 : ERA(softbank219210100111.bbtec.net)
- 2007/05/12(Sat) 17:07
No.11266
|
|
|
|
11266.zip
ずっと忘れてたけど、 問題のプログラムはっと来ます。 (いまさら無駄だと思うけど。)
|
Re: 色々試したけど・・・・・
投稿者 : ERA(softbank219210100111.bbtec.net)
- 2007/05/12(Sat) 17:09
No.11267
|
|
|
|
11267.zip
ずっと忘れてたけど、 問題のプログラムはっと来ます。 (いまさら無駄だと思うけど。)
|
Re: 色々試したけど・・・・・
投稿者 : マッキー(0x3d2cbcfd.rev.ncv.ne.jp)
- 2007/05/13(Sun) 00:03
No.11268
|
|
|
|
あの、、、あまり言わない方がいいかもしれませんが、(あきらめてるようなので) index.cmmlしか、入っていませんでした。 ほかの、ファイルも入れないと動きません。
|
Re: 色々試したけど・・・・・
投稿者 : ERA(softbank219210100111.bbtec.net)
- 2007/05/13(Sun) 16:51
No.11270
|
|
|
|
Re: 色々試したけど・・・・・
投稿者 : マッキー(0x3d2cbcfc.rev.ncv.ne.jp)
- 2007/05/13(Sun) 17:18
No.11271
|
|
|
|
そんなに、かしこまらなくても大丈夫です。 またまた、言いづらいのですが、ファイルが足りませんでした。 足りないものは、 index.mapファイルと、 画像ファイルです。 まあ本当は、効果音ファイルも必要ですが、 添付ファイルが、100kbまでしか送れないので、効果音はなくていいです。 もし、ファイル全体が100kbより多くなったら、 画像ファイルは、よけいな部分をなるべくなくして、サイズを小さくしてください。 送れるように、がんばってください。
|
Re: 色々試したけど・・・・・
投稿者 : ERA(softbank219210100111.bbtec.net)
- 2007/05/13(Sun) 20:18
No.11272
|
|
|
|
Re: 色々試したけど・・・・・
投稿者 : マッキー(0x3d2cb8de.rev.ncv.ne.jp)
- 2007/05/14(Mon) 22:41
No.11273
|
|
|
|
11273.zip
問題があったのは、gyokuro2クラスですね。 なぜ、エラーが出たのか、 それは、jiki.die();と書いたからです。 jiki.die();は、間違えです。 $jiki.die();か、 for(t in $chars){if(t is jiki&&crashTo(t))t.die();}で動きます。 「$」は、忘れやすいので気をつけて、ゲーム開発がんばってください。 この添付ファイルで動くはずです。
|
Re: 色々試したけど・・・・・
投稿者 : ERA(softbank219210100111.bbtec.net)
- 2007/05/19(Sat) 10:14
No.11275
|
|
|
|
|