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

29.11.2010, 15:37

Welche 2D-Technik benutzen?

Hallo zusammen,

ich bin bzgl. der Spieleprogrammierung unerfahren. Um das zu ändern habe ich mir vorgenommen ein 'einfaches' 2D-Autorennen (Vogelperspektive) zu programmieren.
Ich werde hierfür Java benutzen um es später evtl. leichter auf Android portieren zu können (obwohl ich kein Java-Fan bin).

Die einzige 2D-Technik mit der ich schonmal gearbeitet habe sind Sprites.
So ein Auto soll im Spiel möglichst viele 'Freiheitsgrade' (bzgl. der Drehung) haben. Ich denke, dass Sprites daher hierfür nicht geeignet sind.

Ich hatte überlegt, das Bild neu zu berechnen aber das ist wahrscheinlihc Blödsinn - besonders wenn man das Programm später auf ein Handy portieren möchte.

Dann bleibt mir noch alle nicht statischen Objekte aus Grundstrukturen zusammen zu setzen. Ist das vernünftig und gibt es hierbei Standards die sich bewährt haben?

Gibt es andere Möglichkeiten ?

Ich habe nach dem Thema gesucht aber anscheinend fehlen mir die richtigen Stichworte um das Richtige einigermaßen schnell zu finden.

lg

(ihhh Schnee)

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

2

29.11.2010, 16:17

Heutzutage ist es üblich, die Sprites auf Quads, bestehend aus 2 Dreiecken, zu mappen. Diese kann man Hardwarebeschleunigt drehen bzw. wenn du schlaues batching willst die Eckpunkte (sind nur 4 im gegensatz zu allen Pixeln) per CPU drehen. Das ganze ist sehr performant und wird in jedem gängigen halbwegs aktuellen Framework so vollzogen.
Als Referenzbibliothek würde ich dir SFML empfehlen, da kannst du im Source stöbern, wie das funktioniert - in deinem Fall auch mit openGL. Für die Portierung auf Android wirst du nämlich auf Embedded GL treffen, und so wirds da auch gemacht ;)

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

3

29.11.2010, 19:09

So ein Auto soll im Spiel möglichst viele 'Freiheitsgrade' (bzgl. der Drehung) haben.
Erm, möglichst viele Freiheitsgrade bezüglich drehung in einem 2D autorennen in vogelperspektive? Meiner Meinung nach ergibt da so ziemlich genau ein einziger Freiheitsgrad einen Sinn ^^ Da wäre die Drehung per Sprite schon möglich, allerdings macht man es wie schon gesagt, indem man die textur auf ein quad mapt und dann nur das quad (also die vertices) dreht.

4

29.11.2010, 20:10

Zitat

Erm, möglichst viele Freiheitsgrade bezüglich drehung in einem 2D autorennen in vogelperspektive? Meiner Meinung nach ergibt da so ziemlich genau ein einziger Freiheitsgrad einen Sinn


Ich sollte erst denken und dann schreiben ;).

Erstmal vielen Dank. Das muss ich mir mal genauer anschauen. Suche noch eine gute Beschreibung dieser Technik.

SFML läßt sich anscheinend leider noch nicht in Java einbinden. ... dabei scheint es so schön zu sein wenn man ein bissel stöbert.

Es wird wohl noch ein paar Tage dauern bis ich heraus habe was ich genau brauche bzw. möchte und wie das ein oder andere funktioniert bevor ich die erste Codezeile tippe.

Dann komme ich zurück und misshandel einen anderen Begriff - Freiheitsgrade [x].

lg

5

30.11.2010, 19:10

Für den Computer könntest du auch überlegen mit AWT zu arbeiten. Rotation wird da unter Umständen ein wenig unperformant, aber der Vorteil ist, dass der spätere Benutzer nur die jre und kein opengl braucht. Außerdem läuft das ganze das auch ohne Probleme als Applet. Für die Portierung müsstest du es dann natürlich stärker umschreiben, da wäre eine Kapselung von vornherein gut.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

6

30.11.2010, 20:15

Java2D ist auch recht komfortabel zu nutzen und bietet neben einfachen Sprites auch noch die Möglichkeit Shapes etc. zu zeichnen. Mit einer 1.6 VM und ein paar Einschränkungen ist das in den meisten Fällen auch recht performant, da dann DirectX oder OpenGL als Backend genutzt wird.

Für Android wirst du wohl definitiv eine extra Version brauchen, da dort scheinbar eine eigene Art von 2D Grafiksystem verwendet wird, siehe http://developer.android.com/guide/topic…d-graphics.html

Werbeanzeige