java开发打砖块游戏

  • 格式:pdf
  • 大小:15.09 MB
  • 文档页数:68

下载文档原格式

  / 68
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

—高级软件人才实作培训专家!
编写tapScreen方法,确认点击事件是否执行
#pragma mark - Actions! // 点击屏幕,开始游戏 - (IBAction)tapScreen:(id)sender! {! NSLog(@"点击屏幕了");! }
北京传智播客教育 www.itcast.cn
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
编码2——成员变量初始化
- (void)viewDidLoad! {! [super viewDidLoad];! ! _originBallCenter = _ballImageView.center;! }!
—高级软件人才实作培训专家!
搭建游戏界面——MainStoryboard简介
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
搭建游戏界面——隐藏状态栏
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
让小球动起来——增加点击手势
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
打开助理编辑器——建立界面与源代码之间的连接
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
建立小球的IBOutlet——让代码可以操纵界面元素
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
建立手势的IBAction——特定事件发生时执行代码
北京传智播客教育 www.itcast.cn
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
小球与屏幕的碰撞实现1——屏幕顶部
#pragma mark - 碰撞检测 - (void)intersectWithScreen! {! // 与屏幕顶部碰撞 if (CGRectGetMinY(_ballImageView.frame) <= 0) {! _ballVelocity.y = ABS(_ballVelocity.y);! }! }! #pragma mark - 游戏时钟处理方法! // 游戏时钟处理方法 - (void)step:(CADisplayLink *)sender! {! // 屏幕碰撞检测 [self intersectWithScreen];! // 更新小球位置 [_ballImageView setCenter:CGPointMake(_ballImageView.center.x + _ballVelocity.x, _ballImageView.center.y + _ballVelocity.y)];! } 北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
屏幕顶部碰撞检测——运行看看效果 • 下一步其他对象碰撞检测
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
小球与其他对象碰撞准备——建立砖块IBOutlets
北京传智播客教育 www.itcast.cn
搭建游戏界面——完成所有砖块
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
搭建游戏界面——添加小球和挡板并设置背景
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
搭建游戏界面——运行看看效果 • 下一步让小球动起来 的准备工作
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
iOS的坐标系
坐标原点(0,0)
X 320
Y 480 Leabharlann Baidu
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
编码4——游戏时钟处理方法
// 游戏时钟处理方法 - (void)step:(CADisplayLink *)sender! {! // 更新小球位置 [_ballImageView setCenter:CGPointMake(_ballImageView.center.x + _ballVelocity.x, _ballImageView.center.y + _ballVelocity.y)];! }
—高级软件人才实作培训专家!
适合人群 有一些OC基础,能看懂OC语法即可!
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
游戏规则
1. 2. 3. 4. 5. 6. 7. 8. 9. 屏幕上方有四排砖块 点击屏幕开始游戏 游戏开始时,小球向上方运行 小球与砖块撞击可以撞碎砖块 并反弹 小球与屏幕顶部、右侧、左侧 碰撞会反弹 小球与挡板碰撞会反弹 左右移动手指可以挪动挡板 小球从屏幕下方掉出游戏结束 撞碎所有砖块游戏胜利!
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
开发步骤
1. 2. 3. 4. 新建项目 搭建界面 获取界面对象并监听屏幕事件 代码实现
1. 2. 3. 4. 5. 6. 点击屏幕让小球动起来 屏幕碰撞检测 挡板碰撞检测 砖块碰撞检测 拖动挡板改变小球方向 胜负判断及重置游戏
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
新建项目——再次运行 • 下一步搭建游戏界面
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
搭建游戏界面——MainStoryboard
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
打砖块游戏
讲师:刘凡
技术博客:http://www.cnblogs.com/liufan9!
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
课程目标
用3~4个小时实现简单的打砖块游戏
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
搭建游戏界面——复制五个红色砖块
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
搭建游戏界面——同时复制5个并统一修改为黄色
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
—高级软件人才实作培训专家!
准备工作——运行看看效果 • 下一步让小球动起来 • 提问:
– 如何让小球动起来?
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
游戏启动流程图
• 需要
– – – – 游戏是否开始 小球初始位置 游戏时钟 小球的速度
搭建游戏界面——准备素材
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
搭建游戏界面——导入素材
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
搭建游戏界面——添加第一个红色砖块
北京传智播客教育 www.itcast.cn
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
QuartzCore框架添加完成
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
编码1——成员变量定义
#import "ViewController.h"! // 引入QuartzCore框架,以定义游戏时钟 #import <QuartzCore/QuartzCore.h>! ! @interface ViewController ()! {! // 游戏时钟 CADisplayLink *_gameTimer;! // 小球初始中心点位置 CGPoint _originBallCenter;! // 小球速度! CGPoint _ballVelocity;! }! ! @end
• 位移 = 时间 * 速度
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
游戏是否开始的处理 • 既然游戏开始是由点击屏幕触发的,那么游戏启 动之后,禁用屏幕点击,即可解决重复启动游戏 • 在.h中增加如下IBAction连线
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
让小球动起来——运行看看效果 • 下一步碰撞检测 • 问题:
– 小球飞出屏幕了!
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
需要检测的碰撞 • 小球与屏幕的碰撞 • 小球与砖块的碰撞 • 小球与挡板的碰撞
—高级软件人才实作培训专家!
新建项目3——保存项目
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
新建项目——运行
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
新建项目——设置设备方向并隐藏状态栏
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
编码3——点击屏幕,开始游戏
// 点击屏幕,开始游戏 - (IBAction)tapScreen:(id)sender! {! // 赋予小球初始位置,Y方向是向下增加的,小球要向上运动 _ballVelocity = CGPointMake(0.0, -5.0);! ! // 定义游戏时钟 _gameTimer = [CADisplayLink displayLinkWithTarget:self selector:@selector(step:)];! // 将游戏时钟添加到主运行循环 [_gameTimer addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];! ! // 标记游戏开始 [_tapGesture setEnabled:NO];! }
// 点击手势 @property (strong, nonatomic) IBOutlet UITapGestureRecognizer *tapGesture;!

北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
要使用游戏时钟需要添加QuartzCore框架
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
新建项目1——选择项目模板
北京传智播客教育 www.itcast.cn
—高级软件人才实作培训专家!
新建项目2——设置项目属性
北京传智播客教育 www.itcast.cn