使用gml动态传送

时间:2016-04-20 11:15:26

标签: move-semantics game-development 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;

有人可以告诉我我做错了什么以及如何解决这个问题?

2 个答案:

答案 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”。