2d - 如何在gml代码中判断物体是否被玩家触摸

标签 2d game-maker gml

嘿,我将举一个例子来说明我想要做什么,假设我有 5 个圆形 Sprite ,在我的 gml 代码中,我想做这样的事情,如果 cirlce_1 被触摸,那么你可以触摸circle_2,如果circle_2 被触摸,那么我想做这样的事情你可以触摸circlce_3。请谁能帮我解决这个问题,愿意通过 Paypal 打赏。

最佳答案

Game Maker 中的触摸事件被视为鼠标事件。如果您希望这些圆圈只允许玩家按顺序触摸它们,您可以为每个圆圈分配一个编号,并使它们全部为同一对象。看看这个:

创建圈子的脚本

counter = 0;
lastball = 0;

for(i = 0; i < 10; i++){//Make that third part "i += 1" if using a version before Studio
  c = instance_create(floor(random(room_width)), floor(random(room_height)), objCircle);
  lastball++;
  c.myNum = lastball;
  c.radius = 16;//Or whatever radius you want
};

这里的 for 语句会自动生成房间周围的圆圈,但如果您想要手动控制,请尝试以下操作:

newCircle()

c = instance_create(argument0, argument1, objCircle);
c.myNum = lastball;
c.radius = 16;
lastball++;

这将在您想要的任何位置创建一个新圆圈,并且每次调用时都会自动增加 lastball 。例如,您可以说 newCircle(16, 27);

在 objCircle 的步骤代码中

if(mouse_check_button_pressed(mb_left) && point_distance(x, y, mouse_x, mouse_y) < radius && counter == myNum){
  counter++;//Or counter += 1 in versions before Studio
  //Insert whatever circles do when clicked here
};

点击圆圈后可以做任何事情。由于它们都是相同的对象,也许您可​​以使用 switch 语句,以便每个对象根据其数量执行不同的操作。

如果还有什么需要我帮忙的,请告诉我。

关于2d - 如何在gml代码中判断物体是否被玩家触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32544866/

相关文章:

compiler-errors - 我对游戏制作人有一个神秘的错误

game-maker - 如何在最后一帧卡住 Sprite 动画?

html - GML 存储用户输入

java - 检查二维数组中某个索引周围的索引的最佳方法

arrays - 在二维数组中查找连续 block

用于验证 Linux 磁盘空间输出的 Python 脚本

game-maker - Game Maker Language 换行

c++ - 如何使用 C++ 在 SFML 中播放播放器

quaternions - 当我有两个方向四元数时,如何找到从一个方向到另一个方向所需的旋转四元数?

c++ - 使用 SFML 在屏幕上居中文本