《Cocos2d 跨平台游戏开发指南(第2版)》一1.7 创建自定义精灵类

简介:

本节书摘来异步社区《Cocos2d 跨平台游戏开发指南(第2版)》一书中的第1章,第1.7节,作者: 【印度】Siddharth Shekar(谢卡)译者: 武传海 责编: 胡俊英,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.7 创建自定义精灵类

前面我们只是考虑如何把一个精灵添加到场景中,然而,以后可能想要一个单独的精灵类,以便你能为它添加自己的行为。在这一部分,我们将讨论如何通过扩展基本的CCSprite类来创建自定义的精灵类。

1.7.1 准备工作

让我们一起看一下如何创建一个自定义精灵类,它拥有自己的运动,并且更新函数。

为此,我们要先创建新文件。

1.在菜单栏中,依次选择File-New-File,在iOS的Source下,选择Cocoa Touch Class,单击Next按钮,如图1-19所示。

1_19

2.接着,我们输入类名,在Subclass of中选择CCSprite,选择Language为Objective-C,单击Next按钮,如图1-20所示。


1_20

3.然后,如图1-21所示,单击Create按钮,将文件添加到项目中。


1_21

1.7.2 操作步骤

新建好文件之后,让我们对它们做一些改动,使其可以使用字符串作为文件名,且从文件创建精灵。

在Hero.h文件中,做如下修改:

#import "CCSprite.h"

@interface Hero :CCSprite{

  CGSizewinSize;
}

-(id)initWithFilename:(NSString *) filename;

@end

接着,修改Hero.m文件,如下:

#import "Hero.h"

@implementation Hero

-(id)initWithFilename:(NSString *)filename
{
  if (self = [super initWithImageNamed:filename]) {

  }

  return self;
}
@end

1.7.3 工作原理

为了创建自定义精灵类的实例,打开MainScene.h文件,导入Hero.h文件,创建Hero类的一个新实例,命名为hero,代码如下:

#import "Hero.h"

@interface MainScene :CCNode{

  CGSizewinSize;
  Hero* hero;

}

在MainScene.m文件中,在rtSprite代码之下,添加如下代码:

hero = [[Hero alloc]initWithFilename:@"hero.png"];
hero.position = CGPointMake(center.x - winSize.width/4,
winSize.height/2);
[selfaddChild:hero];

在上述代码中,我们使用hero.png文件初始化hero。在Resources文件夹中,我们必须把hero-ipad.png和hero-ipadhd.png文件导入到项目中,导入方式与前面添加Bg图像文件时一样。

接着,如图1-22所示,我们把hero放置到屏幕宽度的左四分之一处,位于屏幕中心的左侧,并且在屏幕高度的二分之一处。最后,把hero对象添加到场景中。


1_21

接下来,让我们一起看一下如何使hero动起来。

相关文章
|
Python Windows Linux
配置国内PIP源方法
python开发者都知道,当我们pip install安装扩展库的时候,经常遇到安装失败(超时)等,有时候是因为国外镜像被屏蔽了,带来不少麻烦, 随着国内python开发的增多,越来越多企业都开放了自己的pip源: #阿里云 http://mirrors.
11221 1
|
10月前
|
Ubuntu Shell Linux
环境变量简介
环境变量简介
|
自然语言处理
ChatGPT提问技巧——控制温度和TOP-P样本
ChatGPT提问技巧——控制温度和TOP-P样本
332 4
|
机器学习/深度学习 人工智能 监控
AI与未来医疗:重塑健康产业的双刃剑随着科技的迅猛发展,人工智能(AI)正以前所未有的速度融入各行各业,其中医疗领域作为关系到人类生命健康的重要行业,自然也成为AI应用的焦点之一。本文将探讨AI在未来医疗中的潜力与挑战,分析其对健康产业可能带来的革命性变化。
在医疗领域,人工智能不仅仅是一种技术革新,更是一场关乎生死存亡的革命。从诊断到治疗,从后台数据分析到前端临床应用,AI正在全方位地改变传统医疗模式。然而,任何技术的发展都有其两面性,AI也不例外。本文通过深入分析,揭示AI在医疗领域的巨大潜力及其潜在风险,帮助读者更好地理解这一前沿技术对未来健康产业的影响。
|
机器学习/深度学习 数据可视化 数据挖掘
Jupyter Notebook: 数据科学的最佳实践
【8月更文第29天】Jupyter Notebook 是一个交互式的计算环境,非常适合进行数据分析、可视化和机器学习任务。它不仅支持多种编程语言(如 Python、R 和 Julia),还能将文本、代码、图表和多媒体元素融合在一起,非常适合编写可重复使用的分析报告。
817 1
|
缓存 JavaScript 前端开发
【性能革命!】Vue 3事件监听缓存的奥秘 —— 揭开前端优化的神秘面纱,让应用性能飙升的秘密武器!
【8月更文挑战第7天】随着前端应用日益复杂,性能优化变得至关重要。Vue 3 通过引入事件监听缓存等新特性提升了应用性能。此特性避免了重复注册相同的事件监听器,减少了资源浪费和潜在的内存泄漏问题。在 Vue 3 中,事件监听器首次渲染时注册,并在后续渲染中重用,除非组件状态变更或手动更新。通过一个示例组件展示了如何利用该特性优化性能,包括使用 `watchEffect` 或 `watch` 在状态变化时重新注册监听器。这一机制降低了浏览器负担,减少了内存占用,提高了应用响应速度,尤其对大型应用效果显著。合理运用事件监听缓存能够构建出更加流畅的应用体验。
714 3
|
数据采集 数据可视化 安全
台风灾害数据分析与可视化:利用Java和数据科学技术解读台风趋势
台风灾害数据分析与可视化:利用Java和数据科学技术解读台风趋势
|
监控 安全 UED
阿里云全球加速GA
阿里云全球加速GA(Global Accelerator)是一款覆盖全球的互联网加速服务,主要目的是为了减少网络延迟、丢包,提高网络传输效率。这款服务可以应用于游戏加速、应用加速等场景,为用户构建一个高性能、高可靠、高安全、易部署的加速网络。
880 1
|
数据挖掘 C++
【SPSS】单样本K-S检验和两独立样本K-S检验详细操作教程(附案例实战)
【SPSS】单样本K-S检验和两独立样本K-S检验详细操作教程(附案例实战)
1847 0
|
安全 网络协议 网络安全
百度搜索:蓝易云【445端口是啥?445端口怎么关闭?】
请注意,在关闭445端口之前,确保您了解并考虑了可能的影响。关闭SMB服务或阻止445端口可能会影响与其他计算机或网络资源的连接和共享。在做出更改之前,请确保您理解其影响,并根据实际需求和安全要求来进行操作。
385 0