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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0812
駆け出し君質問5解決


駆け出し君

リンク

2012/8/12(Sun) 09:40:26|NO.48448


randomize //乱数の初期化 color 0,0,0:boxf //黒で画面を塗りつぶす onclick *hata color 255,255,255 repeat wait 100 color:boxf color 255,255,255:pos 0,0 mes "秒:"+(cnt\60) loop *hata a=rnd(3) if a=0 : goto *hata1 if a=1 : goto *hata2 if a=2 : goto *hata3 stop *hata1 if mousex>=25&mousex<=106&mousey>=25&mousey<=86{ goto *kuria } stop //boxf(25,25)(106,86)をクリックで*kuriaへジャンプ *hata2 if mousex>=154&mousex<=265&mousey>=244&mousey<=330{ goto *kuria } stop *hata3 if mousex>=491&mousex<=600&mousey>=272&mousey<=384{ goto *kuria } stop *kuria color 255,255,255 mes "クリア" wait 150 end
ある場所をクリックしたらクリアというゲームで
クリアしたタイムを表示したくてストップウォッチを入れたのですが
クリックしたら(クリアしていないのに)タイムが勝手に止まります。
あと、クリアしたときにタイムは止まるのですが画面が消えません><
クリアするとwait 150で画面が消えるようにしているのですが・・・・。
おかしいところを教えてください



この記事に返信する


spider

リンク

2012/8/12(Sun) 09:58:28|NO.48449

クリアしてないのに止まっちゃうのは
割り込んだはいいがstopで止めちゃってるからでしょう。

クリアの条件が分かりづらいな。
クリックするたびにクリアポイントが変わるようになっているよ。
まあ、運良くいけばちゃんとクリアが出たよ。

↓こうすればOK(一応あなたの言っているバグは消える)
randomize //乱数の初期化
color 0,0,0:boxf //黒で画面を塗りつぶす onclick gosub *hata color 255,255,255 repeat wait 100 color:boxf color 255,255,255:pos 0,0 mes "秒:"+(cnt\60) loop *hata a=rnd(3) if a=0 : gosub *hata1 if a=1 : gosub *hata2 if a=2 : gosub *hata3 return *hata1 if mousex>=25 & mousex<=106 & mousey>=25 & mousey<=86{ goto *kuria } return //boxf(25,25)(106,86)をクリックで*kuriaへジャンプ *hata2 if mousex>=154 & mousex<=265 & mousey>=244 & mousey<=330{ goto *kuria } return *hata3 if mousex>=491 & mousex<=600 & mousey>=272 & mousey<=384{ goto *kuria } return *kuria color 255,255,255 mes "クリア" wait 150 end



spider

リンク

2012/8/12(Sun) 10:02:03|NO.48450

あっそうそう追記だけど、
onclickにする必要がない。何故使った?

repeat~loopの中に処理書いてstickでクリック判定
これの方が駆け出し初心者はわかりやすいだろう。



駆け出し君

リンク

2012/8/12(Sun) 11:08:20|NO.48451

>spiderさん
ありがとうございます
onclick命令しか知らなかったので使いました・・・。

あと書いていただいたソースなのですが
クリックしたらカウントが早くなるのですが
クリックしても早くならない方法とかはあるのでしょうか??



spider

リンク

2012/8/12(Sun) 13:09:49|NO.48456

ちと難しいがこれがベスト?
#uselib "Winmm.dll"
#cfunc timeGetTime "timeGetTime" time = timeGetTime() repeat redraw 0 //画面クリア color 0, 0, 0 boxf //秒数描画 pos 0, 0 color 255, 255, 255 mes ""+(timeGetTime()-time)/1000+"秒" //クリック処理 stick Key if (Key == 256){ if (mousex>=25 & mousex<=106 & mousey>=25 & mousey<=86){ color 255, 255, 255 mes "クリア" redraw 1 wait 150 end } } redraw 1 await 10 loop



駆け出し君

リンク

2012/8/12(Sun) 19:42:31|NO.48457

>spiderさん
ありがとうございます^^



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