掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
とりあえずピンの配置(ボウリングゲーム) (ID:142806)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
すみません。勝手に改造させてもらいました。 でも、倒れたピンの輪郭が残っているのと、倒れたピンの数字が 横向きになりません。あと、立っているピンと倒れているピンが 重なり合っている境界線が明瞭でないのが気になってます。 Public Class Form1 Dim pin() As Integer = {135, 200, 100, 160, 170, 160, 65, 120, 135, 120, 205, 120, 30, 80, 100, 80, 170, 80, 240, 80} Dim myFont As Font = New Font("ui gothic", 20) Dim pin_jyoutai() As Integer = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1} Dim random1 As Random Public Sub New() ' この呼び出しは、Windows フォーム デザイナで必要です。 InitializeComponent() ' InitializeComponent() 呼び出しの後で初期化を追加します。 Me.StartPosition = FormStartPosition.CenterScreen Me.BackColor = Color.Gray Me.Size = New Size(500, 700) End Sub Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load With PictureBox1 .Size = New Size(300, 620) .BackColor = Color.Black .Location = New Point(20, 20) End With Button1.Location = New Point(350, 30) Button1.Size = New Size(120, 30) Button1.Text = "1投目" End Sub Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint Dim g As Graphics = e.Graphics g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality g.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias For i = 0 To 9 iro(e.Graphics, Brushes.White, Pens.Red, i) Next For i = 0 To 9 If pin_jyoutai(i) = 0 Then iro(e.Graphics, Brushes.Black, Pens.Black, i) g.FillEllipse(New SolidBrush(Color.Black), pin(i * 2) - 1, pin(i * 2 + 1) + 30, 20, 30) iro2(e.Graphics, Brushes.White, Pens.Red, i) End If Next End Sub Sub iro(ByVal x As Graphics, ByVal y As Brush, ByVal z As Pen, ByVal i As Integer) x.FillEllipse(y, pin(i * 2), pin(i * 2 + 1), 20, 30) x.FillEllipse(y, pin(i * 2) - 5, pin(i * 2 + 1) + 20, 30, 50) x.DrawLine(z, pin(i * 2) + 2, pin(i * 2 + 1) + 25, pin(i * 2) + 19, pin(i * 2 + 1) + 25) x.DrawLine(z, pin(i * 2) + 2, pin(i * 2 + 1) + 22, pin(i * 2) + 19, pin(i * 2 + 1) + 22) x.DrawString(CStr(i), myFont, Brushes.Red, pin(i * 2) - 1, pin(i * 2 + 1) + 30) End Sub Sub iro2(ByVal x As Graphics, ByVal y As Brush, ByVal z As Pen, ByVal i As Integer) x.FillEllipse(y, pin(i * 2 + 1), pin(i * 2), 30, 20) x.FillEllipse(y, pin(i * 2 + 1) + 20, pin(i * 2) - 5, 50, 30) x.DrawLine(z, pin(i * 2 + 1) + 25, pin(i * 2) + 2, pin(i * 2 + 1) + 25, pin(i * 2) + 19) x.DrawLine(z, pin(i * 2 + 1) + 22, pin(i * 2) + 2, pin(i * 2 + 1) + 22, pin(i * 2) + 19) x.DrawString(CStr(i), myFont, Brushes.Red, pin(i * 2 + 1) + 30, pin(i * 2) - 1) End Sub Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click For i = 0 To 9 pin_jyoutai(i) = 1 Next random1 = New Random() Dim x As Integer x = random1.Next(4) Select Case x Case 0 'ストライク For i = 0 To 9 pin_jyoutai(i) = 0 Next Case 1 'ピンの倒れるパターン1 pin_jyoutai(0) = 0 : pin_jyoutai(1) = 0 : pin_jyoutai(3) = 0 : pin_jyoutai(6) = 0 : pin_jyoutai(7) = 0 Case 2 'パターン2 pin_jyoutai(0) = 0 : pin_jyoutai(2) = 0 : pin_jyoutai(4) = 0 : pin_jyoutai(7) = 0 : pin_jyoutai(8) = 0 Case 3 'パターン3 pin_jyoutai(1) = 0 : pin_jyoutai(2) = 0 : pin_jyoutai(3) = 0 : pin_jyoutai(7) = 0 Case 4 'パターン4 pin_jyoutai(2) = 0 : pin_jyoutai(4) = 0 : pin_jyoutai(5) = 0 : pin_jyoutai(8) = 0 : pin_jyoutai(9) = 0 Case 5 ' 'caseをどんどん増やす '以下略 End Select PictureBox1.Invalidate() End Sub End Class
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.