碰撞的两种实现,

-(void)checkAttack

{

static BOOL beforeState;

static int count = 0;

BOOL attack = CGRectIntersectsRect(self.lifeView.frame, self.blockView.frame);

if (beforeState == 0 && attack == 1) {

count ++;

[self.countLabel setText:[NSString stringWithFormat:@"碰撞次数:%d",count]];

}

beforeState = attack;

CGFloat blockOriginY = self.lifeView.frame.origin.y - self.blockView.frame.size.height;

CGFloat maxBlockOriginY = self.lifeView.frame.origin.y + self.blockView.frame.size.height;

CGFloat lifeOriginX = self.blockView.frame.origin.x - self.lifeView.frame.size.width;

CGFloat maxLifeOriginX = self.blockView.frame.origin.x + self.lifeView.frame.size.width;

if ((maxLifeOriginX > self.lifeView.frame.origin.x &&  self.lifeView.frame.origin.x> lifeOriginX) && (self.blockView.frame.origin.y > blockOriginY && maxBlockOriginY > self.blockView.frame.origin.y)) {

count ++;

[self.countLabel setText:[NSString stringWithFormat:@"碰撞次数:%d",count]];

}

}

时间: 2024-10-10 04:43:32

碰撞的两种实现,的相关文章

▶链路层第三弹◀ 两种信道下的数据链路层【下】广播通信CSMA/CD

两种信道情况下的数据链路层     之 广播信道的数据链路层---CSMA/CD(载波监听多路访问/冲突检测) l  局域网概念 在局域网中用到的就是广播通信,所以以局域网的通信来讲解广播信道的数据链路层特点.在学习广播通信 特点之前,先来了解一下局域网. n 局域网的分类 所有的PC机接到中间设备核心上.但是如果核心设备一点坏掉了,则所有PC机都将受到影响.虽然核心坏掉会出现问题,但是一般核 心不会坏,坏的一般是线路,星形网中线路的毁坏并不会影响其他PC的工作,所以星形网在局域网中用的比较多.

通过属性 Cesium的FBO主要支持两种方式

角色其实就是一类权限的分组,所以给用户分配角色其实也是在给用户分配权限.在oracle中有三个比较常用的角色.对于一般不是很严格的系统可以授予开发用户CONNECT.RESOURCE角色权限即可. 其中--logdir命令行参数指定的路径必须跟SummaryWriter的logdir参数值保持一致,TensorBoard才能够正确读取到Tensorflow的事件文件. 使用RTTI技术可以避免类型访问错误而程序异常的情况,但是这样做有点不优雅,每增加一个类型,都需要修改if-else结构,并且使

一、查看Linux内核版本命令(两种方法):

一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [[email protected]CentOS home]# cat /proc/versionLinux version 2.6.32-431.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013 2.uname -a [

两种插入排序算法java实现

两种方法都编译运行通过,可以当做排序类直接使用. 折半插入排序: public class Sort1 { public static void main(String[] args) { InsertSort sort = new InsertSort(); sort.InsertSort(); int[] arr = sort.getarr(); System.out.println(); System.out.println("排序之后:"); for (int ar : arr

hibernate载入持久化对象的两种方式——get、load

一.get与load对照 在hibernate中get和load方法是依据id取得持久化对象的两种方法.但在实际使用的过程中总会把两者混淆,不知道什么情况下使用get好,什么时候使用load方法效率更高.下边具体说一下get和load的不同,有些时候为了对照也会把find加进来. 1.从返回结果上对照: load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法检索不到的话会返回null 2.从检索运行机制上对照: get方法和fin

Jmeter 跨线程组传递参数 之两种方法

终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直到登录接口的参数失效了,需再次发送一次登录接口,又可以多次使用其参数,下面举例子: 1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过) 终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为

第十九篇:处理僵尸进程的两种经典方法

前言 如果父进程没有结束,而子进程终止了.那么在父进程调用 wait 函数回收这个子进程或者父进程终止以前,这个子进程将一直是僵尸进程. 本文将提供两种方法处理这个问题. 方法一:父进程回收法 wait函数将使其调用者阻塞,直到其某个子进程终止.故父进程可调用wait函数回收其僵尸子进程.除此之外,waitpid函数提供更为详尽的功能( 增加了非阻塞功能以及指定等待功能 ),请读者自行查阅相关资料. 代码实现 1 #include <unistd.h> 2 #include <sys/w

maven的两种可运行jar打包方式。1、内置依赖,2、外部依赖。

maven打可运行jar包的两种方式 maven常用的普通打包方式分为pom,jar,war等,至于这些打包类型就不介绍啦. 如果不进行特殊配置,那么打包出来的jar包是不可运行的.只能当作普通依赖包使用. 下面就介绍两种maven打可运行jar包的方式: 方式一:内置打包法 <plugins> <!-- 内置打包法 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <!-- 

em创建的两种方式

em创建(两种方式1,图形dbca,当然了,前提是先创建一个监听. 2,手工命令安装em)手工命令创建em(确保数据库开启,确保监听正常并且最好是动态监听,确保system表空间够用大概1G左右),我的空间有限只给了800M,如下 select file_name,tablespace_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'SYSTEM';alter database datafile '/u01