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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0904
Mituking[元MITUKIボタン押しげーむで色々違うこと発生してる!(すぷりくとでのMISSです)15未解決


Mituking[元MITUKI

リンク

2015/9/4(Fri) 21:31:35|NO.71324

このソースコードなんですけども
a=60
b=100
d=10
dialog "放置禁止!エラー出すよ!"
*an
repeat 1221
redraw 0
color 255,255,255:boxf
color 0,0,0
pos 0,0
Time = strf("%02d:",a) + strf("%02d",b)
if b=0 :a-=1 :b+=100
if a<=10 :font "",d :color 255,0,0:d+3:else :font "",100
if e=20 :e=0 :d=30
mes Time
pos 51,95
objsize 50,50
button"こっち!",*kochi
b-5

e++
await 50
redraw 1
loop
*kochi
clrobj 0,0
num++
pos rnd(550),rnd(420)
objsize 50,50
button"こっち!",*kochi
goto *an
stop

これを作っているんですが、
最初のところが消えない、時間が遅くなるなどいろいろ
なってしまいます。ぼくは、
「こりゃあどうしよう」
とおもいました。皆さんに聞いてどうすればいいかを勉強したいです。
[僕は金がないので、HSP3とかの本が買えません・・・]
あと、名前を変えました。





この記事に返信する


Mituking[元mituki]

リンク

2015/9/4(Fri) 21:32:28|NO.71325

このソースコードなんですけども

a=60 b=100 d=10 dialog "放置禁止!エラー出すよ!" *an repeat 1221 redraw 0 color 255,255,255:boxf color 0,0,0 pos 0,0 Time = strf("%02d:",a) + strf("%02d",b) if b=0 :a-=1 :b+=100 if a<=10 :font "",d :color 255,0,0:d+3:else :font "",100 if e=20 :e=0 :d=30 mes Time pos 51,95 objsize 50,50 button"こっち!",*kochi b-5 e++ await 50 redraw 1 loop *kochi clrobj 0,0 num++ pos rnd(550),rnd(420) objsize 50,50 button"こっち!",*kochi goto *an stop
これを作っているんですが、
最初のところが消えない、時間が遅くなるなどいろいろ
なってしまいます。ぼくは、
「こりゃあどうしよう」
とおもいました。皆さんに聞いてどうすればいいかを勉強したいです。
[僕は金がないので、HSP3とかの本が買えません・・・]
あと、名前を変えました。


なんか青くなかったから・・・



Noa

リンク

2015/9/4(Fri) 22:19:11|NO.71326

最初のが消えないように見えるのはループの中で何回もボタンを設置しているためです。放置しているとエラーがでるのはそのためだと思います。
またrepeat〜loop間のループにgotoで何度も入るのはやめましょう。何度もボタンを押すとスタックが限界になりエラーになります。
またタイマーをawaitの代わりに使用するといいと思います。またインデントをすると見やすくなるのでいいです。



Noa

リンク

2015/9/4(Fri) 22:27:11|NO.71327

すみません。タイマーはなくてよさそうです。とりあえず修正したので少し整えます。



Mituking[元mituki]

リンク

2015/9/4(Fri) 22:34:24|NO.71328

わかりました。



沢渡

リンク

2015/9/4(Fri) 22:38:31|NO.71329

・このソースではボタンを最終的に1221個以上作ることになってしまいます。これが遅くなっている原因です。
 最初のボタンを表示する命令は、repeatよりも前に置きましょう。

・*kochiに飛んだあと新しいボタンを作りますが、その前にclrobjで前のボタンを消しましょう。

・こういう処理の場合、button gosubで*kochiに飛び、returnで戻るようにした方がいいです。
 Noaさんのおっしゃってる通り、外からloopの中にgotoに戻るというのは、原則「やってはいけないこと」ですし、
正直、gosubの付かないbutton命令自体、あまり使わない方がいい代物です。

 最後に、「時間が残り少なくなると文字が縮小拡大する」というのは面白い演出だと思いました。



Noa

リンク

2015/9/4(Fri) 22:51:06|NO.71331


a=15 b=100 d=10 e=0 num=0 pos 51,95 objsize 50,50 button gosub "こっち!",*kochi while redraw 0 color 255,255,255:boxf color 0,0,0 pos 0,0 Time = strf("%02d:",a) + strf("%02d",b) if a<=10{ font "",d color 255,0,0 d+3 }else{ font "",100 } mes Time if e=20 :e=0 :d=30 if b=0{ if a>0{ a-=1 b+=100 }else{ redraw 1 if num>0{ dialog ""+num+"回押せました" end }else{ dialog "一回くらい押してよ" end } } } b-=5 e++ await 50 redraw 1 wend *kochi clrobj 0,0 num++ pos rnd(550),rnd(420) objsize 50,50 button gosub "こっち!", *kochi return

きれいにしました。私も初心者なのと急いできれいにしたので間違いがあるかもしれません。
また発想が大胆かつ面白いのでいいと思います。



b

リンク

2015/9/5(Sat) 12:59:36|NO.71359

タイマーをちょっと変えました。
きれいに書き直しました。


#include "d3m.hsp" ButtononClick=1 objsize 50,50 Second=30 timel=10000*Second/10;10秒*30/10=30秒 start=d3Timer()//スタート時間 repeat redraw 0 color 255,255,255:boxf:color if(ButtononClick == 1){ pos rnd(550),rnd(420) button gosub "こっち! ",*kochi ButtonObjectID=stat ButtononClick=0 } time=d3timer()//今 tim=time-start//時差 if (time-start>timel){ dialog "終了 \n"+"ポイント:"+Point+"" end } pos 0,0 mes "残り時間:"+(timel-tim)/1000+"秒経過" mes "ポイント:"+Point redraw 1 await loop *kochi Point++ ButtononClick=1 clrobj ButtonObjectID,ButtonObjectID return



KA

リンク

2015/9/5(Sat) 18:57:10|NO.71383

消せと言ったり質問したり、何がしたいの?



pumpkin

リンク

2015/9/5(Sat) 19:41:32|NO.71385

>消せと言ったり質問したり、何がしたいの?
とりあえず日付と時刻見ましょう。消せと言ったのはこの書き込みの後ですよ。



KA

リンク

2015/9/5(Sat) 23:49:58|NO.71392

>>とりあえず日付と時刻見ましょう。消せと言ったのはこの書き込みの後ですよ。

じゃあ、このスレを消したかった?
まあ偽装した悪意の偽善者の可能性も有りますが、スレ主にはもう少し
態度に気をつけて欲しいです。



Noa

リンク

2015/9/5(Sat) 23:53:30|NO.71394

IPアドレスは同じなので同じパソコンからいたずらで書きこんだなどでなければ偽装ではないと思います。



ブランク

リンク

2015/9/6(Sun) 10:26:56|NO.71403

> 消せと言ったり質問したり、何がしたいの?
間違ったのだから、Mitukingさんに謝罪すべきでは?



KA

リンク

2015/9/6(Sun) 11:36:12|NO.71405

>>間違ったのだから、Mitukingさんに謝罪すべきでは?

確かにそうでした
「質問したり消せと言ったり、いったい何がしたいの?」
の間違いでした、申し訳ありません。

ちなみに「IPアドレスが同じ=同じパソコン=同一人物」は成り立たず
同じローカルネット上の複数パソコンの可能性や、ネットカフェ等で不特
定多数が同じパソコンを使う可能性も有ります。数学的に言えば集合の特
定領域だけを指します。



pumpkin

リンク

2015/9/6(Sun) 11:42:00|NO.71407

同じPCでイタズラ好きの家族や友達がちょっとイタズラしたとか…
どちらにしろ少し自重した方がいいですね。



Noa

リンク

2015/9/6(Sun) 19:27:06|NO.71421

KAさんすみません。pumpkinさんと同じことを書きたかったのですが言葉が思いつかず言葉足らずな文章になってしまいました。



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