`
icheng
  • 浏览: 882112 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
文章分类
社区版块
存档分类
最新评论

xcode 笔记

 
阅读更多

做了一周的智力开发小游戏,就简单说一点儿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

几个使用最多的元件已经简介了一下,剩下的任务是什么时候让一个精灵出现,然后怎么移动,怎么消失。比如:开始有人有怪,人走到怪的面前,怪就死亡消失了。这些东西需要把情景抽象成物理模型就可以了。

分享到:
评论

相关推荐

    Xcode缺失库 libstdc++.zip

    在iOS和macOS开发中,Xcode是Apple官方提供的集成开发环境(IDE),用于编写Objective-C、Swift以及C++等语言的应用程序。然而,有时在使用Xcode进行项目开发时,可能会遇到“缺失库”的问题,例如“libstdc++”就是...

    Xcode 13.1.zip 真机包(可用).zip

    `.rtf`文件可能包含文本信息,如开发指南或者笔记。而`13.1`这个文件名可能代表的是Xcode 13.1的某个特定部分,比如更新日志或配置文件。 总的来说,Xcode 13.1不仅是一个开发工具,更是苹果生态系统开发者的强大...

    基于Xcode4.3的iPhone编程学习笔记

    ### 基于Xcode4.3的iPhone编程学习笔记 #### 第一篇:HelloWorld编程 **概述** 本文档旨在介绍如何通过Xcode 4.3开发环境来进行iPhone应用程序的开发,特别是针对初学者的HelloWorld应用。文档将详细阐述从创建...

    基于Xcode4.3的iPhone编程学习笔记 第一篇

    ### 基于Xcode4.3的iPhone编程学习笔记:HelloWorld #### 第一篇:HelloWorld编程 本文档旨在帮助初学者理解如何通过Xcode 4.3环境搭建简单的iOS应用程序,具体以HelloWorld应用为例,从创建工程到运行程序进行...

    IOS应用-云笔记源代码

    xcode开发环境 ,包含文字笔记以及图片笔记,网络登录,服务器上传下载等均实现 供IOS初学者参考学习

    懒人笔记 一个 iOS 开源笔记 App.zip

    这可能涉及到Xcode的Scheme设置,以及JUnit或XCResult等格式的测试报告。理解这些内容有助于提升开发流程的效率和代码质量。 总之,虽然懒人笔记项目不再更新,但它依然是一座丰富的学习宝库。通过深入研究其源代码...

    xcode-material-theme:Xcode的材质主题

    xcode-material-theme 受... Slack App (#263238,#2e3a40,#80CBC4,#FFFFFF,#13191C,#ffffff,#50fa7b,#FF5555) Nylas N1 (感谢@jackiehluo ) Base16 (通过@ntpeters ) 熊笔记(通过@ r3volution1

    iOS史上最全的UI笔记

    这是Xcode提供的一种自动化测试工具,允许开发者编写测试用例来验证应用的用户界面是否按预期工作,例如检查按钮是否可以被点击,标签是否正确显示文本等。 综上所述,本篇“iOS史上最全的UI笔记”不仅涵盖了一些...

    SwiftUI数据存储之做个笔记App 新增与查询(CoreData)

    在SwiftUI中构建一个功能完善的笔记应用程序涉及到许多关键知识点,特别是涉及到数据存储时。本教程将专注于使用CoreData这一Apple的持久化框架来实现笔记的新增与查询功能。CoreData是一个强大的工具,它允许开发者...

    swift-仿印象笔记首页ui表现

    在Swift编程语言中,开发iOS应用时,UI(用户界面)的设计是至关重要的,特别是当我们要仿造知名应用如...在实际项目中,还需要结合Xcode的Interface Builder或Swift的代码驱动方式进行界面构建,以达到最佳的效果。

    SDL2-Xcode-Template:用于 XCode 的 SDL2 Xcode 模板(4.5.2 测试)

    请添加到 SDL2 Base.xctemplate/TemplateInfo.plist @ 底部,靠近 LIBRARY_SEARCH_PATHS :) 你会明白的:)安装要安装模板,只需将 Project Templates 文件夹复制到 ~/Library/Developer/Xcode/Templates笔记有 ...

    Swift学习笔记与资料集合

    这本书可能包含了基础到进阶的所有内容,包括如何构建实际应用、使用Swift进行iOS开发的流程、Swift UI设计、Xcode集成开发环境的使用、以及可能涵盖Swift的最新版本特性,如Swift 5或更高版本的新功能。 通过这些...

    rename-xcode-files:Shell 脚本可轻松批量重命名 XCode 类、文件等

    重命名 XCode 文件有关此文件的来源,请参阅。 我已经成功地使用了这个项目,但使用风险自负。 ##Step 1:将条目添加到“rename_classes.txt”文件中,其中每一行包含一个类名 from/to 对,由一个或多个选项卡分隔。...

    IOS17.2真机包,描述有用法

    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下饼图、柱状图、折线图的绘制

    本教程将重点讲解如何在Xcode环境下使用Objective-C语言来绘制饼图、柱状图和折线图。这些图表在各种应用中都有广泛的应用,如统计分析、数据分析、进度展示等。 首先,我们要引入UIKit框架,它是iOS开发的基础,...

    iPhone开发笔记

    【iPhone开发笔记】这篇笔记主要涉及的是在Windows环境下如何搭建iPhone应用开发的环境,以及使用Xcode进行初步的编程体验,特别是创建一个简单的"Hello World"应用。 首先,要搭建开发平台,你需要在Windows系统中...

    tulsi:Bazel的Xcode项目生成器

    Tulsi应该用来构建和安装应用程序的Bazel二进制文件(默认为bazel ) -d :将Tulsi应用程序安装到的文件夹(默认为$HOME/Applications ) -x :应该为Xcode版本Tulsi构建(默认为11.7 )笔记由Tulsi生成的Xcode项目...

    App上传全程笔记

    【App上传全程笔记】 在iOS应用开发中,将应用程序上传到App Store是一项复杂而关键的任务。本文档详细记录了在Xcode 5.1版本下上传APP至App Store的完整流程,旨在帮助开发者避免遇到常见问题,提高上传效率。 1....

    Swift新手入门笔记

    代码编写习惯上,笔记建议使用Xcode的代码预览功能,这样可以在编写代码的同时实时看到运行结果,帮助理解代码的输出和逻辑。 通过这些知识点,新手可以快速入门Swift语言,了解到它的基本语法、编程范式和开发工具...

    xcode快捷键操作

    ### Xcode快捷键操作知识点详解 #### 一、引言 Xcode是苹果官方为开发者提供的集成开发环境(IDE),支持iOS、macOS、watchOS和tvOS的应用开发。掌握Xcode中的快捷键能极大提高开发效率。本文将详细介绍Xcode 6中的...

Global site tag (gtag.js) - Google Analytics