Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

26.05.2011, 17:00

Keine Bewegung bei Sprite

Hallo!

Ich bin ein ziemlicher Anfänger und dies ist mein erster Beitrag. Hoffentlich ist er soweit verständlich und richtig eingeordnet.

Jetzt habe ich ein Programm geschrieben, das einfach nur einen Hintergrund zeigt und ein animiertes Spielobjekt (hier einen Drachen). Das ganze ist aus einem Anleitungsbuch mit nur sehr kleinen, nicht sonderlich wichtigen Änderungen.

Wenn ich mein Programm ausführe, funktioniert das ganz gut, der Drache fliegt über eine Wiese. Allerdings kann ich ihn nicht lenken.


C#-Quelltext

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
 private void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
Game_KeyPressed(e.KeyCode); 
} 
(...) 
switch (direction) 
{ 
case 0: velocity = new Point(0, -1); break; 
case 2: velocity = new Point(1, 0); break; 
case 4: velocity = new Point(0, 1); break; 
case 6: velocity = new Point(-1, 0); break; 
} 
dragonSprite.X += velocity.X; 
dragonSprite.Y += velocity.Y; 
//animate and draw dragon sprite 
dragonSprite.Animate(direction * 8 + 1, direction * 8 + 7); 
(...) 
public void Game_KeyPressed(System.Windows.Forms.Keys key) 
{ 
switch (key) 
{ 
case Keys.Escape: Shutdown(); break; 
case Keys.Up: direction = 0; break; 
case Keys.Right: direction = 2; break; 
case Keys.Down: direction = 4; break; 
case Keys.Left: direction = 6; break; 
} 
}

Ich hoffe, dass mir jemand helfen kann.
Vielen Dank schon mal im Voraus.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Smiley0795« (26.05.2011, 17:42)


drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

26.05.2011, 17:10

Du solltest noch sagen mit was du das Spiel machst und welche Framework du verwendest (falls du eines benutzt). Dass hier wird C# sein.

Einen besseren Titel für den Thread könntest du auch nehmen (spezifischer). Probleme mit der Programmierung haben hier die meisten, die etwas fragen. ;)
"Keine Bewegung bei Sprite" o.ä.

Was das Problem anbelangt ist es schwer zu sagen. Werden denn die Funktionen aufgerufen? Hast du da mal etwas mit dem Debugger geschaut?

Und den Code korrekt einrücken solltest du auch. Das ist so extrem mühsam zu lesen.

Aber auf jeden Fall Willkommen im Forum! ;)

3

26.05.2011, 17:51

Dankeschön für die schnelle Antwort. Leider bin ich auch hier im Forum absoluter Anfänger, deshalb bin ich für diese Hinweise sehr dankbar. Den Titel habe ich auch sofort geändert. Das mit dem Einrücken hat noch nicht so ganz geklappt, aber der Text ist schon einmal bunt. Vielleicht hilft das ja schon mal ein bisschen...

Das "Spiel" habe ich mit C# gemacht.

Wie kann ich es denn testen, ob die Funktionen aufgerufen werden? Wenn ich diese Schritt-für-Schritt Funktion nutze (F11), dann werden die Ereignisse nicht mitbehandelt. Das habe ich nämlich schon gemacht.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

26.05.2011, 18:08

Setz einen Haltepunkt in die Funktion (F9).

5

26.05.2011, 21:03

Danke nochmal, dass Problem hat sich gelöst :) Dieser Haltepunkt in der Funktion ist ziemlich praktisch.

Werbeanzeige