динамический телепорт через gml

Я делаю версию астероидов и пытался создать систему, в которой вы можете телепортировать определенное количество пикселей в любом направлении, в котором вы смотрите. Каждый раз, когда я пытался, изображение телепортировалось в одно и то же место на карте. Я отказался от этой идеи и пошел дальше, но вспомнил об этом сайте и решил, что если кто и узнает, так это вы, ребята.

Я начал с этой концепции:

//возможно перейти на позицию//

x = xstart;
y = ystart;

но из-за того, что позиция должна быть динамичной, я решил попробовать реализовать эту концепцию:

laser = instance_create(x + lengthdir_x(LenXL, image_angle) - lengthdir_y(LenYL, image_angle), y + lengthdir_y(LenXL, image_angle) +lengthdir_x(LenYL, image_angle),obj_laser);  
laser.direction = image_angle;
laser.image_angle = laser.direction;

это о съемке из определенной точки на вашем изображении, независимо от того, где и в каком направлении, поэтому я могу сделать прыжок, основываясь на определенном количестве пикселей от передней части корабля.

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;

может кто-нибудь сказать мне, что я делаю неправильно и как я могу это исправить?


person Christopher Heidlauf    schedule 20.04.2016    source источник
comment
Трудно понять, что именно вы делаете неправильно, только с этой небольшой информацией, можете ли вы объяснить немного больше?   -  person CoppolaEmilio    schedule 20.04.2016


Ответы (2)


Вы можете установить значения xstart и ystart как хотите, они не являются константами.

person CoppolaEmilio    schedule 20.04.2016

Вам нужно только

лазер = instance_create(x+lengthdir_x(LenXL, image_angle),y+lengthdir_y(LenXL, image_angle),obj_laser);

Все, что делает lengthdir_x, это возвращает cos(argument1/180*pi)*argument0 или словами, xposition от 0 до того, как далеко вы телепортируетесь по оси x и наоборот для «y».

person William    schedule 11.06.2016