旋转精灵面向一个点(cocos2d)

2024-01-04

我似乎在计算精灵和触摸点之间的角度时遇到问题。每当用户触摸屏幕时,我试图让我的精灵直接面向触摸点的方向。这是我的代码:

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

    CGPoint tapPosition;
    for (UITouch *touch in touches){
        CGPoint location = [touch locationInView:[touch view]];
        tapPosition = [self convertToNodeSpace:[[CCDirector sharedDirector] convertToGL:location]];
    }

    float angle = CC_RADIANS_TO_DEGREES(ccpAngle(fish.position, tapPosition));
    [fish runAction:[CCRotateTo actionWithDuration:0.5 angle:angle]];
}

有任何想法吗?谢谢


将其添加到 Nikhil 答案的末尾,以避免当触摸位置位于精灵的右下角时出现负角度。

if (calculatedAngle < 0) 
{
     calculatedAngle+=360;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

旋转精灵面向一个点(cocos2d) 的相关文章

随机推荐

  • 匹配核心数据存储中的近似字符串

    我当前正在编写的核心数据应用程序有一个小问题 我有两种不同的模型 上下文和持久存储 一个用于我的应用程序数据 另一个用于包含与我相关的信息的网站 大多数时候 我将应用程序中的一条记录与其他来源的另一条记录完全匹配 然而 有时 我必须回退到模
  • 异常:底层连接已关闭:无法建立 SSL/TLS 安全通道的信任关系

    对于 firebase 通知代码 WebRequest tRequest WebRequest Create https fcm googleapis com fcm send tRequest Method post tRequest C
  • 使用 Dragula 在应用程序中进行 WebDriver 拖放

    我的公司有一个包含拖放功能的新应用程序 拖放是通过 Dragula 库完成的 我正在尝试自动化此功能 但我没有任何运气 我已经尝试过 WebDriver 的内置 DragAndDrop 方法 我的理解是它通常不能很好地与现代网络技术配合使用
  • 将 Parse.com 1.11.0 添加到 watchOS 2

    在 Parse SDK 更新到 1 11 0 中 它表示支持 watchOS 和 tvOS 我想知道如何使用 Cocoapods 将框架添加到我的 watchOS 应用程序中 pod 文件包含pod Parse 我已经跑了pod updat
  • Flexbox 和 vh 高度单位在 IE11 中不兼容吗?

    我正在尝试使用基于 Flexbox 的布局来为我的页面获取粘性页脚 这在 Chrome 和 Firefox 中效果很好 但在 IE11 中 页脚位于我的主要内容之后 换句话说 主要内容不会被拉伸以填充所有可用空间 body border r
  • 在免费/开源软件中使用 OAuth

    我现在正在阅读一些关于OAuth的介绍材料 有想法在免费软件中使用它 我读到了这个 消费者的秘密永远不能被泄露 向任何人透露 不要包含它 在任何请求中 在任何代码中显示它 样本 包括开源 或 任何方式揭示它 如果我使用 OAuth 为特定网
  • 如何在图形中找到三角形?

    这是一个练习算法设计手册 http www algorist com 考虑判断给定的无向图 G 是否为 V E 包含长度为 3 的三角形或环 a 给出一个 O V 3 来查找三角形 如果存在 b 改善 您的算法运行时间为 O V E 你可以
  • 如何通过分组和过滤将行分散到列?

    我有一个类似这样的数据集 df 1 lt tribble id type min price max price 1 X 10 40 1 Y 20 50 2 X 18 40 2 Y 34 50 2 NA 15 70 3 X 40 90 3
  • Scala 中具有重载方法的方法和函数之间的 Eta 扩展

    我想了解为什么 eta 扩展 6 26 5 不适用于重载方法 例如 如果我有以下两种方法 def d1 a Int b Int def r A B delegate A B Unit 我可以做这个 r d1 但是 当超载时r它将不再起作用
  • 带有 Java URLConnection 类的代理

    我对 Java 很陌生 我使用以下代码来调用 REST API 它在简单的环境中工作正常 但是当我与代理环境一起使用时 它会抛出空指针异常 我在谷歌上发现我们必须为此设置代理设置 我按照那个设置代理http www javaworld co
  • 如何从 JavaScript 中的去抖函数返回值? [复制]

    这个问题在这里已经有答案了 我有这样的代码 var originalFunction function return some value var debouncedFunction debounce originalFunction 30
  • Python 未打开 .py 文件 [已关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在尝试在计算机上打开 py 脚本 但不幸的是它一直在记事本中打开 我尝试过更改计算机上的关联 但即使当我浏览到 python exe 并单击它时
  • Rails 3.1.0 迁移中remove_index 的正确语法是什么?

    我正在将 Devise 添加到现有的 Rails 应用程序中 并且已经定义了 Users 表 设计生成器推出了以下迁移 class AddDeviseToUsers lt ActiveRecord Migration def self up
  • 如何使用 javascript 检测网络浏览器中的打印状态或取消状态?

    我只是检测网络浏览器中的打印状态 如您所见 浏览器支持取消或打印按钮的状态 为了查看用户是否单击了 取消 打印 按钮 我只是使用 JavaScript 但我并没有得到好的结果 有没有好的方法来检测状态 window print 不返回任何值
  • 自定义 DialogPreference 的默认值为 null

    我有一个TimePreference派生自的类DialogPreference 我用的是3NumberPicker设置小时 分钟和秒 这很好用 但当onSetInitialValue叫做defaultValue总是null 然而onGetD
  • Android:View.onClick() 方法是在主 UI 线程上调用的吗?

    假设用户单击一个按钮 生成的 onClick 函数是否在 Activity 的主 UI 线程上调用 是的 然后你在后台线程中启动你疯狂的网络东西
  • Soap 解析 wsdl 错误:意外元素:TAG_END

    我将 WSDL 定义从 ASP NET 版本 4 Visual Studio 2010 Express 项目导入 SOAPUI 4 5 1 时出错 网址就像 http localhost 7929 ws AX asmx WSDL 产生错误
  • 如何读取检查点RDD

    这个问题并不是什么新鲜事 但经过大量谷歌搜索但没有运气 我在这里发布了这个问题 sc setCheckpointDir C mydrive Checkpoint val data Seq 1 2 3 4 5 6 7 8 9 val base
  • 支持可能的生命周期的高阶函数

    假设我有一个高阶函数 例如这个答案的组成 https stackoverflow com a 45792463 fn compose
  • 旋转精灵面向一个点(cocos2d)

    我似乎在计算精灵和触摸点之间的角度时遇到问题 每当用户触摸屏幕时 我试图让我的精灵直接面向触摸点的方向 这是我的代码 void ccTouchesBegan NSSet touches withEvent UIEvent event CGP