|
|
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とかの本が買えません・・・]
あと、名前を変えました。
|
|
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とかの本が買えません・・・]
あと、名前を変えました。
なんか青くなかったから・・・
|
|
2015/9/4(Fri) 22:19:11|NO.71326
最初のが消えないように見えるのはループの中で何回もボタンを設置しているためです。放置しているとエラーがでるのはそのためだと思います。
またrepeat〜loop間のループにgotoで何度も入るのはやめましょう。何度もボタンを押すとスタックが限界になりエラーになります。
またタイマーをawaitの代わりに使用するといいと思います。またインデントをすると見やすくなるのでいいです。
|
|
2015/9/4(Fri) 22:27:11|NO.71327
すみません。タイマーはなくてよさそうです。とりあえず修正したので少し整えます。
|
|
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命令自体、あまり使わない方がいい代物です。
最後に、「時間が残り少なくなると文字が縮小拡大する」というのは面白い演出だと思いました。
|
|
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
きれいにしました。私も初心者なのと急いできれいにしたので間違いがあるかもしれません。
また発想が大胆かつ面白いのでいいと思います。
|
|
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
|
|
2015/9/5(Sat) 18:57:10|NO.71383
消せと言ったり質問したり、何がしたいの?
|
|
2015/9/5(Sat) 19:41:32|NO.71385
>消せと言ったり質問したり、何がしたいの?
とりあえず日付と時刻見ましょう。消せと言ったのはこの書き込みの後ですよ。
|
|
2015/9/5(Sat) 23:49:58|NO.71392
>>とりあえず日付と時刻見ましょう。消せと言ったのはこの書き込みの後ですよ。
じゃあ、このスレを消したかった?
まあ偽装した悪意の偽善者の可能性も有りますが、スレ主にはもう少し
態度に気をつけて欲しいです。
|
|
2015/9/5(Sat) 23:53:30|NO.71394
IPアドレスは同じなので同じパソコンからいたずらで書きこんだなどでなければ偽装ではないと思います。
|
|
2015/9/6(Sun) 10:26:56|NO.71403
> 消せと言ったり質問したり、何がしたいの?
間違ったのだから、Mitukingさんに謝罪すべきでは?
|
|
2015/9/6(Sun) 11:36:12|NO.71405
>>間違ったのだから、Mitukingさんに謝罪すべきでは?
確かにそうでした
「質問したり消せと言ったり、いったい何がしたいの?」
の間違いでした、申し訳ありません。
ちなみに「IPアドレスが同じ=同じパソコン=同一人物」は成り立たず
同じローカルネット上の複数パソコンの可能性や、ネットカフェ等で不特
定多数が同じパソコンを使う可能性も有ります。数学的に言えば集合の特
定領域だけを指します。
|
|
2015/9/6(Sun) 11:42:00|NO.71407
同じPCでイタズラ好きの家族や友達がちょっとイタズラしたとか…
どちらにしろ少し自重した方がいいですね。
|
|
2015/9/6(Sun) 19:27:06|NO.71421
KAさんすみません。pumpkinさんと同じことを書きたかったのですが言葉が思いつかず言葉足らずな文章になってしまいました。
|
|