| Autor |
Beitrag |
[emptyBox]
![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
Beiträge: 16
WIN XP Prof
Delphi 7 Pers.
|
Verfasst: Do 25.05.06 20:17
hallo,
kann man Sprites irgendwie in die Tiefenberechnung mit einbeziehen und ihnen Z-Werte zuweisen? So dass sie "hinter" Objekten nicht zu sehen sind und davor wohl?
Oder muss man zwei Tri-Angeln nehmen?
Was ist überhaupt der Unterschied? ^^
(--> Außer dass die leichter hand zu haben sind)
|
|
Phobeus
      
Beiträge: 1280
Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
|
Verfasst: Fr 26.05.06 09:12
hm? 2D? Verpaß jedem Objekt einfach einen Z-Variable und sortiere diese danach. Ansonsten erkläre bitte ein wenig genauer das Umfeld deiner Anwendung.
_________________ "Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
|
|
[emptyBox] 
![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![[emptyBox] hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
Beiträge: 16
WIN XP Prof
Delphi 7 Pers.
|
Verfasst: Fr 26.05.06 13:52
hallo,
wir haben vor ein Spiel vergleichbar mit GTA2 zu proggen.
Ich bin dabei erst mal so testprogramme zu schreiben, Level laden, und so.
Wenn jetzt das Auto unter ein Dach fährt soll es nicht zu sehen sein, jedoch wenn es unter freiem Himmel fährt dann soll es zu sehen sein, alles pixelgenau versteht sich.
das Level soll aus Vertices bestehen.
Wie kann man denn Sprites Z-Werte zuweisen?
|
|
Phobeus
      
Beiträge: 1280
Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
|
Verfasst: Fr 26.05.06 14:32
Das Grundprinzip ist mir schon klar. Nur kenne ich GTA2 nicht selbst, bin jedoch der Meinung, dass dies 2D ist und höre nun, dass sich der Level aus Polygonen zusammensetzen soll. Was letztendlich als als wichtige Information fehlt ist schlichtweg, welche API Ihr überhaupt für Euer Projekt verwendet. Sollte es reines 2D sein, so ist eine Implementierung sehr einfach, hängt aber davon ab, wie die Objekte bei Euch gezeichnet werden. Grundsätzlich müßte Ihr bei der internen Verwaltung Eurer Objekte nur eine Z-Variable hinzufügen - entweder relative Werte oder zu interpretieren als Höhe. Bevor das Level gestartet wird, fangt Ihr an die Objekte entsprechend dieser Variable zu sortieren. Je niedriger Z ist, desto eher wird es gezeichnet, je höher desto später. Das einzige Problem was hier auftritt ist dann natürlich, was gemacht wird, wenn beide die gleiche Höhe haben, ggf. wird es auch sinnvoll zu sein, ob Überhaupt eine Sichtbarkeit vorliegt. Liegt das Auto unter einer Brücke (mit höheren Z-Wert), so muss es gar nicht erst gezeichnet werden, sondern erst dann, wenn es an den Ecken liegt und ggf. zum Teil gesehen wird.
_________________ "Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
|
|
Stoney
      
Beiträge: 122
Mac OS X 10.6 "Snow Leopard", Ubuntu Linux 9.04, Mandriva 2010, Win 7, Win Vista, Win XP
Object Pascal (Turbo Delphi, FPC 2.2.4, Lazarus), C++ (Code::Blocks, XCode), Java (Eclipse)
|
Verfasst: Fr 26.05.06 15:19
Phobeus hat folgendes geschrieben: | | Nur kenne ich GTA2 nicht selbst, bin jedoch der Meinung, dass dies 2D ist und höre nun, dass sich der Level aus Polygonen zusammensetzen soll. |
GTA2 ist nicht ganz 2D. Die Objekte wie Autos, Personen etc. sind reine 2D-Objekte, aber Häuser sind plumpe 3D-Quadrate, die mit Texturen überzogen sind.
Von der Top-Down-Perspektive entsteht beim Bewegen der Spielfigur der Eindruck, als würden die Häuser "vorbeiziehen".
|
|
Phobeus
      
Beiträge: 1280
Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
|
Verfasst: Fr 26.05.06 16:24
Ah. Okay, danke für die gute Beschreibung. Aber damit wird das Problem ja noch einfacher. Die Autos sind dann ja einfache Decals also ein Quadrat mit einer Textur drüber gezogen. Dieses wiederrum könnte problemfrei hardwareseitig über den Tiefenbuffer geschickt werden, so dass man sich gar nicht mehr darum kümmern muss. Insbesondere solche Spielobjekte sind ja selten Transparent. Sollten sie es dennoch mal sein, würde bei einer fixen Kamera von Oben (IMAO schwenkt sie ja nicht um mehre Achsen?) so müßte man ein Z-Sorting vornehmen wie man es auch bei einer reinen 2D-Lösung tun würde.
Insbesondere heutzutage würde ich allerdings zumindest beim Spielerauto dazu tendieren dies auch in 3D zu machen - ist zumindest meist der Blickfang des Spielers schlechthin 
_________________ "Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
|
|
|