Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将旧项目基于cocos2dx 2.x的调试绘制转移到cocos2dx 3.x中大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1、首先必须修改原先在draw函数中绘制渲染的方式。3.x不是直接调用draw函数进行绘制的,而是通过renderCommand进行延时渲染。@H_197_2@

@H_197_2@
老项目的渲染方式-draw函数中调用@H_197_2@

@H_197_2@
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
	glLineWidth(2.0f);
	//glEnable(GL_LINE_WIDTH);
#else
	glLineWidth(2.0f);
	glEnable(GL_LINE_SMOOTH);
#endif

	ccDrawColor4F(1.0f,1.0f,0.5f);

	BattleTerrain *terrain = BattleScene::getCurrentScene()->getTerrain();
	if(!terrain) return;

	for (int i = 0; i < terrain->getWidth(); ++i)
	{
		GridPosition down = GridPosition(i,0);
		GridPosition up = GridPosition(i,BattleScene::getCurrentScene()->getTerrain()->getHeight());
		CCPoint downPoint = ccp(GridUtil::sharedGridUtil().gridEdgeToPix(down).x,GridUtil::sharedGridUtil().gridEdgeToPix(down).y);
		CCPoint upPoint = ccp(GridUtil::sharedGridUtil().gridEdgeToPix(up).x,GridUtil::sharedGridUtil().gridEdgeToPix(up).y);
		ccDrawLine(downPoint,upPoint);
	}


新项目的方式,重写新的draw函数,在onDraw中绘制@H_197_2@

@H_197_2@

void SceneLayer::draw(Renderer *renderer,const Mat4& transform,uint32_t flags)
{
	_customcatommand.init(_globalZOrder,transform,flags);
	_customcatommand.func = CC_CALLBACK_0(SceneLayer::onDraw,this,flags);
	renderer->addCommand(&_customcatommand);
}


@H_197_2@

2、修改新的绘制方式之后,能看到画出的图形了,不过在移动的过程中,图形并没有发生变化,这是因为没有应用新的变换矩阵。在3.x中,绘制图形推荐使用CCDrawNode,所以改用CCDrawNode进行绘制

先将drawNode节点添加到父节点中@H_197_2@

@H_197_2@

_drawNode = CCDrawNode::create();
addChild(_drawNodE);


@H_197_2@

在draw前需要先clear

@H_197_2@

_drawNode->clear();

_drawNode->clear();
	for (int i = 0; i < terrain->getWidth(); ++i)
	{
		GridPosition down = GridPosition(i,GridUtil::sharedGridUtil().gridEdgeToPix(up).y);
		_drawNode->drawLine(downPoint,upPoint,ccColor4F(1.0f,0.5f));
		//ccDrawLine(downPoint,upPoint);
	}

大佬总结

以上是大佬教程为你收集整理的将旧项目基于cocos2dx 2.x的调试绘制转移到cocos2dx 3.x中全部内容,希望文章能够帮你解决将旧项目基于cocos2dx 2.x的调试绘制转移到cocos2dx 3.x中所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。