waypointeditor
Übersicht

![]() |
rctunerBetreff: waypointeditor |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich schreibe gerade ein waypointenditor und habe eine frage.
Ich positioniere ein cube auf den koordinaten des waypoints. Nun hab ich zb 20 cubes. wie kann ich jetzt zum ersten cube zurückkehren mit den types? So dass ich dann mein fahrzeug vom ersten zum zweiten fahren lassen kann. Irgendwie muss ich jeden cube eine ID zuweisen und dann immer einmal hochzählen mit 1 wenn das fahrzeug einen cube erreicht hat. Aber wie mach ich das? Code: [AUSKLAPPEN] waypoint.auto = New auto
waypoint\auto = CopyEntity(cube) point_num=point_num+1 PositionEntity cube,PickedX(),PickedY(),PickedZ() |
||
[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] |
![]() |
PSY |
![]() Antworten mit Zitat ![]() |
---|---|---|
z.b. so:
Code: [AUSKLAPPEN] ;waypoint-type erstellen Type waypoint Field x,y,z Field blubb End type ;strecke erstellen (array aus types) Dim strecke.waypoint(20) ;kram zuweisen strecke(1) = New waypoint strecke(1)\x = 100 strecke(1)\y = 100 strecke(1)\z = 100 strecke(1)\blubb = CopyEntity(cube) oder durch alle types loopen und den jeweiligen wegpunkt bestimmen |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
First --> zum ersten Eintrag wechseln
After --> zum nächsten Eintrag wechseln |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und wenn Du nicht sicher bist dass alle Cubes in der richtigen Reihenfolge angelegt wurden:
Code: [AUSKLAPPEN] type test
field ID .... end type und dann so: Code: [AUSKLAPPEN] for t.test = each test
if t\ID = ... then .... next Damit können auch unsortierte Typefelder benutzt werden, vorausgesetzt Du hast dich im Editor darum gekümmert dass das ID-Feld die Reihenfolge des tatsächlichen Verlaufes enthält. Von der ersten vorgeschlagenen Methode rate ich dir übrigens ab, da Du mit der Dimensionierung eines Arrays einen wesentlichen Vorteil der Types verspielst - die beliebige Anzahl. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
PSY |
![]() Antworten mit Zitat ![]() |
---|---|---|
BladeRunner hat Folgendes geschrieben: Von der ersten vorgeschlagenen Methode rate ich dir übrigens ab, da Du mit der Dimensionierung eines Arrays einen wesentlichen Vorteil der Types verspielst - die beliebige Anzahl. Wenn die Anzahl unbekannt ist, hast Du recht. Wenn er aber weiss, wieviele Types er brauchen wird, bzw. eine "überschaubare" Obergrenze existiert, ist es sicherlich die schnellste / einfachste Methode. Man kann direkt auf jedes Type zugreifen, ausserdem braucht man nicht umständlich durch alle Types zu loopen (--> Zeitaufwand). Ideal für Tilemaps und solchen Kram übrigens... l8er, psy |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nur das du auf einer Tilemap massiv viel Zeit verschwenden würdest, wenn du wirklich ein Waypoint System einbinden würdest, da dort alle Daten mit einer einfach Bitmap abgedeckt werden können bzw. mit einem Int Array
Wegpunkte werden in 3D benötigt, wo es sonst sehr rechenintensiv wird um AI Pfade berechnen zu lassen, weil man nicht mehr einfach so Daten hat. (Aussenlevel sind dabei noch um einiges eher möglich als multi-ebenen Indoor) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei mir funktioniert das irgendwie nicht.
Code: [AUSKLAPPEN] For waypoint.auto=First auto
PositionEntity way_piv,EntityX(waypoint\auto),EntityY(waypoint\auto),EntityZ(waypoint\auto) EndIf Next Im Debugger wird die erste Zeile markiert und die Meldung erscheint:"expecting TO" |
||
[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 ![]() |
---|---|---|
okay ich habe jetzt folgenden code:
Code: [AUSKLAPPEN] If MouseHit(1)
mx=MouseX() my=MouseY() entity=CameraPick(camera,mx,my) waypoint.auto = New auto waypoint\auto = CopyEntity(cube) ;EntityPickMode waypoint\auto,3 point_num=point_num+1 PositionEntity waypoint\auto,PickedX(),PickedY(),PickedZ() waypoint\x=EntityX(waypoint\auto);PickedX() waypoint\y=EntityY(waypoint\auto);PickedY() waypoint\z=EntityZ(waypoint\auto);PickedZ() EndIf UND Code: [AUSKLAPPEN] If KeyHit(57)
car=CreateCube() ScaleEntity car,10,10,10 EndIf If car<>0 PointEntity car,way_piv MoveEntity car,0,0,10 waypoint.auto = First auto If KeyHit(2) then waypoint = After waypoint If KeyHit(3) Then waypoint = Before waypoint PositionEntity way_piv,waypoint\x,waypoint\y+20,waypoint\z EndIf Funktioniert aber leider nicht wie es sollte. Das car fliegt zum ersten punkt. Wenn ich dann Key(2) drücke sollte eigendlich zum type danach gewechselt werden und dementsprechend auch eine neue Position gegeben werden. Das Car aber scheint sich dann kurz komisch zu drehen, bleibt aber an der stelle stehen. wo ist der fehler? |
||
[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] |
![]() |
PSY |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dreamora hat Folgendes geschrieben: Nur das du auf einer Tilemap massiv viel Zeit verschwenden würdest, wenn du wirklich ein Waypoint System einbinden würdest, da dort alle Daten mit einer einfach Bitmap abgedeckt werden können bzw. mit einem Int Array
Wegpunkte werden in 3D benötigt, wo es sonst sehr rechenintensiv wird um AI Pfade berechnen zu lassen, weil man nicht mehr einfach so Daten hat. (Aussenlevel sind dabei noch um einiges eher möglich als multi-ebenen Indoor) Da hast Du mich falsch verstanden ![]() Ich will Waypoints nicht mit Tilemaps in Zusammenhang bringen. Ich meinte, ein Typearray ist bei tilemapbasierenden Games sehr nützlich, wo die Tiles bestimmte Eigenschaften haben, auf die man mit diesem System sehr viel schneller und effizienter zugreifen kann. Nix für ungut ![]() (edit) Rechtschreibfehler korrigiert ![]() |
||
![]() |
PSY |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm,
deine karre bekommt durch drücken von 2 einen neuen waypoint zugewiesen, aber beim nächsten schleifendurchlauf springt das programm wieder auf den ersten eintrag und lässt die karre wieder auf den ersten waypoint fliegen... oder irre ich mich? (edit) argh doppelpost, sorry ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group