無題
投稿者 : たいち(p3160-ipad12gifu.gifu.ocn.ne.jp)
- 2003/08/06(Wed) 16:07
No.4065
|
|
|
|
|
anim=newAnimation();
function crashTo($a) { return dist($a.x-x,$a.y-y)>30; } function crashTo($seki1) { return dist($seki1.x-x,$seki1.y-y)<50; }
while(1) { if (x<$a.x && $map.getAt(x+5,y)==$pat_danjon+0 && crashTo($a)) {x+=1; anim.swing($pat_dragon1+3,$pat_dragon1+5,10);} if (x>$a.x && $map.getAt(x-5,y)==$pat_danjon+0 && crashTo($a)) {x-=1; anim.swing($pat_dragon1+9,$pat_dragon1+11,10);} if (y<$a.y && $map.getAt(x,y+5)==$pat_danjon+0 && crashTo($a)) {y+=1; anim.swing($pat_dragon1+6,$pat_dragon1+8,10);} if (y>$a.y && $map.getAt(x,y-5)==$pat_danjon+0 && crashTo($a)) {y-=1; anim.swing($pat_dragon1+0,$pat_dragon1+2,10);} //ダッシュ if (getkey(90) && x<$a.x && $map.getAt(x+5,y)==$pat_danjon+0 && crashTo($a)) x+=2; if (getkey(90) && x>$a.x && $map.getAt(x-5,y)==$pat_danjon+0 && crashTo($a)) x-=2; if (getkey(90) && y<$a.y && $map.getAt(x,y+5)==$pat_danjon+0 && crashTo($a)) y+=2; if (getkey(90) && y>$a.y && $map.getAt(x,y-5)==$pat_danjon+0 && crashTo($a)) y-=2;
update(); } こう書いたのですがエラーが出ますなぜですか? 教えてください。
|
Re: 無題
投稿者 : 祐介(g182223.scn-net.ne.jp)
- 2003/08/06(Wed) 18:50
No.4069
|
|
|
|
functionの下にanim=newAnimation();を移動したらどうですか? 確かfunctionの上には書けなかったような気がするので。
|
Re: 無題
投稿者 : たいち(p3160-ipad12gifu.gifu.ocn.ne.jp)
- 2003/08/07(Thu) 13:57
No.4077
|
|
|
|
Re: 無題
投稿者 : T(catv-133-132.tees.ne.jp)
- 2003/08/07(Thu) 23:05
No.4083
|
|
|
|
おそらく、crashTo関数の引数にグローバル変数を指定しているのが原因でしょう。 ぶつかったオブジェクトが$aの場合と$seki1の時で動作を変えたいようなので、
function crashTo(obj){ if (obj is a) return dist(obj.x-x,obj.y-y)<30; else if (obj is seki1) return dist(obj.x-x,obj.y-y)<50; else return super.crashTo(obj); }
anim=newAnimation();
while(1){ ...(省略)
これでよくなるはずです。 これが駄目なら、if文の中のa,seki1を $a,$seki1のクラス名に変えてください。
どのようなエラーが出たかも加えておくと、 こちらも対応しやすいです。
|
Re: 無題
投稿者 : たいち(p2178-ipad02gifu.gifu.ocn.ne.jp)
- 2003/08/08(Fri) 13:33
No.4086
|
|
|
|
|