精灵类(CCSprite)】的更多相关文章

上一节说布景层CCLayer是小容器,那么精灵类CCSprite就是容器添加的内容,它是构成游戏的主要元素.精灵这个名称应该是游戏专用,它表示游戏中玩家操作的主角.敌人.NPC(Non Player Character-非玩家控制角色的缩写).背景.道具和机关等.在Cocos2D-x中,CCSprite本质上就是一张二维的图片对象而已.CCSprite的继承关系图如下:    从上图可知,CCSPrite也是CCNode的子类,不过它还支持纹理和色彩.看一看CCSprite的内部结构和功能.  …
一.对精灵的理解 玩家控制的主角.AI控制的NPC,以及地图上的宝箱.石块,甚至游戏主菜单的背景图片都是精灵.因此,可以这样认为,玩家看到的一切几乎都是由精灵构成的. 精灵不一定是静态的.通常,一个精灵可以不断变化,变化的方式包括:移动.旋转.缩放.变形.显现消失.动画效果(类似GIF动画)等.精灵按照层次结构组合起来,并与玩家互动,构成了一个完整的游戏. 以<捕鱼达人>的游戏场景为例,我们选择动作层,其中包含的主要精灵如图2-3所示. 图2-3 动作层包含的精灵 在Cocos2d-x中,精灵…
序言 回想cocos2dx,之前在mac+Xcode平台学习了一遍cocos2dx,一年时间不接触cocos了.一直在搞Unity3d.如今还是就之前所学温故温故,但不再用Xcode来写.用经常使用的Windows+VS2012做为开发环境来回想cocos2dx.从CCSprite精灵类開始回想起. CCSprite多种创建方式 创建CCSprite精灵类有好多中方式,好多构造函数,这里列举集中创建形式.包含要显示某个部分和缓存帧,2D贴图创建和普通创建等. if ( !CCLayer::ini…
首先创建cocos2dx-lua项目,然后在项目中添加我们的自定义精灵类:这里Himi类名为:HSprite // // HSprite.h // cocos2dx_lua_tests_by_Himi // // Created by Himi on 12-8-30. // // #ifndef cocos2dx_lua_tests_by_Himi_HSprite_h #define cocos2dx_lua_tests_by_Himi_HSprite_h #include "cocos2d.h…
给自己的假期就快要结束了,该要做点事情了,哪怕简单的不好的也比不做的有意义. /*#pragma once 保证头文件只被编译一次 #pragma once是编译器相关的,就是说即使这个编译系统上有效, 但在其他编译系统也不一定可以,不过现在基本上已经是每个编译器都有这个杂注了. #ifndef,#define,#endif是C/C++语言中的宏定义,通过宏定义避免文件多次编译. 所以在所有支持C++语言的编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式.*/ #ifndef MY_S…
精灵类是cc.Sprite,它的类图如下图所示.cc.Sprite类直接继承了cc.Node类,具有cc.Node基本特征. 创建Sprite精灵对象 创建精灵对象可以使用构造函数实现,它们接受相同的参数,这些参数非常灵活.归纳起来创建精灵对象有4种主要的方式:1. 根据图片资源路径创建 //图片资源路径 var sp1 = new cc.Sprite("res/background.png"); //图片资源路径和裁剪的矩形区域 var sp2 = new cc.Sprite(&qu…
因为之前看过three.js的缘故,所以pixi学习起来也是很快的,主要就是熟悉pixi的API,所以,在这里记录一下pixi常用API,废话不多说,下面上干货. 一.为你的PIXI场景添加图片(精灵类) 注:请自行提前下载pixi.min.js,后续案例基于pixi.js - v4.5.5 //新建一个pixo的实例,并加以配置 let app = , height: }); app.renderer.backgroundColor = 0x061639; app.renderer.view.…
精灵类是Sprite,它的类图如下图所示. Sprite类图 Sprite类直接继承了Node类,具有Node基本特征.此外,我们还可以看到Sprite类的子类有:PhysicsSprite和Skin.PhysicsSprite是物理引擎精灵类,Skin是皮肤精灵类用于骨骼动画.创建Sprite精灵对象创建精灵对象有多种方式,其中常用的函数如下:cc.Sprite:create ().创建一个精灵对象,纹理[ 纹理(texture),表示物体表面细节的一幅或几幅二维图形,也称纹理贴图,当把纹理按…
这次写一下精灵创建的几种类型: 一.通过文件创建: 在原有的基础上加入例如以下代码: //一.通过文件创建精灵 CCSprite *bg =CCSprite::create("map.png"); CCSize winSize  =CCDirector::sharedDirector()->getWinSize(); //得到屏幕的尺寸 bg->, winSize.)); this->addChild(bg); return true; 执行: 背景图片被加入进来..…
// //  MainScene.cpp //  helloworld // //  Created by apple on 16/9/19. // // #include "MainScene.hpp" Scene * MainScene::createScene() { auto scene = Scene::create(); //    CCScene * scene = CCScene::create();// 创建场景 //创建层 MainScene *layer = Ma…
精灵(Sprite)是游戏里面的角色,比方敌人.游戏里面运动的物体等等,所以精灵是游戏里面一个很常见的概念.差点儿无处不在. 在Cocos2D-x里面精灵是用Sprite类来进行表示的,它能够用一张图片或者一张图片的一块矩形部分来定义. 在自己设计的MyScene类中,我写了六种经常使用精灵的出现方式. 各自是sp1,sp2,sp3,sp4.sp5.sp6. 上代码: bool MyScene::init() { Size size = Director::getInstance()->getW…
本次来实现Sprite类和鼠标事件. 说起这个Sprite啊,涉及过2D游戏研究领域的看官应该都听说过它. 它中文原意是"精灵",只是在不同人的眼中,它所表示的意义不同. 比方说在cocos2d中.它能够是一张图片.只是在flash中,Sprite是一个相似于"层"的家伙. 当然你把它定义为层并非非常准确,实际上它是一个含显示列表的显示对象. 什么意思呢?各位看官假设阅读了前面的章节,那对显示列表并不陌生.它说白了就是一个包括其它显示对象的容器. 那或许你会想,为什…
CCSize size = CCDirector::sharedDirector()->getWinSize(); CCSprite *bg = CCSprite::create("HelloWorld.png"); bg->setPosition(ccp(size.width/,size.height/));//ccp CCPoint this->addChild(bg); CCSprite *sp1 = CCSprite::create("icon.pn…
# coding=utf8 import random import pygame from pygame.locals import * from cStringIO import StringIO from PIL import Image from random import randint as rint class MySprite(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self…
import cStringIO, base64 import pygame from pygame.locals import * class Ball(pygame.sprite.Sprite): def __init__(self, color, initial_position): pygame.sprite.Sprite.__init__(self) ball_file = cStringIO.StringIO(base64.decodestring( """iVB…
场景(Scenes) 场景在cocos2d-x中是CCScene类实现的,是应用程序流中独立的一部分.一个cocos2dx应用程序可以有许多场景,但是在某一时刻,只有一个场景在运行. 比如,你有一个游戏,有以下场景:介绍.菜单.关卡1,过渡动画1,关卡2,胜利动画,失败动画,比分.设计者可以把每个场景当成一个独立的应用程序来设计,最后用一些少量的胶水代码,讲这些场景连接起来,形成一个完整的游戏.比如,介绍场景结束之后应该进入菜单场景,关卡1结束之后应该进入过渡动画1场景等等.场景切换流程可以设计…
« 对Cocos2d游戏引擎有一定的了解和实践,并接触过处理3D图形和模型库的OpenGL 在进行游戏界面的绘制工作中,需要处理大量的工作,这些工作有很多共性的操作:并且对于游戏界面的切换,元素动作的处理,都已经有人做好了这些工作,并将其封装到框架中,其中Cocos2d-android就是这样一个框架. Cocos2d实现游戏的绘制: 1.实现步骤: 首先来说,要想绘制出游戏界面,按照谷歌文档中的说明,需要实现两步操作: ①.所有的SurfaceView和SurfaceHolder.Callba…
---------------------------------------- 入口类main.cpp 主要控制类AppDelegate.cpp ---------------------------------------- 对象类CCObject 节点类CCNode ---------------------------------------- 导演类CCDirector 场景类CCScene 图层类CCLayer 精灵类CCSprite ------------------------…
在前面的Cocos2D-x的概念类中,我们了解到节点类CCNode.导演类CCDirector.场景类CCScene.布景层类CCLayer和精灵类CCSprite等,这些类都是构成游戏画面的基本元素.特别是精灵类CCSprite,它是游戏的主要元素.记得在讲CCSprite时说过,它本质上就是一张二维的图片对象.这些图片对象被加载到游戏中,显示到屏幕中形成各种静态画面.但游戏除了静态画面,更多需要有动态效果(如动作.特效和动画),它将游戏角色性格和情绪活灵活现的表现出来.可以说,动态效果的好坏…
1.1 Cocos2D-x 什么是cocos2d-x cocos2d-x在游戏开发中的运用 cocos2d-x的几个重要版本特点 iOS环境下搭建cocos2d开发环境 windows平台搭建cocos2d-x开发环境 搭建Android系统的cocos2d-x开发环境 winPhone平台下开发环境的搭建 1.2 C++语言基础 C++命名空间和数据类型 类和对象 构造器\拷贝构造 析构\new\delete 运算符重载 封装.继承和多态 输入输出流\异常处理 扩展知识 1.3 Cocos2D…
引擎位置(依次往下): 游戏App->逻辑与规则->引擎->运行的平台->硬件接口(驱动运行库API) 1. 渲染框架 CCNode绘制基类(引擎核心类都继承于它,形成一个链表关系),利用单例模式创建CCDirector导演对象->(many)场景->(many)图层->(many)精灵 继承CCNode需要改变三个内容: 1. 类对象的初始化方式和内容: 2.编写时间回调函数 3.重载绘制函数 2. AppDelegate类启动运行一个场景的流程(CCDirec…
[3.x] (1)去掉"CC" [v3.3] 我们在 ui模块 下实现了一个新的Scale9Sprite类.它的内部实现比之前的Scale9Sprite更为简洁,功能也更为强大. 重新实现这个类的主要的原因是:Scale9Sprite在UI模块被大量使用. 现在UI模块不再依赖于extension模块. 通过采用全新的 ui::Scale9Sprite ,很多部件类内部的代码更加简洁,优雅. 什么是CCScale9Sprite呢?CCScale9Sprite对象,是一种CCSprite…
CCSprite是一副2D图像,CCSprite可以通过图像或者图像中的一个矩形子区域创建 如果它的父节点或者任意继承树上的节点是CCspriteBatchNode则具有下述特性: 父节点是CCSpriteBatchNode时具有的特性: 更快的渲染速度,特别时CCSpriteBatchNode有很多子节点的情况下,但有以下限制: A.不支持照相功能(例如:CCOrbitCamera动作不能执行) B.不支持基于网格的动作(例如:CCLens,CCRipple,CCTwirl) C.Alias…
什么是精灵(CCSprite),在官网文档中是这么定义的 Sprites A cocos2d CCSprite is similar to sprites you find in other game engines. It is a 2D image that can be moved, rotated, scaled, animated, and undergo other transformations. Sprites (implemented using the CCSprite cl…
精灵(Sprite)是游戏里面的角色,比如敌人,游戏里面运动的物体等等,所以精灵是游戏里面一个非常常见的概念,几乎无处不在.在Cocos2D-x里面精灵是用CCSprite类来进行表示的,它可以用一张图片或者一张图片的一块矩形部分来定义.我们可以通过下面的代码用一张图片资源创建一个精灵,然后把它添加到游戏中: CCSprite *b = CCSprite::create("cat.png"); b->setPosition(ccp(s.width * 0.5, s.height…
//更换精灵CCSprite的图片有两种方式. //直接通过图片更换 //使用setTexture(CCTexture2D*)函数,可以重新设置精灵类的纹理图片. // auto bg = Sprite::create(); Texture2D* texture = Director::getInstance()->getTextureCache()->addImage("bg2.png"); bg->setTexture(texture); // //2.通过缓存帧…
在介绍CCSprite之前,先要理解游戏开发中的一个核心概念:精灵.精灵也称为游戏对象,它可以用来表示游戏中的任何物体,比如敌人.子弹.甚至是一个背景图片.一段文字.CCSprite可以说是在cocos2d中最常用的一个类,可以称之为"精灵类",它能够以图片的形式将精灵显示到屏幕上. 创建精灵 在谈怎么创建一个精灵之前,先了解下游戏开发中另一个核心概念:纹理.纹理其实就是用来描述物体表面细节的图形,也称为纹理贴图,把纹理按照特定的方式映射到物体表面上的时候能使物体看上去更加真实.我们将…
day01笔记 using namespace cocos2d; == USING_NS_CC; 一般用后面的 #ifndef __MYLAYER_H__ #define __MYLAYER_H__ ---------------一般加入头文件加入宏 : public CCLayer 一般加入一个类继承CCLayer CCLayer::init(); CCLabelTTF *plabel = CCLabelTTF::create("sunda","Arial",36…
本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010    一.菜单项(CCMenuItem) 菜单项CCMenuItem是一个基类,它的子类可以加入CCMenu中形成菜单.CCMenu类的继承关系如下图所示. CCMenuItem类是所有按钮的基类.建议大家不要直接使用该类,因为它并不包含具体显示的功能.其作为所有 按钮对象的父类,主要提供了下面的两个功能. <1> 提供了基本按钮的状态:正常.…
Cocos2D-x 引擎的设计思路是将游戏的各个部分抽象成几个概念,包括导演.场景.布景层和人物精灵,它们之间的关系如图3-1 所示: 导演(CCDirector): 顾名思义,导演类是游戏中的组织者和领导者,是整个游戏的负责人.总指挥.导演类可以制定游戏的运行规则,从而让游戏内的场景.布景类和精灵类有序地进行. 场景(CCScene):场景就是一个关卡,或者是一个游戏界面.这样的一个一个场景确定了整个的游戏. 布景层(CCLayer):一个场景可以由多个布景层构成.布景层就是关卡里的背景,关卡…