Фоновое изображение движется vb.net - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь создать маленькую игру, но у меня проблемы. Мне бы хотелось, чтобы фоновое изображение двигалось как петля, когда игрок перемещается по карте. Следующий код является примером того, что я хочу, но наоборот.

Public Class Form1
Private WithEvents Tmr As New Timer With {.Interval = 40}
Private water As New Bitmap("C:\TestFolder\Water.png")
Private waterposition As Integer = 0

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    PictureBox1.Size = New Size(240, 74)
    Tmr.Start()
End Sub

Private Sub Tmr_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Tmr.Tick
    waterposition += 1
    If waterposition = water.Width Then waterposition = 0
    PictureBox1.Invalidate()
End Sub

Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
    e.Graphics.DrawImage(water, waterposition, 0)
    If waterposition > 0 Then e.Graphics.DrawImage(water, 0 - (water.Width - waterposition), 0)
End Sub End class

А теперь, когда я пытаюсь повернуть его вспять (справа налево), изображение не будет перерисовано.

Private Sub Tmr_Tick(sender As Object, e As EventArgs) Handles Tmr.Tick
    waterposition -= 1
    If waterposition = 0 Then waterposition = water.Width
    PictureBox1.Invalidate()
End Sub

Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
    e.Graphics.DrawImage(water, waterposition, 0)
    If waterposition < 0 Then e.Graphics.DrawImage(water, (water.Width + waterposition), 0)
End Sub

Есть предложения? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...