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];

[layer addChild: bigSprite];

[layer addChild: ……]; // 可以多次调用;

这样就完成了将精灵加到图层上的工作。 那么图层如何显示呢?

实际上我们还需要一个场景(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

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


下面是俺的作品,希望大家去给评价评价:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Walker-cheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值