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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0804
雷光連打ゲームなんですが・・・11解決


雷光

リンク

2008/8/4(Mon) 19:05:11|NO.17883

連打ゲームをつくってたんですが、すぐラベルgoにいってしまいます。どうすればいいでしょうか。
↓がスプリクトです。
*a
cls button gosub"ss",*os mes""+p+"" wait 1000 goto *go stop *go cls mes""+p+"" stop *os p=p+1 return



この記事に返信する


728

リンク

2008/8/4(Mon) 19:22:12|NO.17884

そういうゲームの場合はリアルタイムに処理した方が良いかもしれません
こんな感じに・・・

screen 0,128,64 time=300 ;時間 *main color 0,0,0:boxf ;画面をクリア color 240,240,240 ;描画色を白に stick key ;キーの情報をkeyに取得 if time<1 {key=0} ;残り時間が0以下ならkeyを0にする if key&32 {count+} ;Enterキーが押されていたらカウントを増やす time- ;残り時間を減らす pos 8,8 ;描画する場所を設定 mes "連打回数:"+count mes "残り時間:"+time wait 1 goto *main



GENKI

リンク

2008/8/4(Mon) 19:34:47|NO.17885

実行後すぐに*goに行ってしまう理由は、スクリプトを上から順番に落ち着いて読んでいけばすぐに気づくと思います。
命令の実行結果を紙に鉛筆で書きながら確認するのも良いかもしれませんね。

さて、この手のGUIを使ったスクリプトには基本的なパターンと言うのがあります。
仕組みが理解できるまでの間は、このパターンを頭に入れておくとプログラミングしやすいんじゃないでしょうか。

資料を紹介しておきます。
[HSP開発wiki]
http://hspdev-wiki.net/?HSP%B9%D6%BA%C2%2F%B4%F0%CB%DC%C5%AA%A4%CA%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%A4%CE%A5%D1%A5%BF%A1%BC%A5%F3#w51f08e7
このサイトは他にも有益な情報いっぱいなので暇なときにでも眺めるといいですよ。



Quiet

リンク

2008/8/4(Mon) 19:46:21|NO.17886


a=0 title "click or push" onkey goto *m onclick goto *m stop *m cls a+ font "",300 pos 0,0:mes a stop
こんな感じではどうでしょうか。



雷光

リンク

2008/8/4(Mon) 20:11:16|NO.17889

ボタン連打式ゲームとして考えてるんですが、ボタンでやる方法ありますか?
ないならいいですが・・・



Quiet

リンク

2008/8/4(Mon) 20:24:20|NO.17893

できない事もないですが。
font "",300
button "カウント",*a stop *a b+ color 255,255,255:boxf color pos 0,24:mes b stop



雷光

リンク

2008/8/4(Mon) 20:52:36|NO.17896

Quietさんのやつにタイム付けてはできないでしょうか。
質問しすぎですが・・・



Quiet

リンク

2008/8/4(Mon) 21:52:41|NO.17899

タイムですか。それなら728さんのようにリアルタイムでなければ
できないと思います。

NO.17893のスクリプトは常にstop命令で止まっていますから・・・


p=0 font "",100 button "カウント",*a goto *b *a p+ goto *b *b redraw 0 color 255,255,255:boxf color pos 0,24:mes "TIME "+time mes "POINT "+p time+ redraw 1 await 1 goto *b



雷光

リンク

2008/8/4(Mon) 21:56:38|NO.17900

今新しく作れないか頑張ってます。
↓が新作のやつです。
ren=0
tei=0 *main repeat 11 cls button"あ",*os mes""+ren+"" tei=tei+1 if tei=10 :goto*owa wait 100 loop *os ren=ren+1 goto*main *owa cls mes""+ren+"" stop



雷光

リンク

2008/8/4(Mon) 22:06:05|NO.17902

ゲームの別案が思いついたのでリアルタイム方式を採用します。728さん。GENKIさん。
Quietさん。ありがとうございました。



雷光

リンク

2008/8/4(Mon) 22:07:02|NO.17903

解決チェック押し忘れ。



N

リンク

2008/8/6(Wed) 12:00:53|NO.17930

自分なりにアレンジしてみました


ren=0 objsize 640,400 button gosub"押して",*os repeat 100 redraw 0 color 255,255,255 boxf 0,405,50,425 color ,, pos 0,405 mes""+ren+"回" redraw 1 await 20 loop clrobj color 255,255,255 boxf 0,405,50,425 pos 0,0 color ,, mes"記録:"+ren+"回" stop *os ren++ return



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