cs193P assignmentV 问题1
2015-08-25 00:32
225 查看
又停了一段时间,再次开始。
生命中有了些神奇的变化,希望这次可以不同。
上次作业进行到了挡板移动和反弹正常,今天主要做触底结束的部分。
思路是在 gameView 的底部加一个高度为1的方框,参加碰撞。将UICollisionBehaviorDelegate设置为gameBehavior,通过代理检测碰撞,比较identifier相同则停止游戏。
第一步:上个版本对于游戏内尺寸的计算结构混乱,重新写了这部分,最初想法定义一个结构体,结构体内部有 gameView 的高度,宽度等信息,写完后发现获取不了 ScoreView对象,查阅资料发现 swift 目前还不支持嵌套对象获取外部对象的数据,于是去掉了最外层结构体,不知道还有没有更好的选择。
第二步:增加底部的碰撞体,因为碰撞代理在 behavior 中,所以考虑碰撞的 identifier 也放在 behavior 中,通过 func addBottom(path:
UIBezierPath)调用,behavior 管理 identifier。
第三布:使用代理函数
collisionBehavior(behavior: UICollisionBehavior, beganContactForItem item:
UIDynamicItem, withBoundaryIdentifier identifier:
NSCopying, atPoint p: CGPoint) ,执行后遇到错误,方块碰到墙壁后,墙壁的 identifier 为 nil,但是返回的 NSCopying 不支持 nil 比较,后来增加一次复制,var id :NSCopying? = identifier后解决。
第四步:暂停游戏
反向设置 ball的速度实现,下一步制作重启游戏的模块
晚安
生命中有了些神奇的变化,希望这次可以不同。
上次作业进行到了挡板移动和反弹正常,今天主要做触底结束的部分。
思路是在 gameView 的底部加一个高度为1的方框,参加碰撞。将UICollisionBehaviorDelegate设置为gameBehavior,通过代理检测碰撞,比较identifier相同则停止游戏。
第一步:上个版本对于游戏内尺寸的计算结构混乱,重新写了这部分,最初想法定义一个结构体,结构体内部有 gameView 的高度,宽度等信息,写完后发现获取不了 ScoreView对象,查阅资料发现 swift 目前还不支持嵌套对象获取外部对象的数据,于是去掉了最外层结构体,不知道还有没有更好的选择。
第二步:增加底部的碰撞体,因为碰撞代理在 behavior 中,所以考虑碰撞的 identifier 也放在 behavior 中,通过 func addBottom(path:
UIBezierPath)调用,behavior 管理 identifier。
第三布:使用代理函数
collisionBehavior(behavior: UICollisionBehavior, beganContactForItem item:
UIDynamicItem, withBoundaryIdentifier identifier:
NSCopying, atPoint p: CGPoint) ,执行后遇到错误,方块碰到墙壁后,墙壁的 identifier 为 nil,但是返回的 NSCopying 不支持 nil 比较,后来增加一次复制,var id :NSCopying? = identifier后解决。
第四步:暂停游戏
反向设置 ball的速度实现,下一步制作重启游戏的模块
晚安
相关文章推荐
- cocos2d-x改进的粒子系统和编辑器(需求分析)
- 想写一个网络游戏(PS:纯粹是为了好玩)
- 【DirectX 2D游戏编程基础】directx 精灵绘图的应用,锚点与变换
- UVA - 11082 Matrix Decompressing(最大流+行列模型)
- 华为机试题:字符串最后一个单词的长度
- ReactJS入门学习二
- TCP建立和解除连接过程
- php动态调用函数方法&&非关系数据库的优势
- php动态调用函数方法&&非关系数据库的优势
- Vim按Esc后光标左移问题的解决
- Oracle设置表中自增字段
- Android 自定义主菜单
- 【ZOJ2334】Monkey King
- c++ 构造函数初始化列表
- thinkinginjava学习笔记01_导论
- 分配内存时如何减少内存碎片(四)
- 分配内存时如何减少内存碎片(三)
- 分配内存时如何减少内存碎片(二)
- 分配内存时如何减少内存碎片(一)
- linux系统进程的内存布局