2016-04-20 16 views
0

Ich mache eine Version von Asteroiden und ich habe versucht, ein System zu erstellen, wo Sie eine bestimmte Anzahl von Pixeln in die Richtung teleportieren können, in die Sie sich gerade befinden. Jedes Mal, wenn ich es versuchte, teleportierte sich das Bild an die gleiche Stelle in der Karte. Ich verwarf die Idee und ging weiter, aber ich erinnerte mich an diese Seite und entschied, dass, wenn jemand es wüsste, es euch wären.dynamischer Teleport mit gml

ich mit diesem Konzept begonnen:

// vielleicht zu Position springen //

x = xstart; 
y = ystart; 

aber wegen der Position, um dynamisch zu sein, dachte ich, um zu versuchen, dieses Konzept umzusetzen:

In diesem Fall handelt es sich um Aufnahmen von einem bestimmten Punkt auf Ihrem Bild, egal wo oder in welche Richtung, so dass ich einen Sprung basierend auf einer bestimmten Anzahl von Pixeln aus th Die Vorderseite des Schiffes.

sprite_index = spr_teleport; 
teleport = instance_create(x + lengthdir_x(TeleX, image_angle) - lengthdir_y(TeleY, image_angle), y + lengthdir_y(TeleX, image_angle) +lengthdir_x(TeleY, image_angle),obj_player); 
teleport.direction = image_angle; 
teleport.image_angle = teleport.direction; 

Kann mir jemand sagen, was ich falsch mache und wie ich das beheben kann?

+0

Es ist schwer zu verstehen, was Sie nur mit dieser kleinen Information falsch machen, können Sie ein bisschen mehr erklären? – CoppolaEmilio

Antwort

0

Sie können den Wert für xstart und ystart auf den gewünschten Wert setzen, sie sind keine Konstanten.

0

Sie brauchen nur

Laser = instance_create (x + lengthdir_x (LenXL, image_angle), y + lengthdir_y (LenXL, image_angle), obj_laser);

All lengthdir_x tut, ist return cos (argument1/180 * pi) * argument0 oder in Worten, die von 0 bis XPosition jedoch weit man auf der x-Achse und umgekehrt für "y" ist teleporting.