無人島を開拓する経営シミュつくる
- 79 :上の下の製作者さん:2015/06/06(土) 18:10:34.50 ID:96xT/GdG
- バグの修正にいくらか段階を踏むから(別々の情報を一つの情報として受け取ると混乱するので)段階ごとに番号を振ってるけどキモかったらめんご
ちなみにobjimageはhsp3.51だとエラーが起こるので、この修正しても直らなかったらhspアプデしてね(差し替えてね)
@
「点滅の原因」そのものはscreenが原因だよ。 screenはclsの強化バージョンみたいなもので
clsと同じように これをループ中に挟むと画面が点滅しておかしくなるんだ
なので、まずはscreenをなくすことから始めるよ
A
でも、screenを直してもとある問題が残るよ
それは、button系命令およびcellloadなどの命令がループ上にあることだよ
画像をコピーする処理とかと違って、buttonは「1回やったら(clsやclrobjなどがなどが入らない限り)なくならない」ものなんだ
ループの中にbuttonがあったら1ループする毎にbuttonが追加されて大変な事になるわけだね
そして、cellloadなどの画像も「1回やったら(データを上書きしない限り)それでいい」タイプの命令だから
ループ中にあると1ループするたびに画像が読み込まれる処理が行われて無意味に重くなるんだ
B
じゃあどうすればいいのかというと、(これはあくまで一例で 解決方法は他の方法もあるけど)「ループ部分とループ外部分を作る」んだ
http://i.imgur.com/lc5JCrs.png
具体的にはこんな感じ(画面を初期化したい場合はredraw 0の直後か*shop_loopの最初にcolor 255,255,255 : boxf : color 0,0,0)
*if_nukeruから飛んでくるラベルは*shopラベルだけど、ループ部分は*shop_loopからgoto *shop_loopの範囲にするわけだね
C
こうすれば、@の問題である「screen」の問題が解決し
Aの問題である「buttonや画像読み込みが何度も行われる問題」も解決するよ
http://fast-uploader.com/file/6989137345732/
今回修正したスクリプトがこれだから、よく分からないって場合は実際にこれを改造したりして色々考えるといいと思うよ
43KB
続きを読む
READ.CGI - 0ch+ BBS 0.7.3 20130527 &β2014221