| Autor |
Nachricht |
D.J.
Mitglied
Benutzerprofil
Anmeldungsdatum: 02.07.2012
Beiträge: 81
|
D.J. Mitglied
02:11:11 20.08.2012 Titel: |
OnPaintEvent in Timer |
Zitieren |
Hey,
in meinem Spiel wird der Spieler auf einem Panel gezeichnet.
Um seine Position neu zu bestimmen habe ich eine Update-Methode:
| Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class Spieler
{
public Image Spieler_Img = Image.FromFile(@"......");
public int SpielerX = 700;
public int SpielerY = 400;
public Spieler()
{
}
public void Update(PaintEventArgs e)
{
var g = e.Graphics;
g.DrawImage(Spieler_Img, new Point(SpielerX, SpielerY));
}
} | |
Damit der Spieler laufen kann habe ich noch die Bewegung abhängig von der gedrückten Taste eingebaut.
| Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | public List<Keys> _pressedKeys = new List<Keys>();
private void Map_KeyDown(object sender, KeyEventArgs e)
{
_pressedKeys.Add(e.KeyData);
}
private void Map_KeyUp(object sender, KeyEventArgs e)
{
_pressedKeys.Clear();
}
private void SpielerTimer_Tick(object sender, EventArgs e)
{
// Spieler Bewegungen abhängig von Keys //
if (_pressedKeys.Contains(Keys.W))
{
Player.SpielerY -= 10;
}
if (_pressedKeys.Contains(Keys.S))
{
Player.SpielerY += 10;
}
if (_pressedKeys.Contains(Keys.A))
{
Player.SpielerX -= 10;
}
if (_pressedKeys.Contains(Keys.D))
{
Player.SpielerX += 10;
}
} | |
Mein Problem ist jetzt, dass ich es nicht hinbekomme den Spieler neu zu zeichnen auf dem Pannel... d.h. die Update-Methode mit jedem Tick aufzurufen.
Bräuchte da ein paar Tipps.
Danke
D.J. |
|
|
|
 |
Dravere
Moderator
Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 8169
|
Dravere Moderator
10:47:19 20.08.2012 Titel: |
|
Zitieren |
|
 |
D.J.
Mitglied
Benutzerprofil
Anmeldungsdatum: 02.07.2012
Beiträge: 81
|
D.J. Mitglied
15:58:36 21.08.2012 Titel: |
|
Zitieren |
Danke erstmal.
Aber wie darf ich das verstehen.
Muss ich mit dem Control.Paint-Event meinem Panel das Image anfügen? |
|
|
|
 |
Dravere
Moderator
Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 8169
|
Dravere Moderator
17:43:21 21.08.2012 Titel: |
|
Zitieren |
Dein Panel erbt von Control. Heisst dein Panel hat ebenfalls das Paint Event und es hat ebenfalls die Invalidate Methoden. Wenn das Paint Event deines Panels ausgelöst wird, zeichnest du. Und mit der Invalidate Methode kannst du deinem Panel sagen, dass es sich neu zeichnen soll.
Grüssli |
_________________ Danke für die Hilfe, Antwort oder Meinung!
C++: Std-Lib Referenz
C# .Net: MSDN kennt die Antwort
|
|
 |
D.J.
Mitglied
Benutzerprofil
Anmeldungsdatum: 02.07.2012
Beiträge: 81
|
D.J. Mitglied
23:59:42 21.08.2012 Titel: |
|
Zitieren |
Ok Vielen Dank
Hab es geschafft. |
Zuletzt bearbeitet von D.J. am 00:02:40 22.08.2012, insgesamt 1-mal bearbeitet |
|
 |
Ape
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.08.2012
Beiträge: 18
|
Ape Mitglied
15:10:32 27.08.2012 Titel: |
|
Zitieren |
Benutz doch einfach PictureBox1.Refresh() |
|
|
|
 |
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|
|