No.3ベストアンサー
- 回答日時:
#2です。
すいません。ソースを全部見せてもらいたいわけではなくて、
どちらかというとあなたのVBに対する理解度を知りたいのです。
理解度がどの程度のものか、ということがわかればアドバイスもしやすいのです。
・ボタンを押したらどういうイベントに飛ぶかわからない
・飛ぶイベントはわかるけど、そこで何をやればいいかわからない。
・イベントって何?
というようにあなたがどの程度までVBが書けるのか。これがアドバイスする上で重要です。
まったくわからないのであれば、アドバイスのしようがないです。
正直、仕様の説明をしていただければ、ここにコードをすべて書き出すことも可能ですが
それでは課題の意味が無いですよね。
課題の本質は多分、VBでのロジックを理解するということではなく、
仕様を理解し、そこからコードに落とす個所にあると思うんですよ。
私が提示したソースはヒントです。
あなたがわからないといっている、ボタンとフォームのクリックイベントについての
サンプルを提示しました。
このコードからあなたの求めている仕様に当てはめてみてほしかったのです。
・・・とまぁ、何も返答しないものよくないので。
まず
----------
Private Sub Command1_Click()
Timer1.Enabled = True
'レベルの設定(魚の速さ)
If Option1.Value = True Then Timer1.Interval = 500
If Option2.Value = True Then Timer1.Interval = 1000
If Option3.Value = True Then Timer1.Interval = 2000
End Sub
この個所がスタートボタンのイベントですよね?
この下にゲームの状態を初期化したものを入れます。
単純に時間(t)と点数(n)を初期化すればよいです。
あと
-----------
Private Sub Image1_Click()
'画面がクリックされたら
'スタート前は得点加算をしない。スタート後は加算する
If Timer1.Enabled = True Then
End If
n = n + 1
Text1.Text = n '得点表示
End Sub
この個所はおそらく
-----------
Private Sub Image1_Click()
'画面がクリックされたら
'スタート前は得点加算をしない。スタート後は加算する
If Timer1.Enabled = True Then
n = n + 1
Text1.Text = n '得点表示
End If
End Sub
これが正解でしょう。
次いで、フォームをクリックしたときです。
私が先ほど書いたコードの
---------------
Private Sub Form_Click()
End Sub
この個所がフォームをクリックしたときのイベントです。
ここで減点の処理を行えばよいです。
No.2
- 回答日時:
どこで詰まっているのかわかりませんのでコメントのしようがありません・・・。
言えることは
スタートボタンのClickイベントでタイマー、点数あたりの変数を初期化。
FormのClickイベントで点数を減点。
このような感じで作れば問題ないかと思います。
簡単なサンプルとしては以下の感じで。
CmdStartがスタートボタン
lblPointが点数を表示するラベル
lblTimerが残り時間(秒)を表示するラベル
ゲームの時間は30秒
----------------------------------------
Private iPoint as Integer'点数
Private iTimer as Integer'残り時間(秒)
Private Sub Form_Load()
'タイマーのインターバルを1秒に設定
Timer1.Interval = 1000
iPoint = 0
iTimer = 30
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
iTimer = iTimer - 1
call DrawScreen
if iTimer < 1 Then
Timer1.Enabled = False
End if
End Sub
Private Sub CmdStart_Click()
iPoint = 0
iTimer = 30
Timer1.Enabled = True
Call DrawScreen
End Sub
Private Sub Form_Click()
iPoint = iPoint - 1
Call DrawScreen
End Sub
Private Sub DrawScreen
lblPoint.Caption = iPoint
lblTimer.Caption = iTimer
Me.Refresh
End Sub
-----------------
テストしていませんので、動作保証しません。
使用する際は自己責任でお願いいたします。
この回答への補足
説明不足で申し訳ございませんでした。
といっても自分でも説明のしかたがわからないので、プログラムは下記のとおりです。
Dim t, n As Integer
Private Sub Command1_Click()
Timer1.Enabled = True
'レベルの設定(魚の速さ)
If Option1.Value = True Then Timer1.Interval = 500
If Option2.Value = True Then Timer1.Interval = 1000
If Option3.Value = True Then Timer1.Interval = 2000
End Sub
Private Sub Form_Load()
Randomize
Timer1.Interval = 2000 'タイマー時間間隔をミリ秒の単位でセット
End Sub
Private Sub Image1_Click()
'画面がクリックされたら
'スタート前は得点加算をしない。スタート後は加算する
If Timer1.Enabled = True Then
End If
n = n + 1
Text1.Text = n '得点表示
End Sub
Private Sub Timer1_Timer()
'ゲーム時間を変数に置き換え
gametime = 10
' ゼロから、フォーム画面の幅から画像の幅を引いた値までのランダムな整数を得る
X1 = Fix(Rnd * (Form1.ScaleWidth - Image1.Width))
' ゼロから、フォーム画面の高さから画像の高さを引いた値までのランダムな整数を得る
Y1 = Fix(Rnd * (Form1.ScaleHeight - Image1.Height))
' ランダムに決定した座標 X1, Y1 に画像を移動
Image1.Move X1, Y1
'タイマーが動いた回数を変数 tで数える
t = t + 1
'何回タイマーが動くか計算
If t = gametime * 1000 / Timer1.Interval Then
Timer1.Enabled = False
Form2.Show 'form2に飛ぶ
End If
End Sub
No.1
- 回答日時:
新人研修か何かの課題ですか?
FORMにコマンドボタンがついているのでしょうか?
○スタートボタン
クリックしたらENABLEをFALSEにする。
ゲーム終了後ENBALEをTRUEにする。
○背景
もぐらを何で表示させているかわかりませんが
FORMのクリックイベントで座標を取得し
その座標がモグラでなければ減点
としたらいかがでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- C言語・C++・C# 必ずyou bet と表示されます 2 2023/07/28 22:19
- オンラインゲーム スマホのゲームに課金する意味がわかりません、ゲーム機とスマホのゲームでは性能やグラフィックに限界があ 10 2022/08/08 01:49
- その他(パソコン・スマホ・電化製品) サンダーバードえメールについて 2 2023/01/27 21:15
- 依存症 宿題やったと嘘ついてゲーム優先する息子 モンハン 4 2022/05/16 09:06
- 高校 私の学科の先生が厳しすぎて困ってます 先生が課題が終わってない人や私の学科だけしか出ていないテスト対 5 2022/09/02 13:57
- 仕事術・業務効率化 工場の保全経験2年の者です。 最近新らに就職した会社が、設備保全の仕事が部者人員が上司除いて自分一人 3 2023/02/12 15:34
- マウス・キーボード PCのマウスカーソルの動きが鈍い/時々止まるようになりました 5 2023/05/27 17:04
- 兄弟・姉妹 弟が提出物を出せません。 1 2022/07/26 01:25
- iCloud 至急です。 AppleIDのパスワードが100%合ってるのに「AppleIDまたはパスワードが正しく 1 2022/10/04 13:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
コマンドボタンやイメージにマ...
-
VBA CommandButtonの文字ずれ
-
if(wp & MK_ LBUTTON)
-
閉じると「+」になり開くと「-...
-
C#プログラムで、ボタンをショ...
-
フォームの再読み込み
-
ユーザーフォームに別シートか...
-
ASP.Net ラベルの内容をすぐに...
-
セルをマクロのボタンにしたい。
-
MouseDownとMouseMoveイベント...
-
回数のカウント
-
jsで診断コンテンツのページ内...
-
ボタン
-
ワードVBA:コマンドボタンを押...
-
C♯初心者で、四則演算の電卓を...
-
ダウンロードダイアログをVB...
-
VB.NETです ラジオボタンの文...
-
アイコンとボタンの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
Excel VBA Application.caller...
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
プロシージャからイベントをコ...
-
他のアプリケーションとの連携
-
閉じると「+」になり開くと「-...
-
C#で動的に作ったtextboxを消す。
-
ボタンをマウスで押し続けたと...
-
VBA でのボタンの移動について
-
ボタン
-
CommandButtonのCaptionを変化...
-
TextBoxでEnterキーを押すと、...
-
VB.net でトグルボタンを実現し...
おすすめ情報