Gott.
Fehler 1: Du hast nirgendwo den Movementvector tatsächlich GESETZT. Er ist momentan also (0,0,0), was erklären könnte, warum sich nichts bewegt.

Fehler 2: Die c_move Anweisung muss natürlich AUCH in den loop.

So müsste der Code aussehen, damit was passiert:

Code:
var enemy_movevector[3];
function detect_player()
{
  
   while(1)
  {
    c_trace(my.x,spieler,IGNORE_PASSABLE|IGNORE_CONTENT);
    
    if (hit.x)
    {
      enemy_movevector.x = 5*time_step;
  c_move(my,enemy_movevector,nullvector,IGNORE_PASSABLE|IGNORE_SPRITES|GLIDE|USE_POLYGON);
    }

    wait(1);
  }
  
}
action enemy()
{
	detect_player();
}



Und bevor du jetzt fragst, warum der sich nur geradeaus bewegt: Schau dir die c_move Anweisung in obigem Code an, lies im Manual noch mal unter c_move nach, schau dir dann an, wie ich den Vektor gesetzt habe, und dann überleg mal, was da geändert werden muss. Tipp: Schau mal nach vec_rotate, vec_to_angle und vec_diff im Manual. Bevor man sich an die Programmierung einer KI macht, sollte man sich mit diesen Basis-Vektorrechnungssachen vertraut machen.

Grundsätzlich: Code öfter lesen, mehr probieren BEVOR man sich mit solchen Fragen ans Forum wendet. Auch mal in den AUMs lesen, da gibts einige Workshops zum Thema KI. Such da nach "AI", dann wirst sie schon finden.
Es "eillig" haben ist grundsätzlich nicht allzu gut beim Programmieren. Ein guter Code erfordert Zeit und Ruhe. Und ein Shooter ist auch nix, was man mal so eben in ein paar Wochen zusammenzimmert.

EDIT: Was xxxxxxx sagt ist leider auch richtig, wenn du den Fehler nicht selbst findest, wirst du's auch nicht verstehen. Also geh jetzt AUF KEINEN FALL nach copy&paste verfahren vor - LIES was ich da oben stehn hab, und versuch den Unterschied zu verstehen. Sonst kann ich dir auch nicht mehr helfen.

Last edited by the_clown; 03/08/11 18:50.