做了一周的智力开发小游戏,就简单说一点儿Xcode中开发2D游戏的东西吧。
Xcode中开发的2D游戏,目前大部分人使用的是cocos2d,其简单、高效、易于使用,更关键的是免费的,所以很是流行。有人称之为开发框架,也有人称之为游戏引擎,我倒是倾向于后一种说法,因为听起来更酷一些。但就实际使用来看,可以理解为一组库函数,就是一组对OpenGL部分片段的封装。既然是封装,就不必你看到电脑如何用点累积一条直线,如何切换几张图片来做一个动画之类的。下面就使用过的一点功能做个分享。
首先说明一下精灵(Sprites)的概念,它是可以作为单个处理的对象,可以移动,可以转动,也可以设置其位置之类的属性。可能有些难理解,简单比方一下:如果小游戏里有个人要去打怪,那么人就可以用精灵来表示,怪也可以用一个精灵来表示。你可以控制表示人的精灵从左移动到右,也可以让表示怪的精灵见了人就跑。当然,要在精灵上设置图片,不然你什么也看不到的。
举个创建精灵的例子:
NSString *picName = [NSString stringWithFormat:@"my_picture.png"];
CCSprite *bigSprite = [CCSprite spriteWithFile:picName];
bigSprite.position = ccp(size.width / 2, size.height * 3 / 4);
bigSprite.tag = TAG_MY_SPRITE;
接下来说一下图层(layer),图层的概念相信大部分人熟悉,用过photoshop和flash的人都有这个概念,就像是透明的玻璃纸,上面可以画画,摞起来时没画画的部分可以看到下面的一层。精灵实际上是在图层(layer)上活动的,一个简单的2D游戏只要一个Layer,加几个精灵在动基本就可以成形了。
CCLayer *layer = [CCLayer node];
[layeraddChild:bigSprite];
[layeraddChild: ……]; // 可以多次调用;
这样就完成了将精灵加到图层上的工作。 那么图层如何显示呢?
实际上我们还需要一个场景(scenes)。这个就可以理解成唱戏的一幕,根据字面也不难理解。就是精灵加到layer上,layer加到scene里。一般场景创建完后操作的次数很少,更多的时直接使用layer,所以有种很方便的方法来处理再layer类中实现创建场景的静态方法:
+(CCScene *) scene
{
// ‘scene’ is an autorelease object.
CCScene *scene = [CCScene node];
// ‘layer’ is an autorelease object.
CCLayer *layer = [CCLayer node];
// add layer as a child to scene
[scene addChild: layer];
// return the scene
return scene;
}
这样一来,只需要在使用该场景的地方直接调用:
[[CCDirector sharedDirector]replaceScene:[layer scene]]; 就OK了。
至于CCDirector是什么,暂时就不细说了,因为我也不是很明白。大概是控制器之类的东西,反正一般直接这么用就好了。sharedDirector相当于是获取一个全局共享CCDirector实例的方法,因为这东西只有一个。其他细节,以后再说了。
时常会看到游戏中又很多选项和按钮,这个部分在cocos2d中更是不在话下,不是简单,而是相当的简单。如下:
CCMenuItemImage *sub = [CCMenuItemImage itemFromNormalImage:@"subtract.png" selectedImage:@"subtract_press.png" target:self selector:@selector(buttonPressed:)];
sub.tag = TAG_SYMBOL_SUB;
sub.position = CGPointMake(50, 50);
CCMenu *menu = [CCMenu menuWithItems: sub, nil];
menu.tag = TAG_SYMBOL_ID;
menu.position = CGPointMake(160, 200);
[self addChild:menu];
就不用多说细节了,大体流程是用两张图片创建了一个按钮,将按钮加到菜单上,菜单显示到layer上。按钮按下时,触发动作buttonPressed
几个使用最多的元件已经简介了一下,剩下的任务是什么时候让一个精灵出现,然后怎么移动,怎么消失。比如:开始有人有怪,人走到怪的面前,怪就死亡消失了。这些东西需要把情景抽象成物理模型就可以了。
分享到:
相关推荐
在iOS和macOS开发中,Xcode是Apple官方提供的集成开发环境(IDE),用于编写Objective-C、Swift以及C++等语言的应用程序。然而,有时在使用Xcode进行项目开发时,可能会遇到“缺失库”的问题,例如“libstdc++”就是...
`.rtf`文件可能包含文本信息,如开发指南或者笔记。而`13.1`这个文件名可能代表的是Xcode 13.1的某个特定部分,比如更新日志或配置文件。 总的来说,Xcode 13.1不仅是一个开发工具,更是苹果生态系统开发者的强大...
### 基于Xcode4.3的iPhone编程学习笔记 #### 第一篇:HelloWorld编程 **概述** 本文档旨在介绍如何通过Xcode 4.3开发环境来进行iPhone应用程序的开发,特别是针对初学者的HelloWorld应用。文档将详细阐述从创建...
### 基于Xcode4.3的iPhone编程学习笔记:HelloWorld #### 第一篇:HelloWorld编程 本文档旨在帮助初学者理解如何通过Xcode 4.3环境搭建简单的iOS应用程序,具体以HelloWorld应用为例,从创建工程到运行程序进行...
xcode开发环境 ,包含文字笔记以及图片笔记,网络登录,服务器上传下载等均实现 供IOS初学者参考学习
这可能涉及到Xcode的Scheme设置,以及JUnit或XCResult等格式的测试报告。理解这些内容有助于提升开发流程的效率和代码质量。 总之,虽然懒人笔记项目不再更新,但它依然是一座丰富的学习宝库。通过深入研究其源代码...
xcode-material-theme 受... Slack App (#263238,#2e3a40,#80CBC4,#FFFFFF,#13191C,#ffffff,#50fa7b,#FF5555) Nylas N1 (感谢@jackiehluo ) Base16 (通过@ntpeters ) 熊笔记(通过@ r3volution1
这是Xcode提供的一种自动化测试工具,允许开发者编写测试用例来验证应用的用户界面是否按预期工作,例如检查按钮是否可以被点击,标签是否正确显示文本等。 综上所述,本篇“iOS史上最全的UI笔记”不仅涵盖了一些...
在SwiftUI中构建一个功能完善的笔记应用程序涉及到许多关键知识点,特别是涉及到数据存储时。本教程将专注于使用CoreData这一Apple的持久化框架来实现笔记的新增与查询功能。CoreData是一个强大的工具,它允许开发者...
在Swift编程语言中,开发iOS应用时,UI(用户界面)的设计是至关重要的,特别是当我们要仿造知名应用如...在实际项目中,还需要结合Xcode的Interface Builder或Swift的代码驱动方式进行界面构建,以达到最佳的效果。
请添加到 SDL2 Base.xctemplate/TemplateInfo.plist @ 底部,靠近 LIBRARY_SEARCH_PATHS :) 你会明白的:)安装要安装模板,只需将 Project Templates 文件夹复制到 ~/Library/Developer/Xcode/Templates笔记有 ...
这本书可能包含了基础到进阶的所有内容,包括如何构建实际应用、使用Swift进行iOS开发的流程、Swift UI设计、Xcode集成开发环境的使用、以及可能涵盖Swift的最新版本特性,如Swift 5或更高版本的新功能。 通过这些...
重命名 XCode 文件有关此文件的来源,请参阅。 我已经成功地使用了这个项目,但使用风险自负。 ##Step 1:将条目添加到“rename_classes.txt”文件中,其中每一行包含一个类名 from/to 对,由一个或多个选项卡分隔。...
This iPhone 6 is running iOS 10.3.1 (14E304), which may not be supported by this version of Xcode. Could not find Developer Disk Image 原因:Xcode没有更新版本,手机更新了新版本,Xcode里面没有手机...
本教程将重点讲解如何在Xcode环境下使用Objective-C语言来绘制饼图、柱状图和折线图。这些图表在各种应用中都有广泛的应用,如统计分析、数据分析、进度展示等。 首先,我们要引入UIKit框架,它是iOS开发的基础,...
【iPhone开发笔记】这篇笔记主要涉及的是在Windows环境下如何搭建iPhone应用开发的环境,以及使用Xcode进行初步的编程体验,特别是创建一个简单的"Hello World"应用。 首先,要搭建开发平台,你需要在Windows系统中...
Tulsi应该用来构建和安装应用程序的Bazel二进制文件(默认为bazel ) -d :将Tulsi应用程序安装到的文件夹(默认为$HOME/Applications ) -x :应该为Xcode版本Tulsi构建(默认为11.7 )笔记由Tulsi生成的Xcode项目...
【App上传全程笔记】 在iOS应用开发中,将应用程序上传到App Store是一项复杂而关键的任务。本文档详细记录了在Xcode 5.1版本下上传APP至App Store的完整流程,旨在帮助开发者避免遇到常见问题,提高上传效率。 1....
代码编写习惯上,笔记建议使用Xcode的代码预览功能,这样可以在编写代码的同时实时看到运行结果,帮助理解代码的输出和逻辑。 通过这些知识点,新手可以快速入门Swift语言,了解到它的基本语法、编程范式和开发工具...
### Xcode快捷键操作知识点详解 #### 一、引言 Xcode是苹果官方为开发者提供的集成开发环境(IDE),支持iOS、macOS、watchOS和tvOS的应用开发。掌握Xcode中的快捷键能极大提高开发效率。本文将详细介绍Xcode 6中的...