iOS Game模板碰撞检测的一些细节

   我们把需要检测碰撞的物理设置物理体(以下我们把这个物理体称作xx)

  xx.physicsBody=SKPhysicsBody(rectangleOfSize:CGSize(x:100,y:100))

  然后给这个物理体设置一个标识(BitMaskType是自己新建的一个类)

  xx.physicsBody?.categoryBitMask=BitMaskType.xx

  最后设置会发生碰撞的物理(比如响应与yy发生碰撞的事件)

  xx.physicsBody?.contactTestBitMask=BitMaskType.yy

  最后添加代码

  func didBeginContact(contact: SKPhysicsContact) {

  println("发生碰撞")

  }

  我们可以发现的确发生了碰撞(以上部分粗略描述,若有疑问请自行百度)

  有时候我们会发现两个物理题还未碰撞,但是系统就已经响应了碰撞事件,这个时候我们不妨将物理体的size设置的相对小一些。

  有的时候两个物理体明明已经发生碰撞了,但是系统并未响应碰撞事件,这又是为什么呢?

  请注意我们的第一句代码,也就是设置物理体大小的那一句,在这一句中我们设置了一个100*100的物理体,但是我们并未说明中心点,而默认的center为CGPoint(0,0).

  如下图显示:


  红色的正方形表示你想要创建物理体,而事实上系统创建的物理体则是黄色的正方形。这个物理体在屏幕中并不显示,但事实上是这个物理体在发生碰撞。为什么会发生这样的情况?原因是Xcode默认的以坐标的左下角为中心创建了一个100*100的正方形。为了解决这个问题,我们修改创建物理体的代码。

  xx.physicsBody=SKPhysicsBody(rectangleOfSize:CGSize(x:100,y:100),center:CGPoint(x:0.5, y: 0.5))

  好的在上诉代码中我们以坐标(50,50)为中兴创建了一个100*100的正方形,也就是我们想象中的红色正方形。

时间: 2024-09-29 15:56:53

iOS Game模板碰撞检测的一些细节的相关文章

iOS设计模式 - 模板

iOS设计模式 - 模板   原理图   说明 定义一个操作中的算法的骨架,而将步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤.   源码 https://github.com/YouXianMing/iOS-Design-Patterns // // GameProtocol.h // TemplatePattern // // Created by YouXianMing on 15/10/27. // Copyright 2015年 ZiPeiYi.

c++问题-c++中关于模板的一些小细节

问题描述 c++中关于模板的一些小细节 今天突然看到一细节,在模板中 template和template的区别是什么 解决方案 C++中typename和class的区别http://blog.163.com/susu_sf/blog/static/171060253201092233759957/ http://blog.csdn.net/dick_china/article/details/4522253 解决方案二: C++中typename和class的区别http://blog.163

iOS Game 模板中坐标问题

  iOS Game一般屏幕都是横着的,那么当屏幕竖着的时候会发生什么.杯具发生了,坐标发生问题了. 当横屏时坐标原点为左下角(以下都在Game模板下),此时的大小为1024*768,而这个大小与iPad Air的大小相同,为什么是这个大小呢(也许苹果公司希望我们人手一个ipad来玩游戏,而不是拿着手机).当你使用其他尺寸的设备时(比如iPhone),scene的size并未发生改变,这意味着什么?也就是说,当你在scene中创建一个100*100的正方形的时候,它显示在屏幕上确是一个长方形.

iOS版Google地图的设计细节

现在的用户对地图应用是越来越苛刻,往其中投入的感情也越来越多.本文作者Sacha Greif 一名来自法国巴黎的设计师,当大家仍然对iOS版Google地图展现的地图数据以及服务功能赞不绝口时,他就犯了设计师的职业病,细数Google地图的设计点滴.昨天有人对着苹果地图说分手,而今天Sacha却又像评价女婿一样评价iOS版的Google地图. 说起苹果地图,因为缺少公共交通的导航,对于没有车的Sacha来说,这点根本就不能接受,也因此Sacha一直没有升级iOS 6. 无论如何,评价一款地图应用

挖掘iOS 8隐藏的那些小细节

在本篇文章中我们将努力挖掘出那些苹果iOS 8中隐藏的细节改变.因为WWDC主题演讲时间有限,苹果也不可能毫无遗漏地向开发者完全展示iOS和新一代桌面操作系统中的每个细节,所以这篇文章将会继续我们的发现之旅.虽然在iOS 8中有一些明显的改观可以说让我们兴奋不已,比如HomeKit. iCloud Photo Library以及Metal,但是在这其中一些隐藏的小细节也会在不经意间带给我们惊喜. 随着iOS 8发布后的主要新功能,Jony Ive和人机界面开发团队也在UI上努力进行了多处微调整.

IOS之UI -- 按钮UIButton的细节

按钮细节 文章概要: 1.内部子控件 2.按钮拉伸问题 2-1.代码拉伸 2-2.无代码拉伸 内部子控件 如果想要改变按钮内部子控件的属性,只能自定义按钮 自定义按钮:调整内部子控件的frame 方式1:实现titleRectForContentRect:和imageRectForContentRect:方法,分别返回titleLabel和imageView的frame 方式2:在layoutSubviews方法中设置 内边距 // 设置按钮内容的内边距(影响到imageView和titleLa

iOS 7 对比 Android 4.3 细节评测 - 相互借鉴进行中,哪款更是你的菜?

class="post_content" itemprop="articleBody"> 一直以来,关于苹果 iOS 和谷歌 Android 谁更好用的争论从来没有间断过,它们不仅代表了世界上两个最先进.最受欢迎的移动平台,同时也是苹果和谷歌两家科技巨头品味.风格的不同表现-- 那么,在 iOS 7 正式推出之际,将其与谷歌最新的 Android 4.3 对比,也是具有一定意义的,下面我们就来看看它们之间详细的差异所在. 1. 锁屏和主屏界面 显然,在锁屏界面

iOS开发系列--IOS程序开发概览

概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的知识是你日后开发IOS的基础,没有那些知识你开发IOS会很痛苦,现在很多开发人员做开发都是一知半解,程序质量确实令人担忧,所以还是希望大家能够熟练掌握前面的内容,开发过程中多思考,彻底理解程序运行的原理.机制.好了言归正传,不管怎么样正式进入IOS开发还是令人兴奋的,今天的内容虽然说是开发预览,其实

开发iOS应用比你想象的要难得多

本文是由新加坡的 iOS 开发者 Kent Nguyen发表的一篇博文,这篇吐槽文曾在 iOS 开发圈子里掀起千层浪,引起广泛共鸣,现翻译如下. 让我们直入主题:做一个iPhone应用花费多少钱? 这个最常见的问题也是最难回答的问题,我的很多朋友,和那些个对技术一知半解的客户们,他们都问过我这个的问题.通常,我会先给出一个大致的报价,这个报价并没有细致到需要签合同确认每一个功能点的地步.即便是这样,每当的我报价一出口,毫无例外的,都把对方吓了一跳(当然不是因为便宜). 说实话,我没有狮子大开口.