2016-04-20 3 views
0

Я делаю версию астероидов, и я пытался создать систему, в которой вы можете телепортировать определенное количество пикселей в любом направлении, с которым вы сталкиваетесь. Каждый раз, когда я пытался, изображение телепортировалось в одно и то же место на карте. Я отказался от этой идеи и пошел дальше, но я вспомнил этот сайт и решил, что, если кто-нибудь узнает, это были бы вы, ребята.динамический телепорт с использованием 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; 

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

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; 

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

+0

Трудно понять, что именно вы делаете неправильно только с этой небольшой информацией, можете ли вы объяснить немного больше? – CoppolaEmilio

ответ

0

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

0

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

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

Все lengthdir_x делает возвращение соз (argument1/180 * пи) * argument0 или словами, xposition от 0 до однако далеко вы телепортации на оси х и наоборот для «у».