地上物の移動
投稿者 : おとうふ(PPPax27.saitama-ip.dti.ne.jp)
- 2006/11/22(Wed) 22:56
No.10569
|
|
|
|
|
砲台や建物などをゆっくり動かすために y+=0.5; という命令にしているんですが カクカク動いてしまいます update(); → updateEx(2);
function onUpdate() { y+=1;} でやってもたまにカクカク動いてしまうんですが いい対処法はありますか?
|
Re: 地上物の移動
投稿者 : じんみ(nttyma052033.tyma.nt.ftth4.ppp.infoweb.ne.jp)
- 2006/11/23(Thu) 01:45
No.10570
|
|
|
|
カクカク動くというのがよくわからないので詳しい症状を教えてくれると対応しやすいです。
ちなみに
updateEx(2);
function onUpdate() { y+=1; } は普通にy+=0.5;と記入した場合の2倍の速度になると思います。
|
Re: 地上物の移動
投稿者 : マッキー(0x3d2cbeb5.rev.ncv.ne.jp)
- 2006/11/23(Thu) 04:20
No.10571
|
|
|
|
こうゆうことでしょうか かくかく動く理由は、 1ドットずつしかあらわせないからだと思います。 0.5ずつ増えますから、0から始まるとしたら、 y=0 0のところに表示 y=0.5 0か1のところに表示 y=1 1のところに表示 y=1.5 1か2のところに表示
というように、0.5はあらわせないのでかくかく動きます。 なので対処するなら、0.5ドットのときのボケた画像と、 1ドットようの普通の画像を交互に写すと言いと思います。 理由が違ったら、プログラムをコピーするなりして わかりやすくしてください。
|
Re: 地上物の移動
投稿者 : おとうふ(PPPax27.saitama-ip.dti.ne.jp)
- 2006/11/23(Thu) 04:53
No.10572
|
|
|
|
おそらくマッキーさんの理由だと思います。 ちょっと二つ画像用意して試してみます 2人ともありがとうございます
|
Re: 地上物の移動
投稿者 : おとうふ(PPPax27.saitama-ip.dti.ne.jp)
- 2006/11/23(Thu) 19:28
No.10573
|
|
|
|
画像用意したのですが、うまくいきませんでした。 他にもマップをスクロールさせたりしましたがだめでした じんみさんにみてもらうためのプログラムではうまくいった ので、命令を削ってみたところ、
gradationRect(400,0,600,650,1,color(30,0,0),color(0,100,190),3);
この類の命令を削るとFPS値が60前後(前は30以下)に上がり滑らかに表示されるようになりました。
|
Re: 地上物の移動
投稿者 : おとうふ(PPPax27.saitama-ip.dti.ne.jp)
- 2006/11/23(Thu) 19:28
No.10574
|
|
|
|
画像用意したのですが、うまくいきませんでした。 他にもマップをスクロールさせたりしましたがだめでした じんみさんにみてもらうためのプログラムではうまくいった ので、命令を削ってみたところ、
gradationRect(400,0,600,650,1,color(30,0,0),color(0,100,190),3);
この類の命令を削るとFPS値が60前後(前は30以下)に上がり滑らかに表示されるようになりました。
|
Re: 地上物の移動
投稿者 : おとうふ(PPPax27.saitama-ip.dti.ne.jp)
- 2006/11/23(Thu) 19:29
No.10575
|
|
|
|
Re: 地上物の移動
投稿者 : マッキー(0x3d2cbaa0.rev.ncv.ne.jp)
- 2006/11/23(Thu) 20:42
No.10576
|
|
|
|
$pat_e+0が普通の画像 $pat_e+1がボケた画像だとすると
if(x%1==0)p=$pat_e+0;else p=$pat_e+1; //xが1で割り切れたら普通の画像。そうでなければボケた画像。
こんな感じでやると出来ます。 あと、gradationRectはグラデーション付きなので、 処理は重くなります。小さくしたり、消すと、処理は早くなります。
|
Re: 地上物の移動
投稿者 : じんみ(nttyma052033.tyma.nt.ftth4.ppp.infoweb.ne.jp)
- 2006/11/25(Sat) 21:38
No.10577
|
|
|
|
マッキーさんの方法に注意として1つ 上の方法で動かして、1で割り切れなかった時に止まるとぼけた状態で止まることになりそうです(多分
止まらないときはそれでいいのですが止まる場合は //ループ外に a=0;
//中に x+=0.5; if(x%1==0){a=0;p=$pat_e+0;}else {a++;p=$pat_e+1;} if(a==2)p=$pat_e+0;
を入れればいいと思います。 解説はaは普通の画像の時は0になります。 ぶれている状態では増えます。a=2になるということは2フレーム以上そのまま(止まっている)ということになり、普通の画像になります。 試してないので上手くいくかどうかは分かりませんが。
|
Re: 地上物の移動
投稿者 : マッキー(0x3d2cb8d6.rev.ncv.ne.jp)
- 2006/11/26(Sun) 11:40
No.10582
|
|
|
|
申し訳ございませんでした。 じんみさんありがとうございます。 試してみましたが、残念ながら出来ませんでした。 私も、自分の方法を試してなかったのであやふやでした。
実際に試して、ちがう方法で、出来ました。 if((x*10)%10==0){p=$pat_a+0;}else{p=$pat_a+1;} %は少数をもとめてくれないようです。 したがって、10かければ出来ます。
|
|