当前位置: 首页 > 知识库问答 >
问题:

如何使用sprite套件xcode 5的touchAndHold事件

任元青
2023-03-14

我正在尝试用精灵工具包制作游戏,我需要角色移动。我希望用户按住按钮,让角色在x轴上直线移动。现在你必须多次点击它才能让他移动。

共有1个答案

宫弘亮
2023-03-14

我建议在触摸事件上设置 x 方向速度,并在 touchUp 事件上将速度设置为 0。

  1. 触地节点(左侧或右侧)
  2. 检查方向节点是否被触摸
  3. 根据触摸的节点设置速度(值向右移动,-值向左移动)
  4. 释放Touch后,将字符速度重置为0

以下是我从游戏中摘录的一些代码:

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

UITouch * touch = [touches anyObject];

CGPoint location = [touch locationInNode:self];



if([self.moveRightNode containsPoint: location]) {
     NSInteger xSpeed = yourSpeed;
     character.physicsBody.velocity = CGVectorMake(yourspeed, 0);
}
}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

UITouch * touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
character.physicsBody.velocity = CGVectorMake(0, 0);

}

设置物理世界时,重力为0或character.physicsworld.dynamic=NO。

 类似资料:
  • 问题内容: 我在Swift中编写了这个简单的太空游戏,直到遇到碰撞检测问题为止。在浏览论坛,教程等之后,我尝试通过声明位掩码来实现冲突,如下所示: 对象1 对象2 我也将打印声明放在 这是我配置精灵的方法: 创造敌人(被召唤进入查看功能) 和另一个精灵 这个是用计时器创建的 不幸的是,当我看到两个对象接触后,它无法在控制台中打印任何内容。 问题答案: 定义唯一的类别,确保您的班级是a ,并使自己成

  • 我有一个无休止的跑步游戏,我的主角有一个物理身体,我用它来处理跳跃 在他撞上障碍物之前,一切都很好。他开始后退,我希望他一直保持在他的x位置。 我尝试将身体动态设置为NO,但这停止了跳跃。 我该怎么做?我不想让角色在x轴上移动。

  • 我的总体目标是能够使用TAB键在3个div之间导航,每个div都有#sectionA、#sectionB和#sectionC的CSS id。在每个div中,我有一个无序列表,我想使用左右箭头键来浏览列表。 我的超文本标记语言如下: 到目前为止,我能够得到以下jquery代码,但一旦我添加了第二个$(文档). keydown(函数()代码,就无法工作。

  • 问题内容: 我有两个 java类 和 两个 类的 两个布局 。每个 布局 中都有一个 按钮 。这两类都在扩展。现在在第一个布局中,我使用了 包含这样的 标签 我现在可以看到 两个按钮, 但是 第二个按钮 不起作用。 问题答案: 首先, 您必须声明并初始化 包含 视图,然后使用 view.findViewById() 方法进行贴花和初始化两个按钮,如下所示: 然后设置他们的 onClickListe

  • 在React router中,我必须单击和onClick属性,如下所示 属性导航到关于路线 当我给超时内嵌函数调用点击,其导航到新页面,并在某个时候状态得到更新,导致显示以前的名称,直到状态更新为新名称。 是否有一种方法,只有在onClick函数中的代码执行之后,它才会导航到新路由。 您可以[在这里]获取整个代码(https://github.com/pushkalb123/basic-react

  • 我想将流中的项目收集到一个映射中,该映射将相等的对象分组在一起,并映射到出现的次数。 因此,在本例中,我希望地图由以下条目组成: 我该怎么做?