Cocos2d-x3.2 Sprite精灵类的创建与设置


1

2

3

4

5

6

7

8

9

10

11

12

13

14

//GameScene.h

#include "cocos2d.h"

 

class GameScene : public cocos2d::Layer

{

public:

    static cocos2d::Scene* createScene();

     

    virtual bool init();

     

    void menuCallback(cocos2d::Ref* pSender);

     

    CREATE_FUNC(GameScene);

};

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

//GameScene.cpp

#include "GameScene.h"

 

USING_NS_CC;

 

cocos2d::Scene* GameScene::createScene()

{

    auto scene = Scene::create();   //创建一个场景

    auto layer = GameScene::create();   //创建一个图层

    scene->addChild(layer);

    return scene;

}

 

//初始化当前的图层

bool GameScene::init()

{

    if(!Layer::init())      //初始化父类

        return false;

     

    //获取屏幕大小

    Size visibleSize = Director::getInstance()->getVisibleSize();

     

    //创建精灵的六种方法

    //方法一

    auto sprite1 = Sprite::create("Flag_1.png");

    sprite1->setPosition(Vec2(visibleSize.width*0.2, visibleSize.height*0.7));

    this->addChild(sprite1);

     

    //方法二

    auto sprite2 = Sprite::create("Flag_1.png", Rect(0, 0, 48, 36));

    sprite2->setPosition(Vec2(visibleSize.width*0.4, visibleSize.height*0.7));

    this->addChild(sprite2);

     

    //创建2D纹理

    auto texture1 = Director::getInstance()->getTextureCache()->addImage("Flag_1.png");

    //auto texture1 = TextureCache::sharedTextureCache()->addImage("Flag_1.png");  //cocos2d-x 3.0已移除该方法

     

    //方法三

    auto sprite3 = Sprite::createWithTexture(texture1);

    sprite3->setPosition(Vec2(visibleSize.width*0.6, visibleSize.height*0.7));

    this->addChild(sprite3);

     

    //方法四

    auto sprite4 = Sprite::createWithTexture(texture1, Rect(0, 0, 48, 36));

    sprite4->setPosition(Vec2(visibleSize.width*0.8, visibleSize.height*0.7));

    this->addChild(sprite4);

     

    //创建精灵帧

    auto frame = SpriteFrame::create("Flag_1.png", Rect(0, 0, 48, 36));

     

    //方法五

    auto sprite5 = Sprite::createWithSpriteFrame(frame);

    sprite5->setPosition(Vec2(visibleSize.width*0.3, visibleSize.height*0.3));

    this->addChild(sprite5);

     

//    //方法六

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

//    

//    auto sprite6 = Sprite::createWithSpriteFrameName("HelloWorld.png");

//    sprite6->setPosition(Vec2(visibleSize.width*0.7, visibleSize.height*0.3));

//    this->addChild(sprite6);

     

    //**************************//

    //精灵常用处理操作

    //设置缩放

    sprite1->setScale(1.5f, 1.5f);

//    sprite1->setScaleX(1.5f);

//    sprite1->setScaleY(1.5f);

     

    //设置旋转,大于零顺时针旋转

    sprite2->setRotation(60.0f);

//    sprite2->setRotationX(60.0f);

//    sprite2->setRotationY(60.0f);

     

    //设置倾斜

    sprite3->setSkewX(30.0f);

//    sprite3->setSkewY(30.0f);

     

    //设置是否可见

    sprite4->setVisible(true);

     

    //设置颜色

    sprite1->setColor(Color3B(0, 0, 255));

     

    //设置透明度

    sprite2->setOpacity(100);

     

    //更改图片

     

     

 

    return true;

}

时间: 2024-09-08 04:52:33

Cocos2d-x3.2 Sprite精灵类的创建与设置的相关文章

【Cocos2d-x】Sprite精灵类-创建Sprite精灵对象

精灵在Cocos2d-x中的地位就像一场电影中的主角,男主角/女主角,是一场电影中的灵魂所在.也是我们游戏中的灵魂 无论我们控制的对象还是电脑控制的对象,我们都称之为精灵,或者背景中的图片,也可以称为精灵.只要在游戏场景中的东西,都是可以用精灵来做的.比如菜单,可以做成精灵菜单. 还有些精灵是和物理引擎有关的,有一些物理特效. 本章讲的精灵,只是一般意义上的精灵. 创建Sprite精灵对象 创建精灵对象 创建精灵对象有多种方式,其中常用的函数如下: static Sprite* create()

Cocos2d-x Lua中Sprite精灵类

精灵类是Sprite,它的类图如下图所示. Sprite类图Sprite类直接继承了Node类,具有Node基本特征.此外,我们还可以看到Sprite类的子类有:PhysicsSprite和Skin.PhysicsSprite是物理引擎精灵类,Skin是皮肤精灵类用于骨骼动画.创建Sprite精灵对象创建精灵对象有多种方式,其中常用的函数如下:cc.Sprite:create ().创建一个精灵对象,纹理[ 纹理(texture),表示物体表面细节的一幅或几幅二维图形,也称纹理贴图,当把纹理按照

Cocos2d-JS中的Sprite精灵类

精灵类是cc.Sprite,它的类图如下图所示.cc.Sprite类直接继承了cc.Node类,具有cc.Node基本特征. 创建Sprite精灵对象创建精灵对象可以使用构造函数实现,它们接受相同的参数,这些参数非常灵活.归纳起来创建精灵对象有4种主要的方式:1. 根据图片资源路径创建 //图片资源路径 var sp1 = new cc.Sprite("res/background.png"); //图片资源路径和裁剪的矩形区域 var sp2 = new cc.Sprite(&quo

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

1.7 创建自定义精灵类 前面我们只是考虑如何把一个精灵添加到场景中,然而,以后可能想要一个单独的精灵类,以便你能为它添加自己的行为.在这一部分,我们将讨论如何通过扩展基本的CCSprite类来创建自定义的精灵类. 1.7.1 准备工作 让我们一起看一下如何创建一个自定义精灵类,它拥有自己的运动,并且更新函数. 为此,我们要先创建新文件. 1.在菜单栏中,依次选择File-New-File,在iOS的Source下,选择Cocoa Touch Class,单击Next按钮,如图1-19所示. 2

《Cocos2D权威指南》——3.6 CCSprite精灵类

3.6 CCSprite精灵类 CCSprite是Cocos2D游戏开发中最常用的类,用图片把精灵(sprite)显示在屏幕上. 在游戏开发中,经常会遇到精灵(sprite)这个术语.精灵是一个图像,可以在屏幕上独立地移动.一个精灵可能是玩家角色.敌人,或者是大的背景图像.一般情况下,精灵来自于开发者所准备的PNG或PVRTC图像.一旦图像载入内存,就会将精灵转换成纹理图,从而被iPhone GPU用于在屏幕上渲染.3.6.1 CCSprite类的属性及方法 生成精灵的最简单方法是把图片文件加载

cocos2d x-cocos如何将事件监听封装到自定义的精灵类中,求一个demo

问题描述 cocos如何将事件监听封装到自定义的精灵类中,求一个demo cocos如何将事件监听封装到自定义的精灵类中,求一个demo.每次创建新的精灵时就会添加触摸监听.在其他层中可以拖拽移动这些添加到层中的精灵 解决方案 把你的方法放进init()里面,继承layer或者node,create()后就会调用.具体的点击事件,你可以百度,很多 解决方案二: 把你的方法放进init()里面,继承layer或者node,create()后就会调用.具体的点击事件,你可以百度,很多 解决方案三:

[windows+cocos2dx]CCSprite精灵类

序言 回顾cocos2dx,之前在mac+Xcode平台学习了一遍cocos2dx,一年时间不接触cocos了,一直在搞Unity3d,现在还是就之前所学温故温故,但不再用Xcode来写,用常用的Windows+VS2012做为开发环境来回顾cocos2dx.从CCSprite精灵类开始回顾起. CCSprite多种创建方式 创建CCSprite精灵类有好多中方式,好多构造函数,这里列举集中创建形式,包括要显示某个部分和缓存帧,2D贴图创建和普通创建等. if ( !CCLayer::init(

利用transitions类轻松创建图片过渡效果

创建 利用transitions类轻松创建图片过渡效果点击查看Flash:http://space.flash8.net/bbs/attachment.php?aid=311487 主场景第一帧上:myMovieClip.swapDepths(myMovieClip0); var i:Number = 0; function tween(obj) {         i++;         myMovieClip0.gotoAndStop(i-1);         obj.gotoAndSt

java 如何在一个普通类里创建session

问题描述 java 如何在一个普通类里创建session 如果不能的话,有其他方法能实现session的功能么 ,只做存取数据用 解决方案 从session的本质来看,就是一个全局的数据缓存对象,它底层实现就是Map的.所以如果你想实现一个全局的数据缓存功能,只要定义一个全局的HashMap或者HashTable对象就可以了.