我正在制作一个小行星版本,我正在尝试创建一个系统,您可以将特定数量的像素传送到您所面对的任何方向。每次我尝试时,图像都会传送到地图中的相同位置。我放弃了这个想法并继续前进,但我想起了这个网站并决定如果有人知道,那就是你们。
我从这个概念开始:
//可能跳到//位置
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;
有人可以告诉我我做错了什么以及如何解决这个问题?
答案 0 :(得分:0)
您可以将xstart和ystart值设置为您想要的值,它们不是常量。
答案 1 :(得分:0)
你只需要
laser = instance_create(x + lengthdir_x(LenXL,image_angle),y + lengthdir_y(LenXL,image_angle),obj_laser);
所有lengthdir_x都是返回cos(argument1 / 180 * pi)* argument0或者用单词表示,x位置从0到远,你在x轴上传送,反之亦然“y”。