Cocos2d-x 3.1.1 学习日志7--7分钟让你了解cocos2d-x3.1.1 Sprite精灵类

精灵(Sprite)是游戏里面的角色,比如敌人,游戏里面运动的物体等等,所以精灵是游戏里面一个非常常见的概念,几乎无处不在。在Cocos2D-x里面精灵是用Sprite类来进行表示的,它可以用一张图片或者一张图片的一块矩形部分来定义。

在自己设计的MyScene类中,我写了六种常用精灵的出现方式。分别是sp1,sp2,sp3,sp4,sp5,sp6。上代码:

bool MyScene::init()
{
	Size size = Director::getInstance()->getWinSize();//屏幕的大小

	Sprite *sp1 = Sprite::create("icon.png");
	sp1->setPosition(Vec2(size.width*0.2,size.height*0.7));
	this->addChild(sp1);

	Sprite *sp2 = Sprite::create("icon.png",Rect(10,30,28,28)) ;
	sp2->setPosition(Vec2(size.width*0.4,size.height*0.7));
	this->addChild(sp2);

	Texture2D *texture = TextureCache::sharedTextureCache()->addImage("icon.png");//创建2d纹理 

	Sprite *sp3 = Sprite::createWithTexture(texture);
	sp3->setPosition(Vec2(size.width*0.6,size.height*0.7));
	this->addChild(sp3);

    Sprite *sp4 = Sprite ::createWithTexture(texture,Rect(0,0,40,40));
	sp4->setPosition(Vec2(size.width*0.8,size.height*0.7));
	this->addChild(sp4);

	SpriteFrame *frame = SpriteFrame::create("icon.png",Rect(0,0,57,57));

	Sprite *sp5 = Sprite::createWithSpriteFrame(frame);
	sp5->setPosition(Vec2(size.width*0.3,size.height*0.3));
	this->addChild(sp5);

	SpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("img.list");

	Sprite *sp6 = Sprite::createWithSpriteFrame("icon.png");
	sp5->setPosition(Vec2(size.width*0.3,size.height*0.3));
	this->addChild(sp6);

	return true;
}
;

注意:cocos2d-x使用的是OpenGL
es绘制2d图形的,它的尺寸是2的n次方。

此外,常用的精灵类方法有:

setScale(float fScale);//缩放

setRotation(float fRotation);//旋转

setSkew(float s);//倾斜

setAnchorPoint(const Point&another);//锚点设置                 setVisible(bool bvisible);//是否可见

setColor(const cccolor3B&color3);//设置颜色

setOpacity(Glubvte Opacity);//透明度设置,从0-255,0表示完全透明,255表示不透明

setTexture(CCTexture2D *texture);//更改图片

这些方法可以再代码中实现看看效果,方便自己的记忆。

不懂的可以加我的QQ群: 239982941(cocos2d-x 3.1.1学习群

Cocos2d-x 3.1.1 学习日志7--7分钟让你了解cocos2d-x3.1.1 Sprite精灵类

时间: 2024-10-12 17:03:54

Cocos2d-x 3.1.1 学习日志7--7分钟让你了解cocos2d-x3.1.1 Sprite精灵类的相关文章

Cocos2d-x 3.1.1 学习日志2--error:只有静态常量整型数据成员才可以在类中初始化

今天遇到比较低端的一个问题,就是成员的初始化问题,编译器也无法验证,不同的编译器有些能过有些不能过,我也不知道为什么,总是我们以vs为准吧,以为我们用的环境就是它,话不多说,解决方案如下: 在类中    static const double PI=3.1416; error:只有静态常量整型数据成员才可以在类中初始化 常整型静态数据成员可以在类中直接初始化,而常实型静态数据成员不可以 class circle { int a; // 普通变量,不能在类中初始化 static int b; //

Cocos2d-x 3.1.1 学习日志11--一Windows下Android环境搭建(一定对你有用的!!)

安装步骤::(多么痛的领悟!!) 1. 配置JDK JDK下载地址: 设置环境变量: JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_21 CLASSPATH=.;%JAVA_HOME%\lib; Path增加%JAVA_HOME%\bin; 设置完后打开cmd,输入java -version 如果出现下面提示,表明环境变量设置成功: C:\Users\arlin>java -version java version "1.7.0_21&quo

cocos2d-x学习日志(18) --程序是如何开始运行与结束?

问题的由来 怎么样使用 Cocos2d-x 快速开发游戏,方法很简单,你可以看看其自带的例程,或者从网上搜索教程,运行起第一个HelloWorld,然后在 HelloWorld 里面写相关逻辑代码,添加我们的层.精灵等 ~ 我们并不一定需要知道 Cocos2d-x 是如何运行或者在各种平台之上运行,也不用知道 Cocos2d-x 的游戏是如何运行起来的,它又是如何渲染界面的 ~~~ 两个入口 程序入口的概念是相对的,AppDelegate 作为跨平台程序入口,在这之上做了另一层的封装,封装了不同

Cocos2d-x 3.1.1 学习日志13--CocosStudio学习必看

听说Cocos Studio很久了,主要是因为骨骼动画.目前看来Cocos2d-x播放动画的方式只有2种: 第一种:是播放序列帧动画,即将动画的每一帧都加载进缓存里,需要播放时再使用Animation类来播放,这种方法简单暴力,应对一些细节要求低的动画场景的时候,这么干无伤大雅.但是当动画帧数稍高的时候就会需要大量的图片,消耗资源很大. 第二种:是由Cocos2d-x提供的Action类来播放动画,这种动画是在帧循环中靠调整每次渲染的坐标来打到动画效果,由于帧循环是1/60秒刷新一次,会让这样播

Cocos2d-x 3.1.1 学习日志15--getContentSize和getContentSizeInPixels区别

cocos2d-x中使用getContentSize获得的就是逻辑点的大小,而getContentSizeInPixels获得的就是像素点的大小. 像素点和逻辑点的对应关系为:逻辑点的大小 = 像素大小 / contentScaleFactor. 如果在高分辨率的平台上(如Iphone4),使用非高分辨率的图片资源,且设置contentScaleFactor为1.0,则IOS的Core Animation compositor 会自动拉伸非高分辨率的资源来适配, 使其在非高分辨率和高分辨率设备上

winform学习日志(二十三)---------------socket(TCP)发送文件

一:由于在上一个随笔的基础之上拓展的所以直接上代码,客户端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Sockets; using Sys

Linux学习日志2-vim使用基础

vim是linux操作系统下的一个文本编辑工具,功能非常强大,但刚学习起来比较复杂.vim的所有功能要讲明白得有几百页,在这里只是记录一下vim的一些基本用法. 首先vim打开文件的三种方式: vim +# xxx(#是数字):表示打开xxx文件并将光标定位到指定行. vim -o xx1 xx2 xx3:表示同时打开三个文件,垂直分割显示 vim -O xx1 xx2 xx3:表示同时打开三个文件,水平分割显示 多个文件间跳转:键入ctrl+w后:→向左.←向右.↑向上.↓向下 vim打开文件

Linux学习日志day1——无人值守系统安装DHCP+TFTP+PXE+Kickstar

Linux学习日志day1--无人值守批量系统远程网络安装(DHCP+TFTP+PXE+Kickstar)                                         --作者:江信瀚 服务器环境介绍: 主机名:workstation.example.com 关闭SElinux以及防火墙 虚拟机:VMware(关闭了VMware的DHCP服务) 网卡配置: 静态IP获取! IPV6全部都删除,因为根本用不到 子网IP可以在VMware中设置 8.8.8.8是谷歌的DNS服务器

Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法

做个打飞机的游戏,由于版本太新,网上基本没有教教程,我的版本是cocos2d-x 3.1.1的,今天遇到cocos2dx中中文乱码的问题.无奈只好Google百度寻求答案,明白了这个问题的缘由.因为cocos2d-x内部是以utf8处理文本的,而VS直接输入时文本编码为GBK,如果添加L标志,则为Unicode编码. 解决这个问题有三种办法: 将源代码文件保存为utf8编码,不过由于编译器的问题,这种方式会导致很多无法预测的问题 将字符串用utf8编码集中存到一文件中,然后用代码读取这些字符串来