Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 00:01

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 31 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: 2D Ballerspiel
BeitragVerfasst: Di Nov 23, 2004 20:47 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
Hallo DGL'er,

unter http://www.seban.de/download/sf.zip (1.7MB) habe ich ein einfaches 2D Ballerspiel Spiel erstellt, welches OpenGL und FMOD verwendet. Zurzeit sind nur grundlegende Sachen umgesetzt und nun möchte ich wissen, ob es bei euch läuft. Da die Kollisions - Abfrage unoptimiert umgesetzt wurden, sind die Frameraten recht gering. Ohne Kollision geht es auf über 1000 FPS, mit Kollision auf meinem System so ca. 280-300 FPS.

Grafiken und Musik sind wie immer bei mir nicht aus eigener Hand und werden in der endgültigen Fassung durch andere ausgetauscht. Die Explosion habe ich mir aus dem 2D - Tutorial von SoS geborgt. Mit den Cursortasten wird das Raumschiff gesteuert und mit der Ctrl - Taste geschossen. Es gibt nur einen Level zur Zeit, welcher endlos ist, zudem hat der Spieler unendlich viele Leben.

An dieser Stelle mein Dank an Lossy eX und an SoS für sein 2D - Tutorial, welches gerade am Anfang eine sehr gute Hilfe ist.

Gruß
KidPaddle

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 21:17 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
und wie aktiviert man die Kollisionsabfrage?

[OT] Warum wird in jedem Spiel mein schöner 5.1 Sound zurückgesetzt, während ich es spiele? *grml* ;) [/OT]

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 21:23 
Offline
DGL Member

Registriert: Do Nov 20, 2003 19:52
Beiträge: 48
Wohnort: Tillingen bei Chemnitz
Habs mal ausprobiert, läuft ganz gut soweit, allerdings hab ich bloß ~100 Frames bei ~120 Objekten und manchmal ruckelt es ganz kurz. Es sieht so aus als updatest du die Caption in jedem Frame, das kostet viel Performance.
Nen Bug hab ich auch gefunden: wenn der Spieler abgeschossen worde und gleich danach nochmal getroffen wird, wird das Schiff des Spielers unsichtbar und er kann nicht mehr getroffen werden.

Edit: Ich denke mal mit Kollisionsabfrage ist Schuss<>Schiff gemeint, das funktioniert doch.

_________________
...die Idee ist gut, doch die Welt noch nicht bereit...


Zuletzt geändert von dopeFish am Di Nov 23, 2004 21:26, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 21:24 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Joa:

1. Keine Kollisionsabfrage da?!
2. Kein TimeBasedMovement oder?
Läuft bei mir mit 60 FPS und alles ziemlich lahm.
Naja....

Hoffe das wird noch :D

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 21:28 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
@Kollisionsabfrage
Die Kollisionsabfrage ist immer aktiviert oder kannst Du nicht die Vögel abschiessen bzw. gehst Du nicht kaputt, wenn Du getroffen wirst?

@Sound
Keine Ahnung, ich rufe die Init - Prozedure von FMOD auf und das wars. Mehr mache ich nicht.


@dopeFish
Ja, den Fehler habe ich gerade auch gehabt. Man kann immer noch die Gegner abschießen :lol:. Was für eine GraKa und PC hast Du?

Gruß
KidPaddle

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 21:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
KidPaddle hat geschrieben:
@Kollisionsabfrage
Die Kollisionsabfrage ist immer aktiviert oder kannst Du nicht die Vögel abschiessen bzw. gehst Du nicht kaputt, wenn Du getroffen wirst?



Ne, kann niemanden abschiessen und niemand mich.

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 21:30 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
KidPaddle hat geschrieben:
kannst Du nicht die Vögel abschiessen bzw. gehst Du nicht kaputt, wenn Du getroffen wirst?


nein :-/

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 21:32 
Offline
DGL Member

Registriert: Do Nov 20, 2003 19:52
Beiträge: 48
Wohnort: Tillingen bei Chemnitz
Toller MegaCheat ;)
Hm...also ich kann alles abschießen, auch die Schüsse der Gegner und kann auch getroffen werden.
Hab nen Athlon 1800+ mit ner Radeon8500, langsam läufts bei mir auch, aber ich denk mal das soll so sein, sieht schon nach Timebased Movement aus, läuft bei mir nämlich immer gleich langsam.

_________________
...die Idee ist gut, doch die Welt noch nicht bereit...


Zuletzt geändert von dopeFish am Di Nov 23, 2004 21:36, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 21:33 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 26, 2002 22:12
Beiträge: 259
Wohnort: Dresden
Bei mir funktioniert die Kollisionsabfrage auch nicht. Weiterhin solltest du dein Timebased Movement prüfen. Bei mir läuft das alles mordsmäßig langsam (ich habe eine recht alte Grafikkarte). Oder soll das so sein?
Zum Spielgefühl selbst kann ich aufgrund der Probleme leider noch nicht viel sagen.

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 21:34 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
Seltsam, woran kann das liegen, das dopeFish und ich Kollisionen haben und bei euch diese nicht funktioniert. Die Raumschiffe sind doch korrekt ausgerichtet, oder?

Gruß
KidPaddle

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 21:40 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Joa schon.

Und normaler weiße sollte jeder PC die Berechnung gleich durchführen?! ;)
Aber du berechnest das schon in jedem Frame oder?
Und dreh mal bitte die geschwindigkeit hoch :D

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 21:40 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
ja, das sieht normal aus:


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 21:40 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 26, 2002 22:12
Beiträge: 259
Wohnort: Dresden
Wie realisierst du denn die Kollisionsabfrage?

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 24, 2004 12:04 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
@Time Based Movement
Ist in der Form implementiert, dass jedes Sprite einen TimeStamp der letzten Bewegung speichert und mit dem aktuellen TimeStamp vergleicht. Weicht diese um eine bestimmte Zeit - Differenz, z. B. 25ms, ab wird der Sprite bewegt. Sind seit dem letzten Aufruf 100ms vergangen, wird trotzdem nur eine Einheit weiterbewegt, damit keine Sprünge auftauchen, die dann bei der Kollision Schwierigkeiten machen.

Ich habe mal künstlich einen sleep(50) eingesetzt und siehe da, nur 40FPS, die Bewegungen sind nicht abgehackt und die Kollision funktionierte ohne Schwierigkeiten. Es muss noch einen anderen Grund dafür geben. Ich habe jedoch einen PC gefunden, bei dem der Fehler auftritt, so daß ich dort weiter testen kann.

@Kollision
Geschieht in 2 Schritten:
1. Die umschliessenden Rechtecke werden geprüft. Überlappen diese sich nicht, dann keine weitere Prüfung notwending
2. Pixel für Pixel wird der überlappende Bereich geprüft, ob der Alpha - Wert bei beiden ungleich 255 ist. Falls ja, dann übeschneiden sich die beiden Pixel.

Ich werde eine Debugversion erstellen, die die Rechteck um den Sprites und eventuelle Kollsionen anzeigt.

Gruß
KidPaddle

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 08:41 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
Ich habe einen Fehler bezüglich der Kollision herausgefunden. In einer Sicherheitsabfrage für den pixelgenaue Kollision, habe ich geprüft, ob der gesuchte Pixel ausserhalb des Speicherbereiches der Daten, ermittelt mit TGL2DBitmap.TextureSize, liegt. Wenn ja, habe ich die Prüfung abgebrochen. Bei dem Testrechner war diese Größe immer 0, so daß keine Kollision durchgeführt wurde. Nachdem ich die Prüfung ausgeklammert habe, ging die Kollision auch auf dem Testrechner.

Neue Version folgt bald.

Gruß
KidPaddle

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 31 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 16 Queries | GZIP : On ]