cocoa touch-创建多个相同的CCSprites

问题描述

创建多个相同的CCSprites

有么有方法能快速的创建任意数量的相同CCSprites?

就为了后来删除,然后只需要一个标签引用他们

i.e.在游戏里面:

- (void)displayOneLife
{
    CGPoint positionOne = ccp(90, 450);

    CCSprite *life1 = [CCSprite spriteWithFile:@"life.png"];
    [life1 setPosition:positionOne];
    [life1 setScale:0.5f];
    [self addChild:life1 z:5 tag:1];
}

- (void)displayTwoLives
{
    CGPoint positionOne = ccp(90, 450);
    CGPoint positionTwo = ccp(105, 450);

    CCSprite *life1 = [CCSprite spriteWithFile:@"life.png"];
    CCSprite *life2 = [CCSprite spriteWithFile:@"life.png"];

    [life1 setScale:0.5f];
    [life2 setScale:0.5f];

    [life1 setPosition:positionOne];
    [life2 setPosition:positionTwo];

    [self addChild:life1 z:5 tag:1];
    [self addChild:life2 z:5 tag:2];
}

- (void)displayThreeLives
{
    CGPoint positionOne = ccp(90, 450);
    CGPoint positionTwo = ccp(105, 450);
    CGPoint positionThree = ccp(120, 450);

    CCSprite *life1 = [CCSprite spriteWithFile:@"life.png"];
    CCSprite *life2 = [CCSprite spriteWithFile:@"life.png"];
    CCSprite *life3 = [CCSprite spriteWithFile:@"life.png"];

    [life1 setPosition:positionOne];
    [life2 setPosition:positionTwo];
    [life3 setPosition:positionThree];

    [life1 setScale:0.5f];
    [life2 setScale:0.5f];
    [life3 setScale:0.5f];

    [self addChild:life1 z:5 tag:1];
    [self addChild:life2 z:5 tag:2];
    [self addChild:life3 z:5 tag:3];
}

解决方案

创建CCTexture2D,然后初始化全部sprite。
通过编程实现:

- (void)displayLifes:(int) nrOfLifes
{
    CGPoint position = ccp(90, 450);
    CCTexture2D *texture = [[[CCTexture2D alloc] initWithImage:[UIImage imageNamed:@"life.png"]]autorelease];

    for(int i = 1 ; i <= nrOfLifes ; i++)
    {
         CCSprite *life = [CCSprite spriteWithTexture:texture];
         [life setPosition:position];
         [life setScale:0.5f];
         [self addChild:life z:5 tag:i];

         position.x += 15;
    }
}
时间: 2024-09-20 06:51:23

cocoa touch-创建多个相同的CCSprites的相关文章

设计模式中的迭代器模式在Cocoa Touch框架中的使用_IOS

基本理解迭代器模式(Iterrator):提供一个方法顺序访问一个聚合对象中的各个元素,而又不暴露该元素的内部表示. 当你访问一个聚合对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式. 你需要对聚集有多种方式遍历时,可以考虑用迭代器模式. 迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据. 迭代器定义了一个用于访问集合元素并记录当前元素的接口. 不同的迭代器可以执行不同的迭代策略.外

《从零开始学Swift》学习笔记(Day 63)——Cocoa Touch设计模式及应用之单例模式

原创文章,欢迎转载.转载请注明:关东升的博客   什么是设计模式.设计模式是在特定场景下对特定问题的解决方案,这些解决方案是经过反复论证和测试总结出来的.实际上,除了软件设计,设计模式也被广泛应用于其他领域,比如UI设计和建筑设计等. 下面来介绍Cocoa Touch框架中的设计模式中的单例模式.   单例模式 单例模式的作用是解决"应用中只有一个实例"的一类问题.在Cocoa Touch框架中,有UIApplication.NSUserDefaults和NSNotificationC

《从零开始学Swift》学习笔记(Day67)——Cocoa Touch设计模式及应用之MVC模式

原创文章,欢迎转载.转载请注明:关东升的博客   MVC(Model-View-Controller,模型-视图-控制器)模式是相当古老的设计模式之一,它最早出现在Smalltalk语言中.现在,很多计算机语言和架构都采用了MVC模式.   MVC模式概述 MVC模式是一种复合设计模式,由 "观察者"(Observer)模式."策略"(Strategy)模式和"合成"(Composite)模式等组成.MVC模式由3个部分组成,如图所示,这3个部分

《从零开始学Swift》学习笔记(Day 65)——Cocoa Touch设计模式及应用之选择器

原创文章,欢迎转载.转载请注明:关东升的博客   实现目标与动作关联使用UIControl类addTarget(_:action:forControlEvents:)方法,示例代码如下: button.addTarget(self, action: "onClick:", forControlEvents: UIControlEvents.TouchUpInside) 其中的action参数"onClick:"事实上就是选择器(Selector).   问题提出 任

《企业级ios应用开发实战》一2.3 Cocoa Touch 框架简介

2.3 Cocoa Touch 框架简介 Cocoa Touch框架是进行iPhone应用程序开发工作的主要框架,主要包括UIKit和Foundation(NS)框架,这些库统称为Cocoa Touch框架.该框架完全是面向对象的,它是Cocoa框架的子集. 注意:Cocoa框架早先是用于Mac OS X上的一个面向对象的应用程序快速开发(Rapid Application Development,RAD)框架,包含了Foundation和App Kit框架,可用于开发Mac OS X系统的应用

obj-c编程14:Cocoa和Cocoa Touch简介

    这一篇篇幅相对少很多,几乎没有代码,全部都要靠本猫的语言组织能力啊!Cocoa框架在前面讲解F库时曾简单做过介绍,现在再具体说一说喽.各位童鞋是否已经发现鸟,前面所写的所有代码都是基于终端(或称之为console控制台)模式,我们有时希望编写窗口下的obj-c程序哦.Cocoa是一种为os x应用程序提供丰富用户体验的框架,实际上由3个框架组成: 1 基本类Foundation框架 2 便于数据库存储和管理数据的Core Data框架 3 提供窗口.视图.文档以及和多用户界面相关类的Ap

WWDC 2012 Session笔记——200 What is new in Cocoa Touch

这是博主的WWDC2012笔记系列中的一篇,完整的笔记列表可以参看这里.如果您是首次来到本站,也许您会有兴趣通过RSS,或者通过页面下方的邮件订阅的方式订阅本站. 之前写过一篇iOS6 SDK新内容的总览,从这篇开始,将对WWDC 2012的我个人比较感兴趣的Session进行一些笔记,和之后的笔记一起应该可以形成一个比较完整的WWDC 2012 Session部分的个人记录. 因为WWDC的内容可谓众多,我自觉不太可能看完所有Session(其实也没有这个必要..),所以对于内容覆盖上可能有所

我们把 iOS 的 Cocoa Touch 移植到了 Android

这是我最近一年在做的项目,用我们老大的话说,就是"能不能弄一个东西,让我的 iOS 程序一行代码不用改,却能运行在 Android 上".为了这个目标,我们最后弄出了个这样的东西. 说起来我们之所以要做这个东西也是蛮有趣的.事情的起因,我们需要把一个为 iOS 写的排版引擎移植到 Android 上.但我们觉得这个排版引擎实在是太复杂了,而且把一个写好的 iOS 程序重新写个 Android 版本很无趣,那就变成了跟抄作业一样把 Objective-C 代码换成 Java 代码的行为了

《从零开始学Swift》学习笔记(Day 64)——Cocoa Touch设计模式及应用之目标与动作

原创文章,欢迎转载.转载请注明:关东升的博客   目标(Target)与动作(Action)是iOS和OS X应用开发的中事件处理机制.   问题提出 如图所示是一个ButtonLabelSample案例设计原型图,其中包含一个标签和一个按钮,当点击按钮的时候,标签文本会从初始的Label替换为HelloWorld.   ButtonLabelSample案例首先要解决的问题是:按钮点击事件后有谁负责响应事件?谁进行事件处理?要答这个问题,可以打开ButtonLabelSample案例故事板文件