首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SpriteKit -多目标接触检测

SpriteKit -多目标接触检测
EN

Stack Overflow用户
提问于 2014-10-11 10:02:58
回答 1查看 516关注 0票数 0

我中间有一个平台,有两个圆圈。

顶部有一个圆圈。底部有一个圆圈。

当底部圆圈触及屏幕顶部时,我想写一条NSLog消息。

当顶部的圆圈接触到屏幕底部时,我想写一条NSLog消息。

我已经将circle1和2设置为有分类位掩码和contactTestBitMasks。我所做的任何测试,都只能在顶部或底部的圆圈到达屏幕底部时才能找到,但无法确定如何检测底部圆圈何时触及顶部。我已经开始我的if声明了

代码语言:javascript
运行
AI代码解释
复制
-(void)didBeginContact:(SKPhysicsContact *)contact {
// If the top circle touches the bottom edge
 if (contact.bodyA.categoryBitMask == bottomEdgeCategory) {
    NSLog(@"This is the top ball touching the bottom edge");
 }
}

如能提供任何协助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-12 15:18:56

如果您是雪碧套件的新手,请阅读以下有关碰撞检测的教程。

这显示了让一个精灵与另一个精灵联系的代码。您要做的是创建一个薄薄的长方形精灵沿屏幕顶部和另一个沿底部。给他们分配不同的接触位掩码。使用下面的教程中的代码,添加一个接触事件来访问topOfScreenSprite和bottomOfScreenSprite。

http://www.raywenderlich.com/42699/spritekit-tutorial-for-beginners

我喜欢的版本:

代码语言:javascript
运行
AI代码解释
复制
- (void)didBeginContact:(SKPhysicsContact *)contact{

    SKPhysicsBody *firstBody, *secondBody;
    if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask)
    {
        firstBody = contact.bodyA;
        secondBody = contact.bodyB;
    }
    else
    {
        firstBody = contact.bodyB;
        secondBody = contact.bodyA;
    }

    if (firstBody.categoryBitMask==circle1Category && secondBody.categoryBitMask == topOfScreenCategory)
    {
        NSLog('c1: Top Hit');
    }
    else if (firstBody.categoryBitMask==circle1Category && secondBody.categoryBitMask ==    bottomOfScreenCategory)
    {
        NSLog('c1: Bottom Hit');
    }       
    if (firstBody.categoryBitMask==circle2Category && secondBody.categoryBitMask == topOfScreenCategory)
    {
        NSLog('c2: Top Hit');
    }
    else if (firstBody.categoryBitMask==circle2Category && secondBody.categoryBitMask ==    bottomOfScreenCategory)
    {
        NSLog('c2: Bottom Hit');
    }   
}

注意: firstBody将始终是分配给它的值较低的类别。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26317624

复制
相关文章
MybatisPlus Lambda表达式 聚合查询 分组查询 COUNT SUM AVG MIN MAX GroupBy
众所周知,MybatisPlus在处理单表DAO操作时非常的方便。在处理多表连接连接查询也有优雅的解决方案。今天分享MybatisPlus基于Lambda表达式优雅实现聚合分组查询。
赛先生和泰先生
2022/11/07
6.9K0
MybatisPlus Lambda表达式 聚合查询 分组查询 COUNT SUM AVG MIN MAX GroupBy
Hive窗口函数01-SUM、MIN、MAX、AVG
order by : 在同一个组内,先累加完相同createtime的pv,再累加其他createtime的pv, 比如 : 现在在表末尾加一条数据cookie1 2015-04-10 1 1,那么结果就是 :
CoderJed
2018/09/13
2.8K0
Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT
功能描述:对一组内发生的事情进行累积计数,如果指定*或一些非空常数,count将对所有行计数,如果指定一个表达式,count返回表达式非空赋值的计数,当有相同值出现时,这些相等的值都会被纳入被计算的值;可以使用DISTINCT来记录去掉一组中完全相同的数据后出现的行数。
python与大数据分析
2022/03/11
5950
Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT
SQL聚合函数 AVG
AVG返回NUMERIC或DOUBLE数据类型。 如果expression是DOUBLE类型,AVG返回DOUBLE; 否则,它返回NUMERIC。
用户7741497
2022/03/27
3.3K1
【说站】javascript max和min的使用
以上就是javascript max和min的使用,希望对大家有所帮助。更多Javascript学习指路:Javascript
很酷的站长
2022/11/24
6340
【说站】javascript max和min的使用
Java8 | 如何使用Group By 聚合操作集合数据?
集合数据分组很多在实际开发过程中是相当常见,比如传给前端的产品数据按照类型进行分组。最常见的方式是遍历整个集合,然后通过判断类型构造存储不同类型的集合。那么有没有更好的办法,Java8 groupingBy能帮到我们。
玖柒的小窝
2021/11/28
1.7K0
SQL聚合函数 MIN
MIN聚合函数返回表达式的最小值(最小值)。通常,表达式是查询返回的多行中的字段名称(或包含一个或多个字段名称的表达式)。
用户7741497
2022/03/27
1.3K0
集合去重 (集合元素为引用类型)--- java 8 新特性 --- 根据元素单属性、多属性实现去重
1. 代码写法: (要求 JDK 1.8 或 1.8 以上) package gentle.entity; import lombok.Data; /** * * @author silence * @date 2018/7/6 10:58 */ @Data // 此注解可自动生成set/get、自动重写equals/hashcode 等,不用在代码中书写相关代码。 public class User { private String name; private int a
微风-- 轻许--
2022/04/13
6290
集合去重 (集合元素为引用类型)--- java 8 新特性 --- 根据元素单属性、多属性实现去重
CSS之关于min-width、max-width、min-height和max-height的使用
设div父盒子A中有个div子盒子B,设B的min-height为H,则H为盒子B的最小高度值,意思是:
xinxin-l
2022/03/29
1.4K0
CSS之关于min-width、max-width、min-height和max-height的使用
C语言 | 选择1或2输出max或min
例36:C语言实现输入两个整数,然后让用户选择1或者2,选择1是调用max,输出两者中的大数,选择2是调用min,输出两者中的小数。
小林C语言
2020/12/16
1.2K0
C语言 | 选择1或2输出max或min
Pytorch的max()与min()函数
函数定义:torch.max(input, dim, max=None, max_indices=None,keepdim=False)
狼啸风云
2020/05/07
7.1K0
SQL聚合函数 MAX
MAX聚合函数返回表达式的最大值。 通常,表达式是查询返回的多行中字段的名称(或包含一个或多个字段名称的表达式)。
用户7741497
2022/03/27
1.2K0
集合:按元素的中文属性排序
1. 要排序的元素类: public static class NameCount implements Comparable<NameCount> { Collator collator = Collator.getInstance(java.util.Locale.CHINA); @ApiModelProperty(value = "名") private String name; @ApiModelProperty(value =
微风-- 轻许--
2020/04/14
1.4K0
MySQL中min和max查询优化
测试版本:Server version:        5.1.58-log MySQL Community Server (GPL)
星哥玩云
2022/08/17
1.3K0
JAVA 集合list,Map删除元素的方法总结
这种方式的问题在于,删除某个元素后,list的大小发生了变化,而你的索引也在变化,所以会导致你在遍历的时候漏掉某些元素。比如当你删除第1个元素后,继续根据索引访问第2个元素时,因为删除的关系后面的元素都往前移动了一位,所以实际访问的是第3个元素。因此,这种方式可以用在删除特定的一个元素时使用,但不适合循环删除多个元素时使用。
traffic
2020/04/09
2.9K0
MADlib——基于SQL的数据挖掘解决方案(26)——聚类之k-means方法
聚类算法大都是几种最基本的方法,如k-means、层次聚类、SOM等,以及它们的许多改进变种。MADlib提供了一种k-means算法的实现。本篇主要介绍MADlib的k-means算法相关函数和应用案例。
用户1148526
2019/05/25
8360
Hibernate对象导航语言
文章目录 1. HQL - 对象导航语言 1.1. 简介 1.2. 步骤 1.3. 准备 1.4. 实体查询 1.4.1. 格式 1.4.2. 拓展 1.4.3. 实例 1.5. 部分字段的查询 1.5.1. 格式 1.5.2. 实例 1.6. 多表联合查询 1.7. 前提 1.7.1. 常见的联合查询方式 1.7.2. 对象方式关联查询 1.7.2.1. 实例 1.7.3. join方式查询 1.7.3.1. 左外连查询 1.7.3.1.1. 格式 1.7.3.1.2. 实例 1.7.3.2. 右外连
爱撒谎的男孩
2019/12/31
9050
Max-Min Fairness带宽分配算法
最近再写一个网络仿真器,里面参考了Max-MinFairness算法,这是一种比较理想、公平的带宽分配算法。其思路主要如下:首先是算法的准备,考察某一时刻的网络中所有的flow,由于每条flow都有其各个link,因此可以得到各个link上所有流经的flow,然后开始迭代,各个link都把capacity平均分给所有流经的flow,接着每条flow的速度就等于其最小link分配的带宽,然后每条link的剩余带宽就等于link的capacity减去所有流经的flow的速度的总和,再然后把link的剩余带宽作为
forrestlin
2018/05/23
1.9K0
min-width 属性
min-widht 规定设置最小宽度,且能阻止 height 属性的设置值比 min-width 小。
Html5知典
2019/11/26
8120
min-height 属性
min-height 规定标签设置最小高度,且能阻止height属性的设置值比min-height小。min-height 可覆盖 height , min-height 可覆盖 max-height。
Html5知典
2019/11/26
1.2K0

相似问题

Server查询- Min、Max、Avg聚合问题

14

如何在java上做Groupby,Sum,Avg,Min,Max集合?

10

在南迁移中使用聚合器(Min、Max、Avg)

10

如何使用sqlbuilder.smartsql使用聚合函数(avg、count、max、min)

14

如何模拟聚合函数avg,sum,max,min,和PouchDB?

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文