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

Yoshi

Frischling

  • »Yoshi« ist der Autor dieses Themas

Beiträge: 61

Beruf: Schüler

  • Private Nachricht senden

1

07.04.2006, 18:51

Map eines 2D Spieles

Hi!

Ich würde gerne wissen wie Karten der von 2D Spielen normalerweise realisiert werden.
Ich habe ein 2dimensionales Array in dem zahlen vom typ short gespeichert werden
(jetzt zum testen nur 0 für nicht belegt und 1 für belegt).
Nur ist die performance in meiner version sehr schlecht. Ich hab immer nur 17 fps.

Ist mir auch klar das die performance schlecht ist weil ich das Feld
jedes mal durchlaufen muss und die einzelnen Felder rendern muss.
Aber wie kann ich das besser machen?

Yoshi

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

2

07.04.2006, 19:39

Wie groß ist das Feld denn / wie ist die Rasterung? Ein Array zu durchlaufen sollte eigentlich schnell gehen, wenn es nicht grad 10000*10000 groß ist oder sowas

Phili

unregistriert

3

07.04.2006, 20:01

Ich denk mal das Geschwindigkeitsprblem liegt an was anderem. Ist das Spiel komplett 3D? Wie Zeichnest du die Karte?

Yoshi

Frischling

  • »Yoshi« ist der Autor dieses Themas

Beiträge: 61

Beruf: Schüler

  • Private Nachricht senden

4

07.04.2006, 20:34

Das Spiel ist in 2D.
Die Karte ist 20 x 16 groß (64x64 pixel/feld)

Gezeichnet wird so:
Ich durlaufe die gesamte Schleife und bei jedem durchlauf wird ein Sprite (Die Klasse aus dem Buch) an seiner Position gerendert.

Yoshi

Anonymous

unregistriert

5

08.04.2006, 00:34

Zitat von »"Yoshi"«

20 x 16 groß (64x64 pixel/feld)


= Auflösung 1280*1024, das kann nicht mehr schnell sein da 2D hier an seine Grenzen stösst. (Ich gehe davon aus das du bei dem Tempo nur DirectDraw verwendest). Schneller wirds nur wenn du 3D bemühst und das ganze mit einer statischen Kamera zeigst (also etwas was aktuelle Karten auch aktiv beschleinigen können).

Ansonsten musst du wohl auf 800*600 zurückschalten. Der Weg über Array ist übrigens korrekt. Du kannst im normalen Fall die Leveldaten und zusätzliche Datenfelder erzeugen ohne dass das Tempo merkklich einbricht. Dein Tempoverlust ensteht rein beim Aufbau der Map in 1280*1024er Auflösung. Einen kleinen Tempogewinn könntest du erlangen wenn alle Pics in 16bit sind und im Vollbild laufen. dann könnten es vielleicht.....19fps werden.

Ein weiterer Vorteil von 3D ist noch das es dann zwar wie ein 2D aussieht und sich auch so spielt, du aber unabhängig von der Auflösung bist.

cu

Yoshi

Frischling

  • »Yoshi« ist der Autor dieses Themas

Beiträge: 61

Beruf: Schüler

  • Private Nachricht senden

6

08.04.2006, 08:24

Danke für die hilfreiche Antwort!
Dann werd ich jetzt mal ein bisschem mit 800x600 rumspielen und mir dann das Buch über 3D Spieleprogrammierung kaufen wenn die einfachen sachen so richtig sitzen.

Yoshi

Werbeanzeige