Ich weiß, ist so 0815 aber ich habe das Problem dass ich bei einem Movement Spiel, ich hoffe ihr wisst was ich meine, "Mauern" einbaue welche Hindernisse sind.
Hier ein Bild vom Grundgerüst:
Das Bewegen an sich ist kein Problem, auch nicht die Spielränder. Man kann sich somit aktuell im gesamten bereich innerhalb der äußeren Spielränder bewegen. Nur wie setzte ich um, dass man nicht durch die Zwischenränder/Mauern kommt? Ich poste mal den gesamten Code (Grundgerüst zum Verständnis).
Gesamter:
Mein Problem liegt ca. ab Zeile 89. Wenn "playermouse" (ich entwickle hauptsächlich erst für die eine, dann für die andere Spielfigur) eine Wand berührt, kann sich der Spieler nicht mehrin diese Richtung bewegen. Das Problem habe ich gerade schon dargestellt, wie bekomme ich hin dass der Spieler sich dann nur noch 'zurück' bewegen kann?
Hoffe ich habe mein Problem richtig definiert, bei Fragen: fragen
Liebe grüße
Hier ein Bild vom Grundgerüst:
Das Bewegen an sich ist kein Problem, auch nicht die Spielränder. Man kann sich somit aktuell im gesamten bereich innerhalb der äußeren Spielränder bewegen. Nur wie setzte ich um, dass man nicht durch die Zwischenränder/Mauern kommt? Ich poste mal den gesamten Code (Grundgerüst zum Verständnis).
Gesamter:
VB.NET-Quellcode
- Public Class Form1
- Dim Up1 As Boolean
- Dim Down1 As Boolean
- Dim Left1 As Boolean
- Dim Right1 As Boolean
- Dim Up2 As Boolean
- Dim Down2 As Boolean
- Dim Left2 As Boolean
- Dim Right2 As Boolean
- Dim rnd As New Random
- Private Sub Form6_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
- 'TASTATUR W A S D = MOUSE = UP1 DOWN1 RIGHT1 LEFT1
- 'PFEILTASTEN UP DOWN LEFT RIGHT = CAT = UP2 DOWN2 RIGHT2 LEFT2
- 'Mouse
- If e.KeyCode = Keys.Up Then
- Up1 = True
- End If
- If e.KeyCode = Keys.Down Then
- Down1 = True
- End If
- If e.KeyCode = Keys.Right Then
- Right1 = True
- End If
- If e.KeyCode = Keys.Left Then
- Left1 = True
- End If
- 'Cat
- If e.KeyCode = Keys.W Then
- Up2 = True
- End If
- If e.KeyCode = Keys.S Then
- Down2 = True
- End If
- If e.KeyCode = Keys.D Then
- Right2 = True
- End If
- If e.KeyCode = Keys.A Then
- Left2 = True
- End If
- End Sub
- Private Sub Form6_KeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp
- If e.KeyCode = Keys.Up Then
- Up1 = False
- End If
- If e.KeyCode = Keys.Down Then
- Down1 = False
- End If
- If e.KeyCode = Keys.Right Then
- Right1 = False
- End If
- If e.KeyCode = Keys.Left Then
- Left1 = False
- End If
- If e.KeyCode = Keys.W Then
- Up2 = False
- End If
- If e.KeyCode = Keys.S Then
- Down2 = False
- End If
- If e.KeyCode = Keys.D Then
- Right2 = False
- End If
- If e.KeyCode = Keys.A Then
- Left2 = False
- End If
- End Sub
- Private Sub MovemenT_Tick(sender As Object, e As EventArgs) Handles MovemenT.Tick
- If playermouse.Bounds.IntersectsWith(PictureBox1.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox2.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox3.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox4.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox5.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox6.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox7.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox8.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox9.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox10.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox11.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox12.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox13.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox14.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox15.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox16.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox17.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox18.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox19.Bounds) Or playermouse.Bounds.IntersectsWith(PictureBox20.Bounds) Then
- 'berührt Mauer
- '???
- Else
- If Up1 = True Then
- playermouse.Top -= 3
- If playermouse.Top <= 12 Then
- playermouse.Top = 12
- End If
- End If
- If Down1 = True Then
- playermouse.Top += 3
- If playermouse.Top + 89 >= Me.Height Then
- playermouse.Top = Me.Height - 89
- End If
- End If
- If Left1 = True Then
- playermouse.Left -= 3
- If playermouse.Left <= 21 Then
- playermouse.Left = 21
- End If
- End If
- If Right1 = True Then
- playermouse.Left += 3
- If playermouse.Left + 64 >= Me.Width Then
- playermouse.Left = Me.Width - 64
- End If
- End If
- If Up2 = True Then
- playercat.Top -= 2
- If playercat.Top <= 12 Then
- playercat.Top = 12
- End If
- End If
- If Down2 = True Then
- playercat.Top += 2
- If playercat.Top + 89 >= Me.Height Then
- playercat.Top = Me.Height - 89
- End If
- End If
- If Left2 = True Then
- playercat.Left -= 2
- If playercat.Left <= 21 Then
- playercat.Left = 21
- End If
- End If
- If Right2 = True Then
- playercat.Left += 2
- If playercat.Left + 64 >= Me.Width Then
- playercat.Left = Me.Width - 64
- End If
- End If
- End If
- End Sub
- End Class
Mein Problem liegt ca. ab Zeile 89. Wenn "playermouse" (ich entwickle hauptsächlich erst für die eine, dann für die andere Spielfigur) eine Wand berührt, kann sich der Spieler nicht mehr
Hoffe ich habe mein Problem richtig definiert, bei Fragen: fragen
Liebe grüße
╔══╦═╦╦╦═╦══╦══╦╗╔╦═╦╦═╦══╗
║║║║╩╠..╣╦╬╗╚╬╗╔╣╚╝║╠║║║╠╗╚╣
╚╩╩╩╩╩╩╩═╩══╝╚╝╚══╩═╩╩═╩══╝