cocos2d-x 3.x学习之MoveAction

创建MoveTo和MoveBy的实例时,第一个参数是动作时间间隔,第二个参数是位置坐标。两者的区别在于,前者是移动到位置坐标所指的位置,而后者是在当前位置的基础上移动位置坐标所代表的像素值.

MoveActionScene.cpp文件

#include"MoveActionScene.h"
Scene* MoveAction::createScene(){
	auto scene = Scene::create();
	auto layer = MoveAction::create();
	scene->addChild(layer);
	return scene;
}
bool MoveAction::init(){
	if (!Layer::init()){
		return false;
	}
	//获得屏幕尺寸大小
	Size visibleSize = Director::getInstance()->getVisibleSize();
	//创建一个精灵
	auto plane = Sprite::create("plane.png");
	//设置精灵位置,精灵在屏幕的最左边,精灵的高度为屏幕的一半。
	//getContentSize是父类Node的属性,返回节点的大小
	//无论节点如何缩放或旋转,contentSize属性值始终不变,此处设置精灵坐标,Node的position属性是相对于锚点的
	//而锚点位于纹理图像的几何中心
	plane->setPosition(Point(plane->getContentSize().width / 2, visibleSize.height / 2));
	//将精灵添加为当前层的子节点
	this->addChild(plane);
	//创建一个moveTo动作
	auto moveTo = MoveTo::create(5, Point(860, 320));
	//精灵执行moveto动作,将在5秒内从当前位置移动到像素(860,320)的位置
	plane->runAction(moveTo);
	auto plane1 = Sprite::create("plane.png");
	//设置飞机精灵位置,精灵在屏幕的最左边,精灵的高度为屏幕的一半
	plane1->setPosition(Point(plane1->getContentSize().width / 2, visibleSize.height / 2));
	//将精灵添加为当前层的子节点
	this->addChild(plane1);
	//定义一个moveBy动作
	auto moveBy = MoveBy::create(5, Point(860, 320));
	//精灵执行moveBy动作,将在5秒内从原位置向右移动860像素,向上移动320像素
	plane1->runAction(moveBy);
	return true;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值