Archiv verlassen und diese Seite im Standarddesign anzeigen : Rennspiel (Strecke im Kreis) Position Abfragen (Brauche Hilfe)
Goblindieb
21.08.2008, 16:01
Hi Leute ich bin am Makern, und mach gerade ein Rennspiel, mit bis zu 8 Spielern, die 5 Runden im Kreis fahren.
http://npshare.de/files/37/9414/Kreis.JPG
Meine Frage ist folgende :
Wie frag ich am besten ab wer 1., 2., 3. usw. und so fort geworden ist.
Hier mal die Technik mit der ich es versucht habe, aber das funzt nicht 100%
(Den Schalter FairPlay nicht beachten)
http://npshare.de/files/37/1328/Technik%20Teil%201.JPG
http://npshare.de/files/37/9604/Technik%20Teil%202.JPG
http://npshare.de/files/37/5307/Kreis%20Y-Achse.JPG
Mir ist auch bewusst, wenn ich die Y-Achse im Kreis abfrage, das ich 2x an die zu abfragende Y-Achse vorbeifahre.
Ich hoffe ihr könnt mir helfen, auch wenn's nur ansatzweise sein sollte ^^
Mit freundlichen grüßen
Goblindieb
Goblindieb
22.08.2008, 05:50
Hmm...., kann mir das I-Wie keiner erklären oder muß ich es noch ausführlicher erklären was für ein Problem ich genau habe ?
Mit freundlichen Grüßen
Goblindieb ;)
Fir3bird
22.08.2008, 11:08
Rennspiele sind verdammt schwer auf dem Maker. Wunder dich bitte nicht, dass da so schnell keiner antwortet. Aber was mir auffällt: Eine Ziellinie ist eine Linie, und kein Punkt. Die Platzierung: Jedes mal, wenn ein Fahrzeug durchfährt, erhöht sich eine Variable "nächste Platzierung", welche dann dem Fahrzeug als eigene Variable zugewiesen wird.
\/ \/ \/ \/ \/
Variable [Player 1 Platz] = Variable [nächste Platzierung]
EDIT:
OK, Rennspiele sind nicht unbedingt schwer wenn man sie einfach als 4-Wege makert.
Blackadder
22.08.2008, 12:29
teil dir die strecke in zonen ein, z.b.
http://npshare.de/files/37/9102/kurs.png
hier haben wir 5 streckenabschnitte.
gelistet nach der priorität:
grün
orange
hellblau
gelb
rot
bei gelb und orange fragst du die X-Koordinaten ab, bei den anderen die Y-koordinaten.
jeder fahrer hat eine variable, die sich merkt, in welcher runde er fährt.
dann musst du die fahrer untereinander vergleichen.
zunächst nach der rundenzahl des fahrers. jemand in runde 2 ist weiter als jemand in runde 1.
danach nach zone. ein fahrer in der grünen zone ist weiter als einer in der orangenen.
danach nach der X- bzw. Y-koordinate. zwei fahrer sind in der gleichen runde und in der gleichen zone, z.b. in der gelben. derjenige, dessen X-koordinate höher ist, liegt vorn (das gilt für die gelbe zone, in der orangenen ist es eben umgekehrt, da man von rechts nach links fährt. dann ist der, dessen X wert kleiner ist vorn).
ach ja, wenn jemand die ziellinie überfährt (aus der grünen zone in die rote), steigt seine rundenzahl um 1. wenn er rückwärts durch die linie fährt, wird ihm eine runde abgezogen (sonst könnte man herrlich bescheissen). wenn er sich dabei erst in der ersten runde (also die rundenanzahl-variable gleich 0 ist), wird diese auf 0 gesetzt und nicht um eins reduziert.
hoffe du verstehst.
Fir3bird
22.08.2008, 13:44
wenn er rückwärts durch die linie fährt, wird ihm eine runde abgezogen (sonst könnte man herrlich bescheissen). wenn er sich dabei erst in der ersten runde (also die rundenanzahl-variable gleich 0 ist), wird diese auf 0 gesetzt und nicht um eins reduziert.
Einfacher wäre es, einen oder besser zwei Checkpoints einzubauen.
makenshi
22.08.2008, 21:08
Du legst einfach eine Variable pro Fahrer an die um eins inkrementiert wird wenn der Spieler die Ziellinie durchfährt. Das durchfahren der Ziellinie kannst du problemlos per Koordinateabfrage feststellen. Oder per TerrainID abfrage. Das ginge alternativ natürlich auch.
Wenn die Variable über der nötigen Rundenzahl ist -> Gewinner. Den Gewinner trägst du in eine Liste aus X Variablen ein. Wobei X die Anzahl der Teilnehmer des Rennens ist.
Goblindieb
23.08.2008, 11:48
Danke für eure Hilfe Leute werde die Techniken probieren dir ihr mir vorgeschlagen habt ^^
Dankeschön an euch ALLE wenn ich noch Probleme haben sollte werde ich mich wieder hier melden ;)
Mit freundlichen grüßen :)
Goblindieb
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.