iPhone游戏编程教程一步步教你游戏开发

简介:

这是此系列教程的第一部分,我将从最基本开始教大家怎样编写一个iPhone游戏。众所周知,OpenGL和Quartz的学习不是那么简单的。本教程将简化开发的过程而不会使用这两种技术。我们将使用UIImageView作为图像部分。

  在此教程系列中,我将教大家有关iPhone游戏编程的方方面面。游戏包括图形,音效,游戏逻辑以及简单的电脑AI。

  我们将编写的游戏叫iTennis。它实际上是一个以网球为主题的乒乓游戏。它将遵循乒乓游戏的所有规则和逻辑。我选择其作为第一个游戏教程是不需要任何特殊动画效果的。如果大家有兴趣,我将在以后的系列中更加深入,介绍一个更加复杂的游戏。下面是游戏的截图:

  screenshot_02

  下面是项目需要的图像。按图标下载压缩的图像文件。

  

  打开Xcode建立一个View Based应用程序,取名为iTennis。

  

  加压下载的图像文件,将其拖放到项目下的Resources(资源)文件夹。完成后,资源文件夹应该像这样。

  

  现在可以开始编写代码了。为了在代码中与我们的图像互动,我们首先需要建立一个IBOutlet链接。我们还需要加入一些游戏变量以便在可以在教程中使用。打开iTennisVeiwController.h加入以下代码:

  screenshot_05

  如你所见,我们有好些IBOutlet。这是因为我们需要与许多对象互动。暂时先忽略ballVelocity和gameState变量。现在,我们可以开始建立我们的用户界面了。双击iTennisViewController.xib在Interface Builder中打开。下面是一个视频介绍怎样建立界面。

  现在你已经做好了链接,关闭Interface Builder返回Xcode。我们需要设定一些常量。你可以硬编码这些数值,但是将它们定为常量是你在调整游戏架构时更易于改变。打开iTennisViewController.m,加入下列代码。

  screenshot_06

  我们来解释下这些常量的意义。前面两个是游戏的状态。我们用它们来确定屏幕上将显示什么。游戏是暂停?是在运行?还是处于标题画面?以后我们会加入更多的状态。下面两个变量是球运行的速度。由于游戏是2D的,只需要X和Y的速度作为它们的速度矢量。再下面一行(注:应该是@synthesize这一行)是用来自动产生getter和setter方法的变量。

  现在,我们在viewDidLoad方法中加入下列代码:

  screenshot_07

  首先,我们将游戏状态设定为暂停状态。这样在视图被加载后,游戏不会立即开始。接着,我们建立球速向量。调整前面定义的常量,可以使球运行更快或更慢些。最后,创建一个NSTimer的实例。第一个参数是时阶。在此,我们设置为0.05秒。调整此参数可以改变整个游戏的速度。下面一个参数是目标。此参数告诉定时器回调的位置。再下面的参数就是回调的名称了。简单地说,就是通知定时器每隔0.05秒调用一次self.gameLoop。在这里我们不用管userInfo参数。最后一个参数是告诉定时器重复执行。

  初始化后,我们来创建游戏循环。加入下面代码:

  screenshot_08

  首先我们检查游戏是否处于运行状态(暂停状态时,不需要移动球)。如果游戏没有运行,tabToBegin标签将会被显示出来。我们先前定义的这个标签只是通知用户触动屏幕开始。如果游戏真正运行,我们会根据其速度向量来移动球。下面几行是边界检查。如果球到达屏幕边界,我们就会将其速度方向,这样球就会“来回弹跳”。没有这些代码,球就会飞出屏幕了。

  最后我们还要加入的代码是touchesBegan方法。此方法是在游戏暂停时用来启动游戏的。加入下面代码:

  screenshot_09

  这段代码首先检查游戏是否处于暂停状态。如果是,则隐藏tapToBegin标签并设定游戏为运行状态。游戏将启动。以后,我们将会在此函数中写入玩家球拍控制。

  最后,作为一个好的iPhone开发者,我们需要清除分配的资源。在dealloc方法中加入下面代码。

  screenshot_10

  游戏开发教程系列第一部分到此结束。有什么问题,请留言。








本文转自 wws5201985 51CTO博客,原文链接:http://blog.51cto.com/wws5201985/786469,如需转载请自行联系原作者
目录
相关文章
|
数据安全/隐私保护 网络虚拟化 iOS开发
国内iPhone不拔卡使用Tik Tok教程
本站已经更换了新主题,新主题与部分插件和代码有冲突,正在慢慢修复当中,如果你访问当前页面出现了异常或缺失,有疑问的可以直接 点此处联系我 。
3760 0
|
开发工具 iOS开发
iOS 逆向编程(十一)iPhone 终端支持中文输入与vim命令(编辑文件)
iOS 逆向编程(十一)iPhone 终端支持中文输入与vim命令(编辑文件)
109 0
|
网络协议 Shell 网络安全
iOS 逆向编程(九 - 1)通过 USB 连接登录 iPhone 以及端口映射
iOS 逆向编程(九 - 1)通过 USB 连接登录 iPhone 以及端口映射
320 0
|
存储 安全 网络协议
iOS 逆向编程(五)通过 (OpenSSH) Wifi 远程连接登录 iPhone
iOS 逆向编程(五)通过 (OpenSSH) Wifi 远程连接登录 iPhone
386 0
|
iOS开发
苹果怎么查看UDID iPhone/iPad查看UDID教程【详解】
苹果怎么查看UDID iPhone/iPad查看UDID教程【详解
|
iOS开发
苹果怎么查看 UDID iPhone/iPad 查看 UDID 教程【详解】
在开发 iPhone 和 iPad 软件的时候,要使用 UDID 来做真机测试,那么如何查看 iPhone 或者 iPad 的 UDID 呢?下面介绍三种最简单的查看 UDID 的方法,供大家参考!下面就详情来看看。
|
存储 算法 C++
苹果怎么查看UDID iPhone/iPad查看UDID教程【详解】
苹果怎么查看UDID iPhone/iPad查看UDID教程【详解】
|
数据采集 Web App开发 前端开发
windows、mac、iphone微信多开、防撤回功能2022-09-07最新教程
本文讲的是vx多开、防撤回两个功能,包含windows系统、mac系统还有iphone。iphone不支持ios16版本。因为我会不断的更新,如果发现版本不一样,不需要担心,教程还是一样的,只是更新了包而已。 作者:安哥说前端 https://www.bilibili.com/read/cv18482372 出处:bilibili
1906 0
|
数据安全/隐私保护 iOS开发
小技巧 - iPhone手机(IOS系统)玩游戏时关闭所有消息提醒
小技巧 - iPhone手机(IOS系统)玩游戏时关闭所有消息提醒
900 0
小技巧 - iPhone手机(IOS系统)玩游戏时关闭所有消息提醒
|
5G iOS开发
iPhone 12打3D游戏续航尿崩?
近日,外媒PhoneArena对iPhone 12的多个功能进行了续航测试,结果有些令人吃惊。在iPhone 12上玩多种3D游戏,例如:《刺激战场》、《我的世界》等,发热非常严重,掉电速度也非常快,甚至可以用尿崩来形容,续航时间只有3小时,相比之下iPhone 11则是7个半小时,高出一倍还多。
150 0
iPhone 12打3D游戏续航尿崩?