《Cocos2D权威指南》——第2章 你的第一款iPhone游戏—垂直射击游戏 2.1 准备工作

简介: 本节书摘来自华章计算机《Cocos2D权威指南》一书中的第2章,第2.1节,作者:王寒,屈光辉,周雪彬著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第2章 你的第一款iPhone游戏—垂直射击游戏

本章我们将以一个垂直射击游戏为题材,带领大家动手制作一个简单的游戏,主要目的是让大家对Cocos2D开发游戏有一个感性的认识,同时体验Cocos2D的强大以及易用性。之后的章节将引入更多的游戏元素,逐步完善此游戏。

2.1 准备工作

作为开发者,首先需要有一台iOS设备,iPhone、iPod Touch或者iPad都可以;其次要拥有开发者账号,按照第1章介绍的方法下载并安装开发者证书,这样才可以把游戏编译运行到真机上。
为什么非要真机呢?接下来向大家展示的游戏必须有真机才能测试,游戏将使用加速计控制飞机的飞行,而在模拟器里是无法处理加速计事件的。
打开Xcode,使用Cocos2D iOS模板新建一个项目,将其命名为VerticalShootingGame,单击“Next”;选择一个目录单击“Create”。编译运行将看到经典的Hello World画面。
本节我们将构建一个垂直射击游戏。模拟器的默认方向是横向(Landscape),因此需要把设备方向发成垂直方向的,同时清除模板内容,为后面的工作做准备。
步骤1 打开AppDelegate.m,找到如代码清单2-1所示的代码。
代码清单2-1 打开AppDelegate.m的代码

// Supported orientations: Landscape. Customize it for your own needs
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
   returnUIInterfaceOrientationIsLandscape(interfaceOrientation);
}

找到以下语句:

returnUIInterfaceOrientationIsLandscape(interfaceOrientation)

改成以下语句即可:

returnUIInterfaceOrientationIsPortrait(interfaceOrientation)

这时编译运行结果如图2-1所示。
步骤2 清除这个Hello World场景,同时去掉GameCenter的Achievement和Leaderboard。

image

1)打开HelloWorldLayer.h,使用代码清单2-2所示代码替换。
代码清单2-2 替换HelloWorldLayer.h代码

// When you import this file, you import all the Cocos2D classes
#import "Cocos2D.h"
// HelloWorldLayer
@interface HelloWorldLayer : CCLayer 
{
}
// returns a CCScene that contains the HelloWorldLayer as the only child
+(CCScene *) scene;
@end

以上操作主要是删除对GameKit头文件的引用,同时移除GKAchievementViewControllerDelegate和GKLeaderboardViewControllerDelegate两个代理协议,因为在本章内容中暂时不会涉及Game Gener。
2)打开HelloWorldLayer.m,把init方法用代码清单2-3所示代码替换掉。
代码清单2-3 替换init方法代码

// on "init" you need to initialize your instance
-(id) init
{
   // always call "super" init
   // Apple recommends to re-assign "self" with the "super's" return value
   if( (self=[super init]) ) {
   }
   return self;
}

3)把GameKit相关的代理方法删除,找到代码清单2-4所示代码直接删除。
代码清单2-4 GameKit相关代理方法的待删除代码

#pragma mark GameKit delegate
-(void) achievementViewControllerDidFinish:(GKAchievementViewController *)viewController
{
   AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];
   [[appnavController] dismissModalViewControllerAnimated:YES];
}

   -(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController
{
   AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];
   [[appnavController] dismissModalViewControllerAnimated:YES];
}

编译运行得到如图2-2所示结果。

image

好,空空如也,没关系,这正是下一个游戏的伟大起点。

相关文章
|
数据安全/隐私保护 iOS开发
小技巧 - iPhone手机(IOS系统)玩游戏时关闭所有消息提醒
小技巧 - iPhone手机(IOS系统)玩游戏时关闭所有消息提醒
887 0
小技巧 - iPhone手机(IOS系统)玩游戏时关闭所有消息提醒
|
5G iOS开发
iPhone 12打3D游戏续航尿崩?
近日,外媒PhoneArena对iPhone 12的多个功能进行了续航测试,结果有些令人吃惊。在iPhone 12上玩多种3D游戏,例如:《刺激战场》、《我的世界》等,发热非常严重,掉电速度也非常快,甚至可以用尿崩来形容,续航时间只有3小时,相比之下iPhone 11则是7个半小时,高出一倍还多。
142 0
iPhone 12打3D游戏续航尿崩?
|
BI 开发工具 Android开发
和iPhone玩家对战吧,Google Play游戏服务将支持iOS平台
Google今天在游戏开发者大会上宣布了若干与Google Play游戏服务的相关更新,其中和游戏玩家关系最大的也许就是Google Play Game Services将支持iOS平台,这也就意味着回合制和实时多人游戏将同时支持Android和iOS,以后这两个平台的玩家也就可以互动了。显然,这对于游戏开放商也是个好消息——让原本被割裂的用户参与到同场竞技中来。
314 0
和iPhone玩家对战吧,Google Play游戏服务将支持iOS平台
|
Android开发 iOS开发 C++
盘点 2011 年五款开源的 iPhone/Android 游戏
移动设备上的游戏现在势头很猛,本文盘点了5款优秀的开源智能手机游戏,开发者可以拿来学习参考哦!   1. 九宫格数独游戏 OpenSudoku是一个简单的九宫格数独游戏。从代码中可以学习到如何在视图中显示表格数据,以及如何和一个网站交互等技术。
878 0
|
9天前
|
编解码 测试技术 iOS开发
iPhone 屏幕尺寸和开发适配
【10月更文挑战第23天】iPhone 的屏幕尺寸变化给开发者带来了一定的挑战,但也为创新提供了机遇。通过深入了解不同屏幕尺寸的特点,遵循适配原则和策略,运用合适的技巧和方法,我们能够为用户提供在不同 iPhone 机型上都具有良好体验的应用。在未来,随着技术的不断进步,我们还需要持续学习和适应,以满足用户对优质应用体验的不断追求。
|
9天前
|
编解码 iOS开发 UED
响应式设计在 iPhone 开发适配中的具体应用
【10月更文挑战第23天】响应式设计在 iPhone 开发适配中扮演着至关重要的角色,它能够帮助我们打造出适应不同屏幕尺寸和用户需求的高质量应用。通过合理运用响应式设计的原则和方法,我们可以在提供良好用户体验的同时,提高开发效率和应用的可维护性。
|
3月前
|
数据采集 iOS开发 Python
Chatgpt教你开发iPhone风格计算器,Python代码实现
Chatgpt教你开发iPhone风格计算器,Python代码实现