tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルモグラたたきの時間の入れ方
記事No8499
投稿日: 2008/12/27(Sat) 18:23
投稿者カズン
消去しました

[ツリー表示へ]
タイトルぼくちんも作りました。モグラです
記事No8501
投稿日: 2008/12/28(Sun) 18:43
投稿者ローマ皇帝レオ♪

若葉マークのレオ♪です(8ヶ月)
もぐらタタキ.reoオリジナル
Option Strict On
'vista
'VisualBasic2008
Public Class form1
    Private p_Box_Suu As Integer = 8 'PictureBox数
    Private p_Box(p_Box_Suu - 1) As PictureBox
    Private mogura_p_suu As Integer = 10 'もぐらキャラ数
    Private mogura(mogura_p_suu - 1) As Image
    Private mog_jyoutai(p_Box_Suu - 1) As Integer '各PictureBoxのもぐら状態
    Private end_count As Integer = 0 'もぐら出現カウント
    Private score As Integer = 0 '得点
    Private level As Integer = 0

    Public Sub New()
        ' この呼び出しは、Windows フォーム デザイナで必要です。
        InitializeComponent()
        ' InitializeComponent() 呼び出しの後で初期化を追加します。
        mogura(0) = My.Resources.mogu0
        mogura(1) = My.Resources.mogu5
        mogura(2) = My.Resources.mogu4
        mogura(3) = My.Resources.mogu3
        mogura(4) = My.Resources.mogu2
        mogura(5) = My.Resources.mogu1
        mogura(6) = My.Resources.mogu2
        mogura(7) = My.Resources.mogu3
        mogura(8) = My.Resources.mogu4
        mogura(9) = My.Resources.mogu5
    End Sub
    Private Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        p_Box(0) = PictureBox1
        p_Box(1) = PictureBox2
        p_Box(2) = PictureBox3
        p_Box(3) = PictureBox4
        p_Box(4) = PictureBox5
        p_Box(5) = PictureBox6
        p_Box(6) = PictureBox7
        p_Box(7) = PictureBox8
        'もぐら状態の初期化
        syokika()
    End Sub
    Private Sub syokika()
        For i As Integer = 0 To p_Box_Suu - 1
            mog_jyoutai(i) = 0
        Next
        For i As Integer = 0 To p_Box_Suu - 1
            p_Box(i).Image = mogura(0)
        Next
        end_count = 0
        Label2.Text = score.ToString
        Label4.Text = level.ToString
        StartButton.Visible = True
        レベルButton.Visible = True
    End Sub

    Private Sub StartButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartButton.Click
        score = 0
        syokika()
        StartButton.Visible = False
        レベルButton.Visible = False
        Timer1.Interval = 100
        Timer1.Start()
        レベルTimer.Interval = 1500 - level * 200
        レベルTimer.Start()
    End Sub
    Private Sub レベルButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles レベルButton.Click
        level += 1
        If level = 4 Then level = 0
        Label4.Text = level.ToString
    End Sub
    Private Sub mogura_deta(ByVal p_Number As Integer)
        Dim mog_deru As Integer
        mog_deru = mog_jyoutai(p_Number)
        p_Box(p_Number).Image = mogura(mog_deru)
        mog_deru += 1
        If mog_deru = 10 Then
            mog_deru = 0
        End If
        mog_jyoutai(p_Number) = mog_deru
    End Sub
    Private Sub mogura_deru_ramdom()
        Dim rand As System.Random
        Dim i As Integer
        rand = New System.Random()
        i = rand.Next(p_Box_Suu)
        mog_jyoutai(i) = 1
        end_count += 1
        If end_count = 11 Then
            ending()
        End If
    End Sub
    Private Sub ending()
        Me.Timer1.Stop()
        Me.レベルTimer.Stop()
        syokika()
    End Sub
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        For i As Integer = 0 To p_Box_Suu - 1
            If mog_jyoutai(i) > 0 Then
                mogura_deta(i)
            Else
                p_Box(i).Image = mogura(0)
            End If
        Next
    End Sub

    Private Sub レベルTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles レベルTimer.Tick
        mogura_deru_ramdom()
    End Sub

    Private Sub push_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click, PictureBox8.Click, PictureBox7.Click, PictureBox6.Click, PictureBox5.Click, PictureBox4.Click, PictureBox3.Click, PictureBox2.Click
        Dim click As Windows.Forms.PictureBox = DirectCast(sender, Windows.Forms.PictureBox)
        Dim kensa As Integer
        kensa = CInt(click.Tag)
        If mog_jyoutai(kensa) > 0 Then
            score += 10 + level * 2
            mog_jyoutai(kensa) = 0
        End If
        Label2.Text = score.ToString
    End Sub
End Class

[ツリー表示へ]
タイトルRe: ぼくちんも作りました。モグラです
記事No8502
投稿日: 2008/12/28(Sun) 20:17
投稿者カズン
ありがとうございます。
私のプログラムだとどこをどうすればいいですか?

[ツリー表示へ]
タイトルかずん君は自力でやれる。がんばれ!!
記事No8504
投稿日: 2008/12/28(Sun) 23:02
投稿者ローマ皇帝レオ♪


かず君は自力で、バグ取りができる実力がある!!と思います。
もぐらたたきは簡単じゃ〜とゆう気合でガンバ♪
ぼくちんは、違うミニGameを作って遊ぶのだ。
また、どこかで、会いましょう♪

[ツリー表示へ]
タイトルRe: かずん君は自力でやれる。がんばれ!!
記事No8505
投稿日: 2008/12/29(Mon) 15:15
投稿者カズン
そんなこといわないでください
あまり、時間もなくて本当に困っています。

[ツリー表示へ]
タイトル本当に助けてください
記事No8506
投稿日: 2008/12/29(Mon) 17:21
投稿者カズン
決めた時間の間に動かすにはどうすればいいの?

[ツリー表示へ]
タイトル誰か助けてあげて♪
記事No8507
投稿日: 2008/12/29(Mon) 19:13
投稿者ローマ皇帝レオ♪
> 決めた時間の間に動かすにはどうすればいいの?

ぼくちんのとコードが違うんでアレですが。
同じ環境の人を待つしかないね。
僕チンのはタイマーが0・1秒*9キャラで約1秒表示されます。
キャラ1番目はモグラが頭を少しだします。キャラ5はモグラが頭を出し切りバンザイします。
クリック判定は、リソースNo1〜9の間が有効で0の時は無効にしてます。
ピクチャーボックスを配列化して・・・・
難しいですか?
フロチャートを作って、よく考えましょう。

[ツリー表示へ]
タイトル回答ではありません
記事No8508
投稿日: 2008/12/29(Mon) 21:07
投稿者しんご
傍観しておりました。

理由は、これは学校の課題ではないか、と思ったからです。
流れから仕事でのお話、あるいは趣味の範囲ではないと
推測しました。消去法ではありますが、課題か、その類だろうと。

もし、学校の課題であれば、自分で調べるのが筋ではないですか?
内容的にも難しくありませんし、ローマ皇帝レオ♪さんが書かれているように
フローチャートを作って、どこでどうなるべきなのかを図式化すれば
わかりやすいと思います。

これぐらいのことは自分の力で調べないと、
プログラマーとしての力がつかず、後々苦労しますよ。

タイトルのとおり、回答は書きません。
カズンさんに考える力をつけてほしいためです。
意地悪ではありません。

[ツリー表示へ]
タイトルRe: 本当に助けてください
記事No8509
投稿日: 2008/12/29(Mon) 21:37
投稿者neptune
> 決めた時間の間に動かすにはどうすればいいの?
>きまった時間の間に叩くことができません
ゲームには興味ないので意味が良く把握できませんが、
ぱっと見で、決まった時間を認識するためのロジックが無いようですね?

[ツリー表示へ]
タイトルRe^2: 本当に助けてください
記事No8512
投稿日: 2008/12/30(Tue) 15:26
投稿者カズン
そうなんです。
1分なら1分と決めてその間にもぐらをたたくってことです。
そこのプログラムが全然わかりません。

[ツリー表示へ]
タイトルRe^3: 本当に助けてください
記事No8513
投稿日: 2008/12/30(Tue) 17:28
投稿者花ちゃん
> 1分なら1分と決めてその間にもぐらをたたくってことです。
> そこのプログラムが全然わかりません。

投稿されたコードは何方が作られたのですか?
貴方が作られたのなら少しは考えればできるかと思うのですが、質問内容も一向に進歩が
見られないし、ラベルに時間を表示する事はできますか?
できるなら、60秒からのカウントダウンを表示してみるとかすれば少しは見えてくるかも。

スタート時に現在時間を取得して、それにゲーム時間(仮に1分なら)を足した時間と
ゲーム中の時間をどこかで比較して、時間が経過していたら、タイムオーバーのメッセージ
でもだせばいいのでは。

又は、時間で制限するのではなく、モグラの出現回数で制限するとか、100回表示したら、
ゲームオーバーにするとかすれば、100回中何回たたいたかを表示すれば点数が解り易いし。
通常は、こちらで制限しているではないですか?(ゲームはやらないので知りませんが)



 

[ツリー表示へ]
タイトルRe^4: 本当に助けてください
記事No8515
投稿日: 2008/12/31(Wed) 12:01
投稿者カズン
返事ありがとうございます。

作ったのは私です。
でも、時間のところだけがどうしてもわかりません。
教えてもらえないですか?

[ツリー表示へ]
タイトルRe^5: 本当に助けてください
記事No8516
投稿日: 2008/12/31(Wed) 12:38
投稿者花ちゃん
> 作ったのは私です。
> でも、時間のところだけがどうしてもわかりません。
 http://hanatyan.sakura.ne.jp/hazimeni.htm#keijiban

> 教えてもらえないですか?

回答したはずですが?
それでも解らないなら、下記を試して基本から勉強して下さい。
http://hanatyan.sakura.ne.jp/dotnet/dayframe.htm

挙句の果ては、マルチポストですか。
 http://bbs.wankuma.com/index.cgi?mode=al2&namber=30657

[ツリー表示へ]
タイトル一応できました
記事No8517
投稿日: 2008/12/31(Wed) 16:58
投稿者カズン
迷惑かけてすみません。
一応、私のプログラムができました。
でも、少し不具合もあるので手伝っていただいてもいいですか?

[ツリー表示へ]
タイトルマルチポスト先への返事は!
記事No8518
投稿日: 2008/12/31(Wed) 18:35
投稿者花ちゃん
>消去しました

解決できたら、投稿したコードを削除するのでは、ちょっと勝手すぎるのでは。

> 迷惑かけてすみません。
> 一応、私のプログラムができました。
> でも、少し不具合もあるので手伝っていただいてもいいですか?

  http://glossary.tank.jp/t062E.html

  http://glossary.tank.jp/t022B.html

[ツリー表示へ]
タイトル解決はできてないでしょ。
記事No8522
投稿日: 2009/01/01(Thu) 17:04
投稿者reo♪
バグ(不具合)について
1 乱数の9のトコが配列に入りきらないので、オーバーフローが発生する。
2 1クリックで得点加算するように。ダブル&トリプルクリックで得点が
2倍&3倍になる。

[ツリー表示へ]