いつもお世話になっております。
来週から出向先が変わり
VB2005を使うので今VB2005でスロットゲームを作っています。
環境WinXP VB2005です。
数字を回して全ての数字をストップする動作まではできたんですが
数字を一つずつ止めるよい方法が考え付きません。
3×3のスロットで全部ボタンで作っています。
タイマーイベントが発生したときに一気に全部の
スロットの数字が回るようにしています。
タイマーイベントを止めちゃえば全部とまるんですが一つずつ
ボタンの数字を止めるやり方がわかりません。
どれが必要なソースなのかわからないので今作っているソースを
全部載せます。
'初期起動画面
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'タイマーを止めておく
Me.Timer1.Enabled = False
End Sub
'数字ボタンを押したとき
Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click, btnEnd.Click, btnAllStop.Click
Select Case sender.tabindex
Case 0 To 8’回転する番号ボタン
'番号を一個ずつ止める
Call Num(sender.tabindex)
Case 9’スタートボタン
'タイマーを動かす
Me.Timer1.Enabled = True
Case 10’終了ボタン
'フォームを閉じる
Me.Close()
Case 11 To 13
'縦方向ストップ
Case 14 To 16
'横方向ストップ
Case 17
'オールストップ
Me.Timer1.Enabled = False
End Select
End Sub
'スタート関連
Private Sub Start()
'乱数の初期化
Randomize()
Dim i As Integer
Dim j As Integer
'1〜9の乱数の設置
For i = 0 To 2
For j = 0 To 2
Me.btnNum(i, j).Text = CInt(Rnd(1) * 8 + 1)
Next
Next
End Sub
'番号関連
Private Sub Num(ByVal btnNum As Integer)
'
End Sub
'タイマーが動いたときのイベント
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Call Start()
End Sub
End Class
タイマーを9個用意してやろうかなと思ったのですが、なんか付け焼刃
てきなやり方なのでもっと他の方法はないかなと思い投稿しました。
とりあえずボタンの数字を一個ずつ止めるやり方がわかれば
列での止め方も簡単なのですみませんがご教授のほうよろしくお願いいたします。
> For i = 0 To 2
> For j = 0 To 2
> Me.btnNum(i, j).Text = CInt(Rnd(1) * 8 + 1)
> Next
> Next
ループをまわさず特定の i,j のみ設定すればいいだけでは?
おはようございます。良です
>特攻隊長まるるうさん
お返事ありがとうございます。
特定のi,jのみの設定とは
me.btnNum(0,2)とかみたいに
一つずつボタンのテキストを設定するものなんですか?
>一つずつボタンのテキストを設定するものなんですか?
…ん?
>とりあえずボタンの数字を一個ずつ止めるやり方がわかれば
そういう意味ではないのですか?
ああ、分かった。。。
グローバルで
Private m_StopFlag(2, 2) As Boolean
とか宣言して止めたい所だけフラグを立てて
乱数書き込む処理を飛ばせばいいんじゃない?
# …乱数だと目押しできないねw
こんにちは良です。
>特攻隊長まるるうさん
>一つずつボタンのテキストを設定するものなんですか?
>…ん?
>とりあえずボタンの数字を一個ずつ止めるやり方がわかれば
>そういう意味ではないのですか?
すみません・・・説明不足でした・・・
ボタンを1個ずつ止めるやり方はタイマーを9個用意して
ボタン1個に一つずつ対応させてやればいけるんですが、
タイマー1個でできるようなものがないかなと思い質問いたしました。
申し訳ないです・・・
お返事ありがとうございます。
確かにフラグを立ててそこだけ処理を抜ければいけそうですね。
ありがとうございます。
余裕ができたら乱数をやめて、しかもボタンを押した跡にいくつか
ずれる処理も入れたいと思います。
できました。ありがとうございました。
VB2005って今までのVBの中でかなり
わかりやすくできていますね。
間違いの指摘とか宣言忘れとか
間違いの対処法もその場で提供してくれますし。
ツイート | ![]() |