Cocos 2d-x 学习第三天

创建飞机类和子弹类之后

实现子弹的连续生成与移动

监听飞机类

飞机跟随鼠标移动

auto listener1 = EventListenerTouchOneByOne::create();
	listener1->setSwallowTouches(true);

	listener1->onTouchBegan = [](Touch* touch, Event* event){
		auto target = static_cast<Sprite*>(event->getCurrentTarget());

		Vec2 locationInNode = target->convertToNodeSpace(touch->getLocation());
		Size s = target->getContentSize();
		Rect rect = Rect(0, 0, s.width, s.height);

		if (rect.containsPoint(locationInNode))
		{
			return true;
		}
		return false;
	};

	listener1->onTouchMoved = [](Touch* touch, Event* event){
		Size visibleSize = Director::getInstance()->getVisibleSize();

		auto target = static_cast<Sprite*>(event->getCurrentTarget());
<span style="white-space:pre">		target->setPosition(target->getPosition() + touch->getDelta());</span>
<span style="white-space:pre">	</span>};<pre name="code" class="plain"><span style="white-space:pre">	</span>_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, p11);

 然后判断边界 是飞机无法拖出屏幕外 


子弹跟随飞机移动改变发射点:

在飞机类中:

静态创建一个类  

static Plane* getInstance();

静态创建一个对象

static Plane* plane;

创建一个函数 返回一个节点

Node* getPlane();

创建一个精灵获取飞机属性

Sprite* plane1;


创建飞机对象时调用静态创建

返回plane


创建子弹类时把飞机对象穿进去

在子弹类中就可以用getPlane函数取到对应的飞机属性



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值