Shogoki92
Mitglied
Hallo ich habe folgendes Problem: Ich hab ein Bild das ich in ein Surface Blitte
und dann will ich es per Tastendruck bewegen. Doch wenn ich die Taste drücke passiert nichts da sich anscheinend mein Surface nicht refreshed. Wenn ich das Fenster ausserhab des Desktopbereichs ziehe und wieder rein dann ist die Veränderung plötzlich sichtbar.
Ich benutze die SDL.NET lib
Hier mein Code:
hoffe ihr könnt mir weiterhelfen.
Schonmal Danke im vorraus
MfG Shogoki92
und dann will ich es per Tastendruck bewegen. Doch wenn ich die Taste drücke passiert nichts da sich anscheinend mein Surface nicht refreshed. Wenn ich das Fenster ausserhab des Desktopbereichs ziehe und wieder rein dann ist die Veränderung plötzlich sichtbar.
Ich benutze die SDL.NET lib
Hier mein Code:
Code:
Imports SdlDotNet.Graphics
Imports SdlDotNet.Input
Imports SdlDotNet.Core
Class Form1
Dim screen, image As Surface
Dim sprite1, sprite2 As Sprites.Sprite
Public even As SdlDotNet.Core.Events
Dim dst, dstblue, test As Rectangle
Dim picX As Integer = 50, picY As Integer = 50
Dim color As New Color
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
image = New Surface(My.Resources.erde)
test = New Rectangle(77, 77, image.Width, image.Height)
dst = New Rectangle(picX, picY, image.Width, image.Height)
dstblue = New Rectangle(picX, picY, image.Width, image.Height)
color = New Color
color = Drawing.Color.Green
screen = Video.SetVideoMode(640, 480, 32, True, False, False, True)
screen.Fill(color)
screen.Blit(image, dst)
End Sub
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
Me.Hide()
AddHandler SdlDotNet.Core.Events.KeyboardDown, AddressOf keyd
SdlDotNet.Core.Events.Run()
Return
End Sub
Sub keyd(ByVal sender As Object, ByVal e As KeyboardEventArgs)
If e.Key = Key.DownArrow Then
If picY < 470 - image.Height Then
picY = picY + 1
End If
ElseIf e.Key = Key.UpArrow Then
If picY > 10 Then
picY = picY - 1
End If
ElseIf e.Key = Key.LeftArrow Then
If picX > 10 Then
picX = picX - 1
End If
ElseIf e.Key = Key.RightArrow Then
If picX < 630 - image.Width Then
picX = picX + 1
End If
End If
dst.X = picX
dst.Y = picY
screen.Fill(color.Green)
screen.Blit(image, dst)
End Sub
End Class
hoffe ihr könnt mir weiterhelfen.
Schonmal Danke im vorraus
MfG Shogoki92