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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0101
ミント記録データーを取得する方法。8解決


ミント

リンク

2010/1/1(Fri) 14:27:27|NO.29665

どうもこんにちは。そうでない方は始めまして。
明けましておめでとうございます。



さて、早速本題。

連打ゲームを作りましたところ、ハイスコア記録の要望があったのですが、
ハイスコアの記録の方法がわかりません。

例えばこんな感じ(前回の記録 rennda でした)← rennda = 押した回数ぶん。


何とかある程度は出来ましたけど、これだと一回ぶんしか記録できず
2回のプレイした場合、1回目の記録が消えてしまいます。

ゲームのタイトルに、3つぐらい連打の記憶をしたやつを出せますかね?(´・ω・`)



 ↓これが思い浮かんだプログラム↓
------------------------------------------------------------------------------

;最初に戻る *saisixyo ;記録メッセージ print "前回は・・・" ;""の表示 ;記録 print ren ;""の中身表示 ;今までのデーター初期化 tai=0 ;タイム ren=0 ;連打 qw=0 ;+1側 ;スペースキーを押すとスタート repeat      ;繰り返しの始め stick key ;keyに押されたキー番号を入力 if key=16:goto *tugi ;keyが16が押されたら*に飛ぶ wait 1 ;待つ loop ;repeatへ戻る *tugi ;以下ループ repeat      ;繰り返しの始め redraw 2      ;ココから下は仮想画面に描く ;画面の設定 color 0,0,0:boxf ;画面を黒で塗りつぶす color 255,255,255 ;文字の色を白に ;宣言 stick key ;keyに押されたキー番号を入力 ;連打 if key=16:qw=1+qw ;keyが16が押されたらqwに1を足す if key=16:ren=qw ;keyが16が押されたらrenにqw(1)出力 print ren ;ren(1)の中身を表示 ;タイム tai=tai-2 ;tai=-2 pos 280,0 ;タイムの表示位置 print "残り時間:" + (tai+250)/70 + "秒" ;""の中身と,taiの中身と,""を表示 redraw 1 ;今まで仮想画面に描かれていたものを一気にウインドウ0に描画 if (tai<=-250) : break      ;taiが00より大きい場合離脱 wait 1 ;待つ loop ;repeatへ戻る ;終わった後 print ren ;""の中身表示 ;コンテニュー repeat ;繰り返しの始め stick key ;keyに押されたキー番号を入力 if key=16:goto *saisixyo ;keyが16が押されたら*に飛ぶ wait 1 ;待つ loop ;repeatへ戻る
--------------------------------------------------------------------------
流れとしてはこう、

タイトル(前回の記録が載る) → スペースを押すとゲームスタート → 時間切れまで連打 →
時間切れ後、連打結果が出る → スペース押すと最初に戻る → タイトルに戻る



それではよろしくお願いします><



この記事に返信する


cat

リンク

2010/1/1(Fri) 16:01:15|NO.29666

質問の答としては全く関係がないのですが、repeat〜loopの時に、
gotoで抜けて戻ってないので、ネストが深くなります。
あと、説明文を入力するときに、tabを使った後、スペースキーを
使うとダメっぽいです。
出来ませんでした。



足利超神

リンク

2010/1/1(Fri) 16:16:52|NO.29668

配列変数を使えば。
renda(1)
renda(2)
renda(3)



あとcatさんが言うようにrepeat loop中をgotoで抜けると
ネストがおかしくなるので、
メインループは
repeat → *mainloop
loop → goto *mainloop
にすたほうが・・・



whoさん

リンク

2010/1/1(Fri) 18:20:24|NO.29673

同感!



ANTARES

リンク

2010/1/2(Sat) 06:33:49|NO.29684

 デバッグしてあげました。このくらいは自力でできるようになってから
次に進みましょう。
 スタートはTabキーにしました。

 全角スペースが見えるエディタを使いましょう。

;最初に戻る *saisixyo ;記録メッセージ print "前回は・・・" ;""の表示 ;記録 print ren ;""の中身表示 ;今までのデーター初期化 tai=0 ;タイム ren=0 ;連打 qw=0 ;+1側 ;スペースキーを押すとスタート ;Tabキーを押すとスタート ;repeat      ;繰り返しの始め ★ repeat ;     ;繰り返しの始め stick key ;keyに押されたキー番号を入力 ;if key=16:goto *tugi ;keyが16が押されたら*に飛ぶ ★ if key=1024:break wait 1 ;待つ loop ;repeatへ戻る *tugi ;以下ループ ;repeat      ;繰り返しの始め ★ repeat ;     ;繰り返しの始め ;redraw 2      ;ココから下は仮想画面に描く ★ redraw 2 ;     ;ココから下は仮想画面に描く ;画面の設定 color 0,0,0:boxf ;画面を黒で塗りつぶす color 255,255,255 ;文字の色を白に ;宣言 stick key ;keyに押されたキー番号を入力 ;連打 if key=16:qw=1+qw ;keyが16が押されたらqwに1を足す if key=16:ren=qw ;keyが16が押されたらrenにqw(1)出力 print ren ;ren(1)の中身を表示 ;タイム tai=tai-2 ;tai=-2 pos 280,0 ;タイムの表示位置 ;print "残り時間:" + (tai+250)/70 + "秒" ;""の中身と,taiの中身と,""を表示 ★ remain=(tai+250)/70 print "残り時間:" + remain + "秒" ;""の中身と,taiの中身と,""を表示 redraw 1 ;今まで仮想画面に描かれていたものを一気にウインドウ0に描画 ;if (tai<=-250) : break      ;taiが00より大きい場合離脱 ★ if (tai<=-250) : break ;     ;taiが00より大きい場合離脱 wait 1 ;待つ loop ;repeatへ戻る ;終わった後 print ren ;""の中身表示 ;コンテニュー repeat ;繰り返しの始め stick key ;keyに押されたキー番号を入力 ;if key=16:goto *saisixyo ;keyが16が押されたら*に飛ぶ ★ if key=16:break wait 1 ;待つ loop ;repeatへ戻る goto *saisixyo ;keyが16が押されたら*に飛ぶ



ANTARES

リンク

2010/1/2(Sat) 06:39:43|NO.29685

> 全角スペースが見えるエディタを使いましょう。
 訂正。
 標準エディタで、ツール→オプション→エディタの表示をクリックし、非文字の可視化で
全角スペースにチェックを入れましょう。



ミント

リンク

2010/1/2(Sat) 10:33:44|NO.29686

すいません返事遅れました。


>>catさん
>repeat〜loopの時に、gotoで抜けて戻ってないので、ネストが深くなります。
>あと、説明文を入力するときに、tabを使った後、スペースキーを使うとダメっぽいです。
そうなんですか><
初めて知りました。今度からきょうつけます。

ありがとうです。


>>足利超神
>配列変数を使えば。
>renda(1)
>renda(2)
>renda(3)
なるほど。うまく使いばなんとかなるかな・・・


>あとcatさんが言うようにrepeat loop中をgotoで抜けるとネストがおかしくなるので、
>repeat → *mainloop
>loop → goto *mainloop
なるほど。このようにも変える事ができますね。
関係ないけど、違うゲームで、カーソル連打してたら落ちる理由が今わかった。


ありがとうございます><



ミント

リンク

2010/1/2(Sat) 10:36:21|NO.29687

>>ANTARESさん
>デバッグしてあげました。このくらいは自力でできるようになってから次に進みましょう。
わざわざありがとうございます><

理解してから書いたほうがいいのかな、と思いましたが
さっさと訂正したほうがよかったみたいですね。


>標準エディタで、ツール→オプション→エディタの表示をクリックし、非文字の可視化で
>全角スペースにチェックを入れましょう。
おおー・・・
こんな機能があったとは・・・

ありがとうございます。



ミント

リンク

2010/1/2(Sat) 10:56:45|NO.29688

まだ解決してないのですが、とりあえず返事を返しときました。
言われたところを直し、配列を置いてうまくいったっぽいです。


 ↓こんな感じ↓
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

;最初に戻る *saisixyo ;最初 ;記録メッセージ print "前回は・・・" ;""の表示 ;何回やったか記録 kai=kai+1 print "kaiは " + kai   ;プログラムの動きチェック用 ;記録 dim kio,2 ;配列 kio(0)=ren ;kioの0番にrenを代入 kio(1)=ren ;kioの1番にrenを代入 kio(2)=ren ;kioの2番にrenを代入 if kai>=2:print kio(0) ;kioの0番を表示 if kai>=3:print kio(1) ;kioの1番を表示 if kai>=4:print kio(2) ;kioの2番を表示 ;省略
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

これで解決かな。


皆様お答えいただいてありがとうございましたペコリ(o_ _)o))



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