JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Ballphysik

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Cyianor
Super JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 452

Medaillen: Keine

BeitragVerfasst am: 14.08.2003, 11:48    Titel: Ballphysik Antworten mit Zitat

Hi,

ich mach gerade einen kleinen Pongklon und bin gerade dabei die Ballphysik zu machen, aber leider hab ich keine Ahnung wie ich das realisieren soll, kann mir da jemand helfen???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 14.08.2003, 11:59    Titel: Antworten mit Zitat

Das ist doch einfach eine normale Bouncing-Sache, oder?

da würde ich das so machen:

x +=xstep;
y +=ystep;

if (hitsomethin on the x-axis) xstep *= -1;

if (hitsomethin on the y-axis) ystep *= -1;

x,y sind die Koordinaten des Balls

xstep und ystep ist das Schrittmaß welches du pro Frame nehmen willst, ich glaub da kannst du ruhig 1 nehmen, naja kommt auf die Framerate an.

EDIT:
Das kurze Tut war zwar für Flash, aber du solltest das locker mit C++ umsetzen können: www.newevolution.de/tut.swf
_________________
The source of all power is in its destiny...


Zuletzt bearbeitet von TheMillenium am 14.08.2003, 12:11, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 14.08.2003, 12:02    Titel: Antworten mit Zitat

Da würde ich am besten mal die einfachste Physik nehmen: "Einfallswinkel=Ausfallswinkel"
D.h. in dem Winkel, in dem der Ball auf ein Hindernis trifft, prallt er auch wieder davon ab.
Das geht am einfachsten bei Hindernissen mit geraden Flächen. Wenn diese Flächen auch noch Parallel zur X- oder Y-Achse liegen, geht es am einfachsten. Du kehrst einfach die entsprechenden "Richtungsgeschwindigkeiten" um.
Wenn der Ball sich anfangs 3 Pixel nach rechts und 2 Pixel nach unten bewegt, dann bewegt er sich nachher(wenn er auf ein Hindernis unten trifft)3 Pixel nach rechts und -2 Pixel nach unten(d.h. 2 Pixel nach oben) Wink

<edit>
Mist, da war einer schneller
</edit>
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Cyianor
Super JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 452

Medaillen: Keine

BeitragVerfasst am: 19.08.2003, 19:08    Titel: Antworten mit Zitat

ok, das klappt jetzt eigentlich schon...fast...

Das Problem ist das wenn der Ball von rechts oder links kommt es ja auch reicht wenn ich die x-Achse umdrehe. Die Kollisionserkennnung is ja dabei die selbe wie im Buch, aber wie erkenne ich jetzt das der Ball von oben oder unten an den Schläger prallt????
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 19.08.2003, 19:12    Titel: Antworten mit Zitat

Code:


if collision with paddle then
   if y_velocity > 0 then
      hit on top
   else
      hit on bottom


_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Cyianor
Super JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 452

Medaillen: Keine

BeitragVerfasst am: 20.08.2003, 08:15    Titel: Antworten mit Zitat

was is y_velocity????
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hasenfuß
Senior JLI'ler


Alter: 37
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 20.08.2003, 08:37    Titel: Antworten mit Zitat

Das ist der Wert mit dem der Ball auf der y-achse bewegt wird,(nehm ich zumindest stark an) in der Spielschleife muss dann irgendwo sowas stehn: Ball.MoveY(y_velocity) wenn jetzt das ding negativ ist, bewegt sich der ball nach oben, wenns positiv ist nach unten. Je nachdem musste dann abprallen lassen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Cyianor
Super JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 452

Medaillen: Keine

BeitragVerfasst am: 20.08.2003, 08:51    Titel: Antworten mit Zitat

aso, jetzt hab ich des Verstanden

thx
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 20.08.2003, 09:03    Titel: Antworten mit Zitat

Velocity ist Englisch für Geschwindigkeit...

http://dict.leo.org/ <-- das ist eine der wichtigsten Seiten im Netz; sollte man Bookmarken. ;)
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Cyianor
Super JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 452

Medaillen: Keine

BeitragVerfasst am: 22.08.2003, 16:37    Titel: Antworten mit Zitat

Hehe, ja ist schon praktisch.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum