Forum: En studsande boll? SDL

Forum huvudsida -> Programmering -> En studsande boll? SDL

Sidor: 1

Till botten

TutenStain 17:26 - 10:e Oktober 2008 | Post #1
Medlem
Inlägg: 3


Skicka PM
Hej!

Försöker göra ett pong spel (ja detta är mitt första "spel") men har fått lite problem Smiley

Allt är klart inklusive colitions hanteraren men kan inte få bollen att studsa (vet inte hur man gör). Någon som kan visa/förklara hur man gör?

Tack!




ozamosi 17:48 - 10:e Oktober 2008 | Post #2
Administratör
Inlägg: 1129


Skicka PM
Att få någonting att studsa är väldigt enkelt - man bara inverterar (multiplicerar med -1) hastigheten (förflyttningen varje skärmuppdatering) i riktningen (x eller y) bollen krockar med något.

Om bollen t ex krockar med taket (om bollens y-position är 0 eller mindre) inverterar man hastigheten i y-led - alltså, om bollen rör sig i y-led med hastigheten -1 (en pixel uppåt varje frame), ska man istället skicka den i y-led med hastigheten 1 (skicka den en pixel neråt). Och motsvarande för alla andra riktningar.

-------------------------
Ljusblå



TutenStain 18:11 - 10:e Oktober 2008 | Post #3
Medlem
Inlägg: 3


Skicka PM
Sorry, men fattar inte riktigt.

Eller jag fattar men vet inte hur man ska göra.
Aj, det är svårt att förklara!Smiley
Skulle inte någon kunna koda lite och visa hur man gör?

Tack på förhand.


Senast redigerad 18:13 - 10:e Oktober 2008


Slash 19:06 - 10:e Oktober 2008 | Post #4
Medlem
Inlägg: 141


Skicka PM
Lite konkretare då:
  1. // Jag antar att du har variabler för bollens position, här x och y:
  2. int x = 0;
  3. int y = 0;
  4.  
  5. // Vidare så antar jag att det finns två variabler som står för bollens hastighet, här dx och dy:
  6. int dx = 1;
  7. int dy = 1;
  8.  
  9. // Sen finns det någon typ av mainloop eller uppdatera-funktion, t ex:
  10. void uppdatera()
  11. {
  12. // Såhär får du bollen att byta riktning
  13. if (x + dx < 0 || x + dx > width)
  14. dx = -dx;
  15. if (y + dy < 0 || y + dy > height)
  16. dy = -dy
  17.  
  18. // Här uppdateras positionen på bollen genom att förflytta den med hastigheten
  19. x += dx;
  20. y += dy;
  21. }


Nåt liknande borde fungera..

EDIT: Rätt syntax-hilightning

-------------------------
Ingen sigantur!

Senast redigerad 19:07 - 10:e Oktober 2008


TutenStain 20:32 - 10:e Oktober 2008 | Post #5
Medlem
Inlägg: 3


Skicka PM
Fick det att funka Tack! Smiley


Senast redigerad 18:32 - 11:a Oktober 2008


Sidor: 1

Forum huvudsida -> Programmering -> En studsande boll? SDL
Atom feed

Du får inte posta i den här tråden | Till toppen