アニメーション
投稿者 : ペリー(zaqdb73fcba.zaq.ne.jp)
- 2004/03/14(Sun) 11:57
No.5556
|
|
|
|
|
while(1){ anim.pause(); if (a==1) {anim.swing($pat_ninnzya2+2,$pat_ninnzya2+2,1000);} else {anim.swing($pat_ninnzya2+0,$pat_ninnzya2+2,6);}
これでは、キーを離してもアニメーションしてしまいます。なぜでしょうか??
|
Re: アニメーション
投稿者 : Kaze-G(d2c67c46.t-net.ne.jp)
- 2004/03/14(Sun) 13:07
No.5558
|
|
|
|
横から申し訳ありません。
if条件判断の条件が[a==1]となっているのが謎なのですが・・・^^;
判断することは出来ませんが、憶測でものを言わせていただきます。
anim=newAnimation();//この部分は憶測です while(1){ anim.pause(); if(getkey(32)==2){ //このままでは、32ですがお好きに anim.loop($pat_ninnzya2+0,pat_ninnzya2+2,6); } }
これがキーを押している場合のみ動くソースです。
|
Re: アニメーション
投稿者 : PERI- (zaqdb73fcba.zaq.ne.jp)
- 2004/03/14(Sun) 14:11
No.5560
|
|
|
|
すみませんが、うまく動きませんでした。 extends SpriteChar;
$map.setBGColor(color(0,200,255)); // 背景色を設定 anim=newAnimation();//アニメーションアダプタ起動 sss=0;//変数sss(手裏剣の数)は、0に
while (1) {
if(getkey(32)==2){ //このままでは、32ですがお好きに anim.loop($pat_ninnzya2+0,pat_ninnzya2+2,6); }
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (getkey(39)&&$map.getAt(x+16,y)!=($pat_NINNZYA+3||NINNZYA+4||NINNZYA+5)) { x+=3; f=0; } // ↑ カーソルキー右が押され、さらに右側が壁でなければ右へ移動 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (getkey(37) && $map.getAt(x-16,y)!=$pat_Block+0) { x-=3; f=1; } // ↑ カーソルキー左が押され、さらに左側が壁でなければ左へ移動 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if($map.getAt(x,y-20)==$pat_NINNZYA+3|| $map.getAt(x,y-20)==$pat_NINNZYA+4|| $map.getAt(x,y-20)==$pat_NINNZYA+5) //上に、3か4か5のマップが、あったら {vy=1;} //1の速度で、落ちる //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ y+=vy; // vy: y 方向の速度。 yにvy を加える if ($map.getAt(x,y+vy+20)==$pat_NINNZYA+3|| $map.getAt(x,y+vy+20)==$pat_NINNZYA+4) { // 3か4のマップに、当たってたら vy=0;j=1; // 落下速度を0にする。j(ジャンプ)変数を一に if(getkey(32)==1){vy=-9;j=1;} //ジャンプ。変数を1にする。j(ジャンプ)変数を1に }else{ // ブロックに当たっていなかったら if(getkey(32)==1&&j==1){vy=-8;j=0;} //ジャンプ2。変数を0にする vy+=0.5; // 落下速度を上げる } //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if ($map.getAt(x,y+vy+20)==$pat_NINNZYA+5) //もし20下に5のマップがあるなら {vy=0;vy+=00.25;x+=0.5;j=2;} //おちなくなり。0.25おちはじめ0.5すすんでいきj(ジャンプ)変数を2にする //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if(j==2&&getkey(32)) //もしj(ジャンプ)変数が、2でスペース(32)をおしていたなら {vy=-9;j=1;} //9のたかさジャンプして。j(ジャンプ)変数が、0になる。 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if(vy>0&&j==1&&getkey(32)==1){vy=-8;j=0;} //落下スピードが0以上でしかも変数jが、1でスペースを押したなら //二段ジャンプ+変数j(ジャンプ)を0に //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (sss<2&&f==0) { //もしsss(手裏剣)が2よりちいさく。右(f)をみていれば、 if(getkey(90)==1){ //しかもz(90)を一回おしていれば、 appear(new syuriken(x+16,y,$pat_NINNZYA+2)); //手裏剣が+16の位置に+2の画像ででる sss+=1;}} //変数sss(手裏剣)は+1される //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //↑の逆 if (sss<2&&f==1) { if(getkey(90)==1){ appear(new syuriken2(x-16,y,$pat_NINNZYA+2)); sss+=1;}} //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ $map.scrollTo(x-$screenWidth/3,y-$screenHeight/2); // スクロールする update(); }
こうしたのですが、うごきませんでした。 なんでですか?? すみませんが、おしえてください。
|
|