2D Perspektive

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Goodjee

Betreff: 2D Perspektive

BeitragMi, März 22, 2006 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Jaja, ich habe neulich mal wieder Supernintendo gespielt, daei bin ich auf das Spiel SmashTennis gestoßen und war fasziniert.
Jetzt fragge ich mich:
wie mache ich so eine Perspektive mit "D, wie kann ich allpositionen umrechnen usw.....
Hier mal ein Screenshot:
user posted image
user posted image[/img]
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Klip

BeitragMi, März 22, 2006 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Entweder, du berechnest die Tiefe durch die Y-Koordinate (je höher die Grafik ist, desto kleiner skalierst du sie), oder aber du simulierst eine Z-Achse (so würde ich es bei einem third-person-Rennspiel in 2D, z.B. HangOn, machen).

Ich persönlich würde es über die erste Möglichkeit regeln.

Geeecko

BeitragMi, März 22, 2006 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
über sowas habe ich noch gar nicht nachgedacht.
Aber wenn du einen 3D Modeller hast,
kannst du die moddele in 3d machen. es gibt ein tut wo du 3d moddele 2d machen kannst. suche ihn mal, wenn ich ihn finde edite ich. kannst ja mal googlen

dimaster

BeitragMi, März 22, 2006 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
klar kannst du das 3d machen aber du brauchst mehr zeit um die dinger zu modellieren, als dass du brauchen würdest wenn du sie zeichnest...

Iguan

BeitragMi, März 22, 2006 20:53
Antworten mit Zitat
Benutzer-Profile anzeigen
@Klip: das mit der "Y-koordinate als Z-Koordinate" geht wohl nicht so gut...
wenn nähmlich der Spieler den Ball in einem hohen Bogen zum Gegner spielt, dann nimmt die Y-Koordinate stark zu, obwohl der Ball noch nicht weit (in Z-Richtung) geflogen ist. Eigentlich müsste dann der Ball auch grösser werden, da er ja näher beim Betrachter ist(Kamera aus Vogelperspektive). Ich hoffe ihr versteht was ich meine... Rolling Eyes
 

ke^kx

BeitragMi, März 22, 2006 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke das die Tiefe auf diesen Bildern hauptsächlich durch die Schatten gefakt sind, denn mir scheint die Figur hinten genausogroß wie die vorne. Mit dem Ball muss man dass dann ausprobieren, ob es überhaupt Sinn macht dessen Größe aufwendig zu verändern. So sehr fällt das schon nicht auf, denke ich.

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM
 

Dreamora

BeitragMi, März 22, 2006 21:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Denke auch nicht, das bei der minimalen Tiefe eine Skalierung nötig ist. Was aber notwendig ist, ist das man die objekte mit hohem Y zuerst zeichnet, weil sonst die Verdeckungen nicht stimmen.

Allerdings brauchts die Umrechnung für Y zu pseudo Z trotzdem ... weil man sonst den Ball nicht richtig berechnen kann ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Goodjee

BeitragDo, März 23, 2006 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
jaja, und das ist ja meine frage: wie rechnet man sowas am geschicktesten um?
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, März 23, 2006 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
zB X und Z -Achse ist die Spielfeldposition. Der Schatten des Balles liefert genau die X/Z -Achse wieder. Die Höhe des Balles ist der Abstand vom Ballschatten und des Balles selber. Wenn Spielball eine Höhe im Bereich von zB Y>20 And Y<40 (in Pixel) dann, kann dieser vom Schläger getroffen werden...

Goodjee

BeitragDo, März 23, 2006 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
also müsste ich den ball an der x position des schattens malen und die y position wäre die zposition des schattens plus die hähe des balls???
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

x-pressive

BeitragDi, Apr 04, 2006 7:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Das man die Figuren im "Hintergrund" kleiner skaliert, ist gar nicht notwendig, wird jedenfalls bei den meisten Spielen in dieser Perspektive gar nicht gemacht. Ist sicher ein nettes "Schmankerl", aber nicht notwendig bei kleinen Distanzen.

Für alle Objekte, die sich auf der selben horizontalen Ebene bewegen (in dem Fall die Figuren auf dem Spielfeld), reicht eigentlich schon ein Vergleich der Y-Position. Je grösser Y, desto näher steht die Figur dem Betrachter. Figuren, mit einer niedrigeren Y-Koordinate verschwinden also hinter Figuren mit einer höheren (werden also zuerst gezeichnet).

Erst, wenn ein Objekt diese flache Ebene verlässt (in dem Fall also der Ball) muss man die "virtuelle" Höhe auch mit einbeziehen. Ist aber eigentlich auch ganz einfach: die virtuelle Höhenposition des Balls speicherst du in einer Variable. Ist der Ball "höher" als die Körpergrösse deiner Spielfiguren, zeichnest du ihn über den Figuren, egal welche Y-Koordinate der Ball gerade hat, denn er befindet sich dann ja ÜBER den Figuren.

Befindet der Ball sich unter der Kopflinie der Figuren, zeichnest du ihn hinter einer Figur, wenn die Y-Position des Balls kleiner ist, als die jeweilige Figur. Wenn ich keinen Denkfehler habe, müsste das doch eigentlich schon genügen.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDi, Apr 04, 2006 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Zusätzlich mit ql:HandleImage kann man den Bezugspunkt eines Bildes auf die Füsse der Spieler verschieben. Dadurch fällt eine Komplizierte Umrechnung mit dem Ball (vor oder hinter einem Spieler). Da man da wieder nur die Schattenposition in den 'Z-Order' packen kann. Mit dem zeichnen des Ballschattens wird dann nachträglich auch der Ball eingezeichnet...

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group