//

//  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 = MainScene::create();

scene->addChild(layer);

return scene;

}

bool MainScene::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);

//相关属性

auto sprite = Sprite::create("CloseSelected.png");//创建一个精灵

//    Sprite * sprite = CCSprite::create("XX图片");

sprite ->setPosition(50, 60);// 坐标(左下为00)

sprite->setAnchorPoint(Vec2(0, 0));//设置锚点为左下角,默认为                     ccp(0.5,0.5)中心点

sprite ->setRotation(90);// 精灵图片旋转90度(当然也可以90.3f)浮点型

sprite ->setScale(2.0f);// //放大2倍,参数为比例,1保持不变,0.5代表50%,2代表200%精灵图片放大1倍(长宽都是),正常是1,缩小1倍是0.5

sprite ->setScaleZ(100);// 相当于层级关系,当有两个精灵重叠的时候,数值越大越靠前

sprite ->setOpacity(255);//设置透明度为完全不透明(范围0~255)

sprite ->setFlippedX(false);//X轴镜像反转

sprite ->setFlippedY(false);//Y轴镜像反转

sprite ->setVisible(true);//设置隐藏,默认为可见

sprite ->setTextureRect(Rect(10, 10, 30, 30));//起始点坐标(做上角坐标系),宽高

//    auto visibleSize = Director::getInstance()->getVisibleSize();

//    Vec2 origin = Director::getInstance()->getVisibleOrigin();

//    sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));

this->addChild(sprite);// 添加到层

// 注册回调,用一个宏来包装一下(函数名不要有函数)

schedule(schedule_selector(MainScene::update));

// 贞回调可用设置选择器与时间

schedule(schedule_selector(MainScene::update), 1);// 一秒调用一次

return true;

}

// 每秒调用60次

void MainScene::update(float t){

log("ok");

// 修改坐标点,让它向右平移(首先要把精灵换成全局变量,因为这里需要)

auto sprite = Sprite::create("CloseSelected.png");

// 获取到当前精灵的坐标,X轴+1,Y轴不加

sprite -> setPosition(Point(sprite->getPosition(), Vec2(1,0)));

// 获取到当前的旋转角度,调用时+1;

sprite -> setRotation(sprite->getRotation()+1);

}

cocos2dx 3.x以上(Sprite精灵类的相关属性与创建)的更多相关文章

  1. Cocos2d-x Lua中Sprite精灵类

    精灵类是Sprite,它的类图如下图所示. Sprite类图 Sprite类直接继承了Node类,具有Node基本特征.此外,我们还可以看到Sprite类的子类有:PhysicsSprite和Skin ...

  2. Cocos2d-JS中的Sprite精灵类

    精灵类是cc.Sprite,它的类图如下图所示.cc.Sprite类直接继承了cc.Node类,具有cc.Node基本特征. 创建Sprite精灵对象 创建精灵对象可以使用构造函数实现,它们接受相同的 ...

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

    精灵(Sprite)是游戏里面的角色,比方敌人.游戏里面运动的物体等等,所以精灵是游戏里面一个很常见的概念.差点儿无处不在. 在Cocos2D-x里面精灵是用Sprite类来进行表示的,它能够用一张图 ...

  4. Python游戏引擎开发(五):Sprite精灵类和鼠标事件

    本次来实现Sprite类和鼠标事件. 说起这个Sprite啊,涉及过2D游戏研究领域的看官应该都听说过它. 它中文原意是"精灵",只是在不同人的眼中,它所表示的意义不同. 比方说在 ...

  5. pygame经典sprite精灵类

    import cStringIO, base64 import pygame from pygame.locals import * class Ball(pygame.sprite.Sprite): ...

  6. cocos2dx C++ imageView(图片/九宫格)相关属性大全

    ImageView * imageView = ImageView::create("cocosui/ccicon.png");//新建图片 imageView->setSc ...

  7. [Cocos2D-x For WP8]Sprite精灵

    精灵(Sprite)是游戏里面的角色,比如敌人,游戏里面运动的物体等等,所以精灵是游戏里面一个非常常见的概念,几乎无处不在.在Cocos2D-x里面精灵是用CCSprite类来进行表示的,它可以用一张 ...

  8. 【我所理解的Cocos2d-x】第六章 精灵Sprite 读书笔记

    简介: 精灵是2D游戏里最重要的元素.游戏场景中大部分可见的元素都直接或间接地与精灵相关. 在Cococs2d-xz中,精灵使用Sprite表示,它将一张纹理的一部分或者全部的矩形区域绘制在屏幕上. ...

  9. [windows+cocos2dx]CCSprite精灵类

    序言 回想cocos2dx,之前在mac+Xcode平台学习了一遍cocos2dx,一年时间不接触cocos了.一直在搞Unity3d.如今还是就之前所学温故温故,但不再用Xcode来写.用经常使用的 ...

随机推荐

  1. Ruby--CSV

    1. 解析CSV: (1)读取文件:csv = CSV.read("#{Rails.root}/public/data/statecountycity.csv", :headers ...

  2. PL/SQL Developer 显示中文乱码问题

    简单版本: 首先,通过 select userenv('language') from dual; 查询oracle服务器端的编码,如为:AMERICAN_AMERICA.ZHS16GBK; 在我们的 ...

  3. web前端性能概述

    1.认识前端性能 不管你的网站设计的有多好,后端有多好,对于用户来说全部都是无感知的,用户只关心页面打开的速度,而前端性能表现很大程度上影响着用户的这种感知. 改善前端的性能对用户感知的整体性能提升有 ...

  4. 微信公众账号开发教程(一) 基本原理及微信公众账号注册 ——转自http://www.cnblogs.com/yank/p/3364827.html

    微信公众账号开发教程 基本原理 在开始做之前,大家可能对这个很感兴趣,但是又比较茫然.是不是很复杂?很难学啊? 其实恰恰相反,很简单.为了打消大家的顾虑,先简单介绍了微信公众平台的基本原理. 微信服务 ...

  5. 【转】C#中HttpWebRequest的用法详解

    本文实例讲述了C#中HttpWebRequest的用法.分享给大家供大家参考.具体如下: HttpWebRequest类主要利用HTTP 协议和服务器交互,通常是通过 GET 和 POST 两种方式来 ...

  6. NRF51822之pstorage介绍

    This information applies to the following SoftDevices: S110, S120, S130, S310 Introduction Persisten ...

  7. There is no tracking information for the current branch

    There is no tracking information for the current branch. Please specify which branch you want to mer ...

  8. Cocos2d-JS cc.DrawNode用法

    app.js var HelloWorldLayer = cc.Layer.extend({ sprite:null, ctor:function () { ///////////////////// ...

  9. [LeetCode]题解(python):090 Subsets II

    题目来源 https://leetcode.com/problems/subsets-ii/ Given a collection of integers that might contain dup ...

  10. Android笔记: Android版本号

    由于有2套版本号 总是对应不准 记下来做过标记 Android 4.3 ----18 Android 4.2---17 Android 4.1---16 Android 4.0.3---15Andro ...