die zu einem objekt dazugehörigen objekte finden.
Übersicht

![]() |
rctunerBetreff: die zu einem objekt dazugehörigen objekte finden. |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo
mein problem ist nicht ganz leicht zu erklären, ich versuchs einfach mal: ich erstelle in meinem spiel autos mit types. so hat jedes auto dann zum Beispiel: Au\wheelFR, Au\wheelFL, Au\wheelBR... und karosserie: Au\veh. Nun möchte ich in die Autos einsteigen können. Wie bei GTA. Dazu hab ich dem Auto ein Pickwert gegeben und dann CameraPick [mycar=PickedEntity()] benutz um zu überprüfen in welches auto eingestiegen wird. Nun könnte ich einfach "if keydown(key) then moveentity mycar" machen. Das Problem sind aber die dazugehörigen Räder, die zum auto gehören. Ich müsste irgendwie herausfinden welche räder denn jetzt zu dem auto gehören und sie dann drehen. Die Räder sind dem Auto via Newton Physik Engine hinzugefügt. Wie könnte das funktionieren? |
||
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu [AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB] |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wohl oder übel musst du da mit einer Schleife rangehen.
Code: [AUSKLAPPEN] For a.TAuto = Each TAuto
If a\veh = mycar Then CarDrivenByPlayer.TAuto = a : Exit Next |
||
MrKeks.net |
![]() |
darth |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich machs immer mit nummern,
dass jedes teil des autos die nummer 1,2,3,... hat. dann kann man alle versch. teile durchgehn, iffrage nach selber nummer und gut is. |
||
Diese Signatur ist leer. |
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
irgendwie versteh ich das nicht ganz. Und hinzu kommt auch noch ein neues Problem: ich kann dem Physik Auto keinen Pick-Wert geben und somit auch kein CameraPick verwenden wie ich es eigendlich vor hatte. Damit wir uns auch richtig verstehen hier nochmal mein Problem auch auf meinen Code bezogen:
Ich hab mehrere Autos die auf meiner map rumfahren. Das Auto selbst "au\veh" und dazugehörige Objekte von der Physik Engine wie zum Beispiel: "au\tireBL". Wie könnte ich jetzt das "Einsteigen" programmieren? Dazu müsste ich irgendwie herausfinden welches Auto genau da gerade vor mir steht. (Es sind ja viele auf der map) Damit ich dann das Auto bewegen kann. Und wie gesagt gehört zu den Autos auch noch Räder. Ich müsste also dazu noch herausfinden welche Räder zu dem Auto gehören wo ich gerade eingestiegen bin, da ich beim Fahren auch die Räder meines Autos ansprechen muss um sie zu Drehen. Sollte irgendwie mit Types gehen, aber wie? Ich versteh nicht wie ich herausfinde welches Auto es ist und dann noch die Räder zu dem Auto finde. |
||
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu [AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB] |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
moved da im falschen Board | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
so einfach, dass es in den beginners corner kommt und keiner kann helfen? | ||
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu [AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB] |
Problemchen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
das Auto zu identifizieren sollte über eine Distanzberechnung gehen, da du ja irgendwo die Koordinaten abgreifen kannst. Oder mach' einen Pick und verbinde die pickbaren Entitys in deinem Type mit den Physikobjekten über eine Unique ID. Dann halte zu jedem Objekt eine weitere ID vor, die zusammengehörende Teile kennzeichnet. Damit identifizierst du die das komplette Auto bis runter zur einzelnen Schraube... Sollte keine große Sache sein, deswegen hat's Dreamora wohl verschoben ![]() Problemchen |
||
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
danke für die antwort.
aber wie genau soll ich denn überprüfen welche teile zusammen gehören und überhaupt erstmal abfragen welche ID die Teile haben? Hab noch nicht so viel erfahrungen mit Types. So erstelle ich die Autos: Au.Car=New Car Au\Auto=LoadMesh("data\models\cars\car1\cmro.3ds") Au\wheelBR=..... ......... und so ca. sieht die Type Liste aus: Type car Field tireBR Field wheelBR Field tireBL Field wheelBL Field tireFR Field wheelFR Field tireFL Field wheelFL Field omegaBL# Field omegaBR# End Type |
||
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu [AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB] |
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich habe jetzt versucht arrays für die types zu definieren um so nur das Auto und den Type mit dem Array zu bewegen, welches ich auch fahre.
Hier sollten ALLE Physik Autos upgedaten werden: For all=1 To 3 ; 3, weil 3 Autos erstellt wurden (Die Autos müssen alle mit dieser Funktin auf Grund der Physik Engine upgedated werden) PositionEntity au\wheelBL[all], phJointVehicleGetTireX(au\veh[all], au\tireBL[all]), phJointVehicleGetTirey(au\veh[all], au\tireBL[all]), phJointVehicleGetTirez(au\veh[all], au\tireBL[all]) RotateEntity au\wheelBL[all], phJointVehicleGetTirePitch(au\veh[all], au\tireBL[all]), phJointVhicleGetTireyaw(au\veh[all], au\tireBL[all]), phJointVehicleGetTireRoll(au\veh[all], au\tireBL[all]),1 next Und hier nur mein Auto: ID=1 ; Auf 1 nur zu Testzwecken gesetzt. Später soll die ID vom Auto abgefragt werden und dann unten nur das Auto mit der ID bewegt werden. If KeyDown(200) omegaBL# = phJointVehicleGetTireOmega(au\veh[ID], au\tireBL[ID]) omegaBR# = phJointVehicleGetTireOmega(au\veh[ID], au\tireBR[ID]) EndIF Und so erstelle ich dann in der Funktion ein Auto (insgesammt erstelle ich 3): AID=AID+1 au\veh[AID] = phJointVehicleCreate(0,1,0,bodycar) Doch komischer weise bekomme ich immer ein MAV. Wieso? Funktioniert das nicht mit den Arrays? |
||
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu [AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB] |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
vermutlich weill du net au.Auto = new Auto gemacht hast vorher | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
leider nein. in der funktion, in der ich die autos erstelle hab ich ein Au.Wagen=New Wagen drin. | ||
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu [AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB] |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
und die gibst du dann auch zurück bzw. weisst dem au auf das du da zugreifst auch eine existierende type variable zu?
(weil ausserhalb der funktion existiert das au der funktion nimmer) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group