cocos2d-xLua开发飞机大战-6-加入子弹

Posted mqxnongmin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cocos2d-xLua开发飞机大战-6-加入子弹相关的知识,希望对你有一定的参考价值。


接下来我们为飞机加入子弹,首先创建一个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-xLua开发飞机大战-6-加入子弹的主要内容,如果未能解决你的问题,请参考以下文章

python开发飞机大战

java开发飞机大战

unity仿微信飞机大战项目

Html5版飞机大战游戏中(Boss战)制作

豪华版飞机大战系列

飞机大战——图文详解