码迷,mamicode.com
首页 > 其他好文 > 详细

cocos2d-x(十一)Lua开发飞机大战-6-加入子弹

时间:2019-04-14 19:29:54      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:子弹   tor   cpp   tab   sdn   with   class   tps   实体   


接下来我们为飞机加入子弹,首先创建一个BulletLayer:

module("BulletLayer",package.seeall) 

local bulletBatchNode = nil
local plane = nil
local bulletArray = {}
local bulletLayer = nil

function create()
	bulletLayer = CCLayer:create()
	bulletBatchNode = CCSpriteBatchNode:create("Images/shoot.png")
	bulletLayer:addChild(bulletBatchNode);
	return bulletLayer
end

?

先解释一下定义的那几个变量吧。

bulletBatchNode 是用来管理子弹精灵的。对于CCSpriteBatchNode不太熟悉。请自己去查查资料。

plane是指我们的主角,在设置子弹位置的时候须要飞机的大小。

bulletArray是用来存放子弹的一个table,在做实体碰撞的时候会用上。

如今来创建一个子弹吧

function addBullet()
	local planeX = plane:getPositionX()
	local planeY = plane:getPositionY()
	local bullet = CCSprite:createWithSpriteFrameName("bullet1.png")
	local bulletPostion = ccp(planeX,planeY + plane:getContentSize().height / 2)
	bullet:setPosition(bulletPostion)
	bulletBatchNode:addChild(bullet)
	
	local length = visibleSize.height + bullet:getContentSize().height / 2 - bulletPostion.y;
	local velocity = 250 --飞行速度
	local moveTime = length/velocity
	local actionMove = CCMoveTo:create(moveTime,ccp(bulletPostion.x,visibleSize.height  + bullet:getContentSize().height / 2))
	
	local actionDone = CCCallFuncN:create(removeBullet)
	local sequence = CCSequence:createWithTwoActions(actionMove,actionDone)
	bullet:runAction(sequence)
	table.insert(bulletArray,bullet)
end

?子弹有了。图层有了,怎样会将子弹不断的加入到图层上呢?当然是用scheduler。

local addBulletEntry = nil
function stratOneShoot()
	if addDoulbeBulletEntry ~= nil then
		stopDoubleShoot()
	end
	addBulletEntry = CCDirector:sharedDirector():getScheduler():scheduleScriptFunc(addBullet, 0.2,false)
end


有了開始射击,自然应该有停止射击

function stopOneShoot()
	if addBulletEntry ~= nil then
		CCDirector:sharedDirector():getScheduler():unscheduleScriptEntry(addBulletEntry)
		addBulletEntry = nil
	end
end

?

好了。如今是不是看见子弹满天飞了。?


?

cocos2d-x(十一)Lua开发飞机大战-6-加入子弹

标签:子弹   tor   cpp   tab   sdn   with   class   tps   实体   

原文地址:https://www.cnblogs.com/mqxnongmin/p/10706452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
分享档案
周排行
mamicode.com排行更多图片
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!