3 registered members (Ayumi, Akow, AndrewAMD),
1,505
guests, and 9
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Pathwalk im SideScroller
#185529
02/25/08 11:50
02/25/08 11:50
|
Joined: Jan 2006
Posts: 168 Germany, Hannover
DexLoomer
OP
Member
|
OP
Member
Joined: Jan 2006
Posts: 168
Germany, Hannover
|
Hi Leute, ich habe ein Problem mit meinem Side-Scroller! Ich will, dass ein generischer Hubschrauber, sich in einem Tunnelsystem entlang eines Pfades bewegt. Das klappt mit meiner Pathwalk-Funktion auch ganz gut auf der x-Achse, leider nicht entlang der Z-Achse (Y-Achse geht zwar, brauch ich aber nicht!). Die Funktion stammt ursprünglich von einem normalen Pathwalk-Script, bei dem sich der Gegner entlang der X und Y-Achsen bewegt. Ich habe schon sehr viel ausprobiert um den Heli auch zu höher und tiefer gesetzten Knoten zu bewegen, aber ohne Erfolg. Kann mir jemand sagen, wie ich dieses Problem lösen kann? Code:
function pathwalk() { // WED-Pfad suchen und Move-Routine ablaufen my.pnode = path_scan(me,my.x,my.pan,vector(360,180,200)); // find first waypoint if (my.pnode == 0) { beep();return; } // no path found path_getnode(my,my.startNode,my.xNode,null); while (my.pathwalkflag > 0) { my.enemy_distance = vec_dist (my.x, player.x); // Ermittle Distanz zwischen Enemy und Player if (my.enemy_distance < 300) // Ist der Spiele zu nahe, mach weiter mit normaler Steuerung! Beispiel: 300!!!!!!! { my.pathwalkflag = 0; } // find distance my.nodeDist = vec_dist(my.xNode,my.x); // near target? Find next waypoint of the path if(my.nodeDist < 50) { path_getnode(my,my.pnode,my.xNode,path_skills); //Stand Skill abfragen und warten if (path_skills[0] != 0) { zaehler_warten = path_skills[0]; // rumstehen je nach Skillwert while (zaehler_warten > 0) { my.enemy_distance = vec_dist (my.x, player.x); // Ermittle Distanz zwischen Enemy und Player if (my.enemy_distance < 300) // Ist der Spiele zu nahe, mach weiter mit normaler Steuerung! Beispiel: 300!!!!!!! { my.pathwalkflag = 0; } //PLATZHALTER zaehler_warten -= 0.01; wait (1); } } my.pnode = path_nextnode(my,my.pnode,1); path_getnode(my,my.pnode,my.xNode,path_skills); } vec_set(my.angPan,nullvector); my.panFlag = 0; my.angPan = 0; vec_diff(my.angPDiff,my.xNode,my.x); vec_to_angle(my.angPan,my.angPDiff); my.angDist = ang(my.pan - my.angPan); if(max(0,int(my.angDist)) > 0) { my.panFlag = 1; my.angPan = (my.angDist * -0.10) * time_step; } if(min(int(my.angDist),0) < 0) { my.panFlag = 1; my.angPan = (my.angDist * -0.10) * time_step; } if(my.panFlag == 1) { c_rotate(me,vector(my.angPan,0,0),ignore_sprites); } my.xSpeed = my.moveSpeed * time_step; my.ySpeed = 0; // gravity(); //Place the Enemy on Ground!
if ((normal.x != 0) || (normal.y != 0)) { vec_set(my.normal_pan ,nullvector); my.normal_pan = -my.pan; vec_rotate(normal,my.normal_pan); my.normal_tilt = -asin(normal.x); my.normal_roll = -asin(normal.y); } else { my.normal_tilt = 0; my.normal_roll = 0; } // Bewegungswerte umsetzen my.heli_move_x = my.xSpeed; my.heli_move_y = my.ySpeed; my.heli_move_z = my.zSpeed; heli_bewegunggumsatz(); wait(1); } chopter_steuerung(); // Starte normale Steuerung! Position, Neigung, Bewegung usw. umstezen! }
A8-Com-v 8.47.1
|
|
|
Re: Pathwalk im SideScroller
[Re: DexLoomer]
#185530
02/27/08 15:28
02/27/08 15:28
|
Joined: Jan 2006
Posts: 168 Germany, Hannover
DexLoomer
OP
Member
|
OP
Member
Joined: Jan 2006
Posts: 168
Germany, Hannover
|
Hat Niemand einen Tip, wie ich das Script umändern kann? So das sich der Helikopter auf einen, in WED gesetzten Pfad bewegt, der horizontal aufgezogen ist (an der Wand sozusagen..) und nicht vertikal (auf dem Boden liegend..) Dex
A8-Com-v 8.47.1
|
|
|
Re: Pathwalk im SideScroller
[Re: Rasterbar]
#185532
02/27/08 20:20
02/27/08 20:20
|
Joined: Jan 2006
Posts: 168 Germany, Hannover
DexLoomer
OP
Member
|
OP
Member
Joined: Jan 2006
Posts: 168
Germany, Hannover
|
Hi Rasterbar, ich möchte einen Side-Scroller bauen, bei dem ein Helikopter (Gegner) in einem Tunnelsystem sich entlang eines Pfades bewegt, den ich im WED erstellt habe. Solange, bis der Player nahe genug ran kommt und der Heli ihn angreift. Für diesen WED-Pfad habe ich das obere Script, welches auch soweit funktioniert, dass der Heli sich darauf nach Links und Rechts bewegt. Er bewegt sich jedoch bei höher oder tiefer gelegenen Knoten nicht Auf oder Ab! Das soll er aber.. Ich hoffe ich konnte es verständlich machen
A8-Com-v 8.47.1
|
|
|
Re: Pathwalk im SideScroller
[Re: Rasterbar]
#185534
02/28/08 21:19
02/28/08 21:19
|
Joined: Jan 2006
Posts: 168 Germany, Hannover
DexLoomer
OP
Member
|
OP
Member
Joined: Jan 2006
Posts: 168
Germany, Hannover
|
Hi Rasterbar, danke für deine Antwort! Dein Tip klingt gut, jedoch habe ich keine Ahnung wie ich das machen soll, was du vorschlägst. Ich bin im Scripten noch nicht so gut. mfg
A8-Com-v 8.47.1
|
|
|
Re: Pathwalk im SideScroller
[Re: DexLoomer]
#185535
02/28/08 21:34
02/28/08 21:34
|
Joined: Sep 2007
Posts: 67 Seevetal, Germany
Rasterbar
Junior Member
|
Junior Member
Joined: Sep 2007
Posts: 67
Seevetal, Germany
|
Hi, kein problem hier ein Beispiel wie ich es mache, kannst es übernehmen: Code:
var debug_var[8]; font arial_font = "Arial",1,20; panel debug_info { pos_X = 10; pos_y = 256; digits = 0, 0, 6.3, arial_font, 1, debug_var[0]; digits = 0, 20, 6.3, arial_font, 1, debug_var[1]; digits = 0, 40, 6.3, arial_font, 1, debug_var[2]; digits = 0, 60, 6.3, arial_font, 1, debug_var[3]; digits = 0, 80, 6.3, arial_font, 1, debug_var[4]; digits = 0, 100, 6.3, arial_font, 1, debug_var[5]; digits = 0, 120, 6.3, arial_font, 1, debug_var[6]; digits = 0, 140, 6.3, arial_font, 1, debug_var[7]; flags = refresh; }
function debug_on_off { debug_info.visible = (debug_info.visible == off); }
on_f12 = debug_on_off;
mfg
|
|
|
Re: Pathwalk im SideScroller
[Re: DexLoomer]
#185537
03/01/08 11:09
03/01/08 11:09
|
Joined: Jan 2006
Posts: 168 Germany, Hannover
DexLoomer
OP
Member
|
OP
Member
Joined: Jan 2006
Posts: 168
Germany, Hannover
|
Hi Rasterbar, dein Panel klappt gut! Aber trotzdem schaffe ich es nicht, dass der Heli auf tiefer/höher gelegene Knoten sich zubewegt! Ich habe die Zeile 42:
path_getnode(my,my.pnode,my.xNode,path_skills);
durch
path_getnode(my,my.pnode,vector(my.xNode,my.yNode,my.zNode), path_skills);
ersetzt. Aber auch ohne anderes Ergebnis! Damit frage ich zwar die Position ab, aber ich komme nicht drauf, wie ich den Heli horizontal Knoten ansteuern lassen kann. mfg Dex
A8-Com-v 8.47.1
|
|
|
|