HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
1104
Empeld高速に描画7解決


Empeld

リンク

2008/11/4(Tue) 16:01:19|NO.20618

教えて欲しいことが一つあります。
今、下のスクリプトを改造して描絵速度を上げようと、頑張っています。

過去ログも読んでみたのですがよくわからず・・・


教えて欲しいこと
・どうしたら描絵速度が上がるでしょうか?


あと変数の名前解りづらくてすみません。



*start randomize screen 0,480,640,,0,0 dim out,10 dim msex,10 dim msey,10 repeat 10 msex(cnt) = rnd(12)*40 msey(cnt) = rnd(16)*40 wait 1 loop *main repeat redraw 0 color ,, boxf stick stk,15 if stk & 1 : attackpointx = attackpointx - 1 ;左 if stk & 2 : attackpointy = attackpointy - 1 ;上 if stk & 4 : attackpointx = attackpointx + 1 ;右 if stk & 8 : attackpointy = attackpointy + 1 ;下 if charactorx2 > 480 : attackpointx = attackpointx - 1 if charactorx < 0 : attackpointx = attackpointx + 1 if charactory2 > 640 : attackpointy = attackpointy - 1 if charactory < 0 : attackpointy = attackpointy + 1 attackpointx2 = attackpointx + 10 attackpointy2 = attackpointy + 10 charactorx = attackpointx - 5 charactory = attackpointy - 10 charactorx2 = charactorx + 5 + 10 + 5 charactory2 = charactory + 10 + 10 + 10 color ,255, boxf charactorx,charactory,charactorx2,charactory2 repeat 10 if out(cnt) = 1 { msex(cnt) = rnd(12)*40 msey(cnt) = rnd(16)*40 out(cnt) = 0 } else { msey(cnt) = msey(cnt) + 1 if msey(cnt) > 640 : out(cnt) = 1 color 255,255,255 boxf msex(cnt),msey(cnt),msex(cnt)+39,msey(cnt)+39 } await 1 loop color ,,255 boxf attackpointx,attackpointy,attackpointx2,attackpointy2 redraw 1 await 1 loop



この記事に返信する


あまま

リンク

2008/11/4(Tue) 16:24:32|NO.20620

メインループの最後にawaitがあるので
小さなループ(repeat 10〜loop)の最後にある
awaitを消せばだいぶ速くなると思います。



Empeld

リンク

2008/11/4(Tue) 16:24:34|NO.20621

追記

すみません、二回も。

上の質問に加えてもう一つ質問があります。

下のスクリプトを実行すると、エラーが出ます。


質問
・どこがいけないのでしょうか?

今解答中の方が居たらごめんなさい。


*start randomize screen 0,480,640,,0,0 dim out,10 dim msex,10 dim msey,10 repeat 10 msex(cnt) = rnd(12)*40 msey(cnt) = rnd(16)*40 msex2(cnt) = msex(cnt)+39 msey2(cnt) = msey(cnt)+39 wait 1 loop *main repeat redraw 0 color ,, boxf if gameover = 0 { stick stk,15 if stk & 1 : attackpointx = attackpointx - 1 ;左 if stk & 2 : attackpointy = attackpointy - 1 ;上 if stk & 4 : attackpointx = attackpointx + 1 ;右 if stk & 8 : attackpointy = attackpointy + 1 ;下 if charactorx2 > 480 : attackpointx = attackpointx - 1 if charactorx < 0 : attackpointx = attackpointx + 1 if charactory2 > 640 : attackpointy = attackpointy - 1 if charactory < 0 : attackpointy = attackpointy + 1 attackpointx2 = attackpointx + 10 attackpointy2 = attackpointy + 10 charactorx = attackpointx - 5 charactory = attackpointy - 10 charactorx2 = charactorx + 5 + 10 + 5 charactory2 = charactory + 10 + 10 + 10 color ,255, boxf charactorx,charactory,charactorx2,charactory2 } else { title "game over" } repeat 10 if out(cnt) = 1 { msex(cnt) = rnd(12)*40 msey(cnt) = rnd(16)*40 out(cnt) = 0 } else { msey(cnt) = msey(cnt) + 1 msex2(cnt) = msex(cnt) + 39 msey2(cnt) = msey(cnt) + 39 if msey(cnt) > 640 : out(cnt) = 1 color 255,255,255 boxf msex(cnt),msey(cnt),msex2(cnt),msey2(cnt) } if attackpointx > msex(cnt) and attackpointx2 < msex2(cnt) and ( attackpointy > msey(cnt) and attackpointy2 < msey2(cnt) { gameover = 1 } await 1 loop color ,,255 boxf attackpointx,attackpointy,attackpointx2,attackpointy2 redraw 1 await 1 loop



Empeld

リンク

2008/11/4(Tue) 16:27:40|NO.20622

>あままさん

>メインループの最後にawaitがあるので
>小さなループ(repeat 10〜loop)の最後にある
>awaitを消せばだいぶ速くなると思います。

そういえば、合計awaitは11になっちゃいますよね。

ありがとうございます。



あまま

リンク

2008/11/4(Tue) 16:31:25|NO.20623

エラーが出てる行をよく見てください。
無駄な()があります



あまま

リンク

2008/11/4(Tue) 16:33:50|NO.20624

文字がつぶれてしまった

() は ( ) です。



Empeld

リンク

2008/11/4(Tue) 16:34:54|NO.20625

すみません。初歩的なミスでした。

解答、ありがとうございます。



Empeld

リンク

2008/11/5(Wed) 21:10:31|NO.20647

解決しました。

当たり判定頑張ります。



ONION software Copyright 1997-2021(c) All rights reserved.