iphone游戏开发之cocos2d ( 十 )使用纹理图册,更方便生成精灵动画

Cocos2d-x-Lua示例项目HelloLua(1) 建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含。同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含。但是如果你仅仅是看一遍,而不去学习和深究。 阅读详情

holydancer原创,如需转载,请在显要位置注明:

转自holydancer的优快云专栏,专栏地址:http://blog.youkuaiyun.com/holydancer

在之前的文章七,我们自定义了一个精灵类,该精灵类的init初始化方法中我们使其生成一个动画,并repeatForever,当时我们并没有使用文章九介绍的纹理图册,而是在项目中添加了十几张png图片用作动画中的每一帧,所以我们在生成动画的时候会比较复杂,要转成2D纹理,再循环遍历添加frame数组,再生成动画;文章九我们介绍了纹理图册,将生成动画的每一帧的png图片都放到了同一张大的png中,并有一个plist文件来保存每一帧的CGRect范围等信息,所以我们就不再需要那么麻烦的方式了,cocos2d中有很好的封装类来进行这种操作;

下面来看代码 fishSprite.h:

#import <Foundation/Foundation.h>
#import "cocos2d.h"

@interface fishSprite : CCSprite {
    
}
+(id)fish;
@end

fishSprite.m:

#import "fishSprite.h"


@implementation fishSprite
+(id)fish
{
    return [[self alloc]initWithImage];
}

-(id)initWithImage
{
    if ((self=[super init])) {
        
        
        [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"fish.plist"];
        // 将所有fish.plist相关的精灵添加到缓存里;
        
        NSMutableArray *frameArray = [NSMutableArray array];
        
        for (int i = 1; i<15; i++) {
            [frameArray addObject:
             [[CCSpriteFrameCache sharedSpriteFrameCache ]spriteFrameByName:
              [NSString stringWithFormat:@"fish%d.png",i]]];
        }
        //将帧添加到数组里,用该数组生成动画;
        
        CCAnimation *fishAnimation = [CCAnimation animationWithSpriteFrames:frameArray delay:0.05f];
        
        CCAnimate *animate = [CCAnimate actionWithAnimation:fishAnimation];
        
       
        
               
             
        [self runAction:[CCRepeatForever actionWithAction:animate]];
        
        
        
        
        
        
        
        
        
        
        
//        NSMutableArray* frames = [NSMutableArray arrayWithCapacity:18];
//        //生成一个18的Array;
//        
//        for (int i = 1; i < 19; i++)
//        {
//            NSString *pngFile = [NSString stringWithFormat:@"fish%d.png",i];
//            
//            //利用已知图片名生成纹理;
//            CCTexture2D *texture = [[CCTextureCache sharedTextureCache]addImage:pngFile];
//            
//            //利用纹理生成组成动画的帧;
//            CCSpriteFrame *frame = [CCSpriteFrame frameWithTexture:texture rect:CGRectMake(0, 0, texture.contentSize.width, texture.contentSize.height)];
//            
//            //将生成的帧添加到数组中,共18个,之后我们要用这18个frame来构成动画;
//            [frames addObject:frame];
//            
//        }
//        
//        //利用帧数组生成一个动画,设定帧与帧之间的切换频率为0.05;
//        CCAnimation *animation =[CCAnimation animationWithSpriteFrames:frames delay:0.05];
//        
//        //用CCAnimate将生成的CCAnimation转成可以用精灵操作的动作action:
//        CCAnimate *animate = [CCAnimate actionWithAnimation:animation];
//        
//        //设置为repeat
//        CCRepeatForever *repeat = [CCRepeatForever actionWithAction:animate];
//        
//        //执行
//        
//       
//        
//        
//       
//        [self runAction:repeat];
//        //这样,如果该精灵一被实例化成功,就会动起来;

    }
    return self;
}
@end

在fishSprite.m中,下面注释的代码是之前我们没有使用纹理图册时一个纹理一个纹理添加的代码,另外需要注意的是,昨天我做纹理图册的时候没有注意,只添加了15张图片,完整的是18张,所以for循环中的个数大家知道就行了,纹理图册的循环次数是和plist里面添加的纹理图片的个数相对应的;

这样将fishSprite定义好后,我们在图层上添加时,只需要如下这样调用就能创建一个可以不停动画的精灵;

    //在层上添加精灵;
    fishSprite *fish = [fishSprite fish];
    fish.position = ccp(160,120);
    
    [self addChild:fish];

这只是纹理图册的一个简单的应用,更常见的是我们将其与CCSpriteBatchNode相结合,使图形的绘制更有效率,我们下次再介绍;


Cocos2D-X横版闯关游戏开发实战:从架构设计到多平台部署 游戏开发的核心在于构建一个稳定、可扩展的架构,并高效管理游戏中的各种实体与交互。其原理通常围绕游戏循环、实体组件系统(ECS)和有限状态机(FSM)等基础范式展开,这些技术能有效解耦逻辑、提升代码可维护性。在2D游戏开发中,物理碰撞检测、精灵动画与状态同步、以及资源与内存管理是决定游戏流畅度和手感的关键技术价值所在。特别是在横版闯关、动作冒险等应用场景中,这些技术直接关系到玩家的核心体验。本文将以一个完整的Cocos2D-X横版闯关游戏项目为例,深入剖析如何运用**物理碰撞**与**状态机**等关键技术,实 阅读详情

相关推荐

iPhone & iPad cocos2d游戏开发实战完整版

cocos2d-iPhone 是基于 Objective-C 的开源 2D 游戏引擎,专为 iOS 平台优化,支持 Swift 混编,以其轻量级架构和高性能渲染广泛应用于 iPhone 与 iPad 游戏开发。其核心采用场景驱动设计,通过CCSceneCCLayer和CCSprite构建节点树结构,配合动作系统实现流畅动画逻辑。

weixin_35705784的博客 848

iphone游戏开发之cocos2d ( 九 )使用Zwoptex创建纹理图册

holydancer原创,如需转载,请在显要位置注明: 转自holydancer的优快云专栏,专栏地址:http://blog.youkuaiyun.com/holydancer 我们之前文章提到的精灵(会摇尾游动的小鱼),是我们由一张一张的png图片组成帧构建的,但我们在很多项目里都会发现,他们的同类精灵素材都是保存在一张png上,比如这样 这样,如果需要每个精灵,就会从这张png里

holydancer的专栏 6018

打造20层魔塔游戏:cocos2d-iphone2.0实战指南

Cocos2D-iPhone允许开发者通过继承现有的动作类或者创建全新的动作类来自定义动作。// 自定义动作的类定义@end// 动作开始时的初始化代码// 动作更新时的代码// 动作停止时的清理代码return YES;@end// 使用自定义动作上述代码片段展示了如何通过继承ccAction来创建一个自定义动作类。这样的自定义动作可以在其内部实现复杂的逻辑,并以非侵入式的方式添加到游戏对象中。动作编程实践是游戏开发中的核心部分,它赋予了游戏以动态和生命。

weixin_42181686的博客 757

Cocos2D-iphone 开发之(7) 纹理 精灵 动画

首先介绍一下纹理的相关概念。 Image ----》 纹理 (Texture)  ---》内存  ---》GPU 游戏在运行过程中要把所有的图片都加载成GPU 可以执行的OpenGL ES纹理,注意图像填充到纹理中时,其长度和宽度都应该是2的N次方。 CCTexture2D 这是cocos2d中内置的一个纹理类,用于管理纹理的相关信息,它知道如何将自己绘制到屏幕上,我们可以通过这个类创建纹

小邓笔记 2301

矩阵管理:一人100账号霸屏小红书,保姆级教程经验技巧

同时,如果你的账号表现很正常,很OK,它也增加账号权重。手机环境:一机一卡一号是基本操作,如果你觉得设备成本高,你就要知道WIN的云真机,一键新机,一键随机设备参数,一键还原,一键安装应用,自带批量发布笔记,私信聚合,自带回复私信,一键养号等等,一人批量注册100个小红书账号真的很简单!从流量逻辑来分析,大家有没有发现,从账号粉丝数来看,小红书很难出现类似抖音上超千万粉丝量级的账号,几十万粉丝的博主已经是头部账号了,原因在于,抖音的流量分发机制是80%的流量集中在 20% 的头部账号而。

FDF432DF的博客 5145

stm32f407等芯片(HAL库)时钟频率修改(乱码)

其他片子及库文件未知、未验证,只是在使用stm32f407ZG配置串口打印的时候,出现乱码,就从以下几方面定位问题: 1. 确认串口GPIO相关配置; 2. 确认波特率等参数; 3. 确认时钟频率; 结果这次使用YH的串口打印程序在ZDYZ的开发板调试项目工程(有点另类...),做功能验证,就出现了以上问题,出于好奇开始调试,最终发现是时钟频率问题。 看到下图这个配置,因为ZDYZ开发板使用的是8MHz外部晶振(好像默认的是25MHz,如图2),所以他这里PLL_M是25,不是推荐值,感...

bulefire2009的博客 5516

iphone游戏开发之cocos2d( 十一 )使用CCSpriteBatchNode和纹理图册,提高精灵动画效率;

holydancer原创,如需转载,请在显要位置注明: 转自holydancer的优快云专栏,专栏地址:http://blog.youkuaiyun.com/holydancer 之前我们简单地介绍了一下自定义一个精灵,使其在初始化的时候即实现动画,并利用了纹理图册精简代码,今天我们着重介绍一下CCSpriteBatchNode,这是一个相当重要的概念,游戏开发不像应用,大量的动画图片,高速的计

holydancer的专栏 4474

亚马逊(Amazon ads)广告API申请步骤(已经更新完)

你如果是自己的店铺使用,就选择左边的、如果是授权的那种给别人用就选右边的。审核通过了才能进行下一步,我目前就是刚申请完,后续会持续更新!然后会调整到,下面的页面,选择Agency然后右上角点击创建。审核通过会发邮件到你的企业邮箱、时间大概是1-7天左右。输入对应的信息,点击提交审核,就可以开始申请了。1、广告平台跟卖家平台是分开的,这个概念要清楚。2、注册广告一定要用企业邮箱!回到首页,点击成为合作伙伴。注册了以后会跳转到广告。然后再点击加入合作伙伴。然后会弹出下面的页面。

阿泽的博客 5656

Cocos2d IPhone 游戏开发秘籍(一)

Cocos2d for iPhone 是一个强大但易于使用的 iPhone 2D 游戏框架。它是快速的、灵活的、免费的,并且经过 App Store 认证。超过 2500 款 App Store 游戏已经使用它,包括许多畅销游戏。您想将您的 Cocos2d 游戏开发技能提升到下一个层次,并在 Cocos2d 游戏设计中变得更加专业吗?Cocos2d for iPhone 1 游戏开发食谱将帮助您达到下一个层次。您在这里将找到超过 90 个食谱,解释从单个精灵的绘制到人工智能路径查找和高级网络的一切。强调完整

龙哥盟 837

保姆级教程:用SAP PS管理电梯/大型设备项目(ETO/ATO模式)从成本收集到开票结算

本文详细解析了SAP PS模块在ETO/ATO项目中的全流程成本管理实践,特别针对电梯/大型设备制造行业。从成本收集到开票结算,通过WBS元素、网络活动等核心架构设计,结合F-02、CJ20N等事务代码,实现设计、生产、物流及现场服务各阶段的精准成本控制,助力企业提升项目利润率与财务效率。

weixin_30444105的博客 457

【100%通过率】华为OD机试真题 Python 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

iphone游戏开发之cocos2d (七) 自定义精灵类,实现精灵动画CCAnimation

holydancer原创,如需转载,请在显要位置注明: 转自holydancer的优快云专栏,专栏地址:http://blog.youkuaiyun.com/holydancer 精灵是游戏的主角,我们在游戏中经常看到各种炫丽的精灵动画效果,之前我们提到精灵是由图片生成的,如果我们想要实现精灵的动画效果,比如捕鱼达人中摇尾游戏动的小鱼,就需要我们用很多张图片来生成一个个纹理,然后使纹理生成一

走在IOS的路上 682

基于深度学习的野生菌菇检测识别分类系统(YOLOv8 + UI界面 + 数据集)

随着深度学习技术的迅猛发展,计算机视觉领域的应用得到了广泛的关注。野生菌菇的检测与识别是一个复杂而又有趣的问题,涉及到物体检测、图像分类以及自然语言处理等技术。本文将介绍如何基于YOLOv8模型,结合自定义UI界面与数据集,构建一个高效且精确的野生菌菇检测识别分类系统。首先,我们将介绍YOLOv8的原理与特点,然后详细描述如何构建和训练野生菌菇识别模型,并介绍如何为该系统设计UI界面,最终形成一个完整的系统。本文内容包括代码实现、模型训练及数据集准备等,旨在为有类似需求的开发者提供参考和帮助。目录摘要目录。

YOLO 1547

《Cocos2d-x for iPhone游戏开发实例详解---1.2 绘制精灵》

《Cocos2d-x for iPhone游戏开发实例详解》系列博文,基于 人民邮电出版社 《Cocos2d for iPhone游戏开发实例详解》一书,使用Cocosd-x技术重写。示例代码中所引用的相关资料归于原书作者 Nathan Burba 以及出版社所有,本系列博文提供的C++版代码仅供学习使用。 ======================================

West Third Ring 1565

动态视频目标追踪系统:基于YOLOv11+DeepSORT的从入门到实战全流程指南

仅保留车辆类别(假设车辆类别ID为2)if det.class_index == 2: # 车辆类别ID通过本指南,你已完成从环境搭建数据准备模型训练到追踪系统与UI界面的全流程,搭建了一套完整的动态视频目标追踪系统。该系统在安防监控、交通管理等场景中具有实用价值,可实现目标的实时稳定追踪。未来,你可尝试结合多模态特征(如目标外观+运动特征)提升追踪鲁棒性,或探索轻量化模型部署(如TensorRT加速),让系统在边缘设备上也能高效运行。

LXY_LOVE36的博客 142

LPDDR6 tdbR2dbR_L cross row技术探讨

LPDDR6 tdbR2dbR_L cross row技术探讨

zilan23的博客 47

cocos2d 游戏开发实战

文章转自:http://uliweb.clkg.org/tutorial/read/40 6   cocos2d 游戏开发实战 6.1   创建cocos2d项目 6.2   cocos2d v3 "hello world" 6.2.1   显示一个飞船  6.3   精灵  6.4   开始 space viking 之旅  6.4.1   增加 sneakyinput  6

Cocos2d-x手游开发 2585

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Tiny Wings重制版项目解析:如何用Cocos2D复刻经典iPhone游戏

**Tiny Wings重制版**是一款基于Cocos2D游戏引擎开发的经典iPhone游戏复刻项目,它完整再现了原版Tiny Wings的核心玩法和物理特性。这个开源项目为游戏开发爱好者提供了学习Cocos2D框架和2D物理引擎Box2D的绝佳案例,展示了如何实现流畅的2D游戏物理效果和动态地形生成系统。🎮 ## ✨ 项目概述与核心功能 **Tiny Wings重制版**项目完美复刻了原版

gitblog_00806的博客 365

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

cocos2d-iphone v3官方介绍

翻译的不好,凑合着看吧。 cocos2d-iphone是一个可以构建2d游戏和图形交互程序的框架,它运行在iPod Touch, iPhone, iPad and Mac OS X等操作系统或设备上。它基于cocos2d 设计,但是通过使用objective-c取代了Python。cocos2d-iphone的特点 快免费简单易用社区支持 如何安装: 1.先在githu

yesjava的专栏 1657

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

(译) Cocos2d_for_iPhone_1_Game_Development_Cookbook:1.1绘制精灵

(译)Cocos2d_for_iPhone_1_Game_Development_Cookbook 著作权声明:本文由iam126 翻译,欢迎转载分享。 请尊重作者劳动,转载时保留该声 明和作者博客链接,谢谢! 相关程序代码下载:http://download.youkuaiyun.com/detail/iam126/4068610 或搜索“Cocos2d_for_iPhone_1_G

iam126的专栏 1818

Cocos2d-x 3.X游戏开发:从入门到跨平台发布实战指南

游戏引擎是游戏开发的核心框架,它封装了图形渲染、物理模拟、音频处理等底层技术,通过提供高层API提升开发效率。其工作原理在于将游戏逻辑、资源管理与平台抽象层解耦,实现一次编码多端部署的技术价值。在移动游戏、独立游戏开发等应用场景中,跨平台能力与性能表现尤为关键。本文聚焦于Cocos2d-x 3.X这一经典开源框架,深入探讨其环境搭建、核心架构、资源管理及跨平台发布全流程,为开发者提供从入门到实战的系统指引,助力高效实现app发布与跨平台游戏开发需求。

weixin_34121282的博客 369

COCOS2D 学习教程

1. 在cocos2d里面如何使用Texture Packer和像素格式来优化spritesheet http://blog.devdiv.com/( ... �spritesheet.html 2. 如何使用cocos2d来做一个简单的iphone游戏教程(第一部分)  http://blog.devdiv.com/( ... 5�程1.html 3. 如何使用cocos2d开发

volcan1987的专栏 2026

《Cocos2d-x for iPhone游戏开发实例详解系列博文》版权声明及目录

《Cocos2d-x for iPhone游戏开发实例详解》系列博文,基于 人民邮电出版社 《Cocos2d for iPhone游戏开发实例详解》一书,使用Cocosd-x技术重写。 示例代码中所引用的相关资料归于原书作者 Nathan Burba 以及出版社所有,本系列博文提供的C++版代码仅供学习使用。 开发环境: Cocos2d-x  cocos2d-2.1rc0-x-2.1.2-h

West Third Ring 1256

iphone开发每日一练【2011-10-11】

为啥gamecenter在沙箱里好使,在正式环境中分数和成就都提交不了呢???? 关于cocos2D 音效失真的问题 CCGameBox问题 游戏中人物的动画效果是怎么做出来的? 双向链表 for OBJC 在cocos2d中如何才能画直线(非renderTexture

师以长技以制夷 684

(译)Cocos2d_for_iPhone_1_Game_Development_Cookbook:1.12使用层来交换调色板

(译)Cocos2d_for_iPhone_1_Game_Development_Cookbook 著作权声明:本文由iam126 翻译,欢迎转载分享。 请尊重作者劳动,转载时保留该声 明和作者博客链接,谢谢! 相关程序代码下载:http://download.youkuaiyun.com/detail/iam126/4068610 或搜索“Cocos2d_for_iPhone_1_G

iam126的专栏 1647
上一篇: iphone游戏开发之cocos2d ( 九 )使用Zwoptex创建纹理图册
下一篇: iphone游戏开发之cocos2d( 十一 )使用CCSpriteBatchNode和纹理图册,提高精灵动画效率;
holydancer
博客等级 码龄15年 474粉丝 59原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值