使用Cocos2d-x-3.0游戏引擎。编写一个瓦片地图游戏 part02

LZ你好,我检查了代码,代码中有这句的,还打了断点,tmx能加载进来,但还是黑屏。。。

你把代码、你制作的地图发上来,我试试。
还有路径说一下

HelloWorldScene.h中
private:
cocos2d::TMXTiledMap *_titleMap;
cocos2d::TMXLayer *_background;

HelloWorldScene.cpp中
bool HelloWorld::init()
{
if ( !Layer::init() )
{
return false;
}

std::string file=“01.tmx”;
auto str = String::createWithContentsOfFile(FileUtils::getInstance()->fullPathForFilename(file.c_str()).c_str());

_titleMap=TMXTiledMap::createWithXML(str->getCString(),"");
_background = _titleMap->layerNamed("Background");

addChild(_titleMap,-1);

return true;

}

tmx文件和图片都在resources根目录下,见附件

请LZ帮忙看看,谢谢啦!

原文:“(因为我们创建的地图太大了,窗口尺寸不能将它全部显示。默认设置只能展示瓦片地图的左“下”角)”。。。而你的地图只做了左“上”角,其他地方也没有打上砖块···所以读取到左下角的时候一片黑·····
解决方法:铺上砖块把地图移到左下角;或者继续接下去做到设定精灵视角哪里。
你的代码里“title”和“tile”注意下,避免接下去做的时候出现不必要的问题。

是不是和18L同样的问题?

谢谢LZ啊,新手,第一次接触tilemap,非常感谢LZ。:14:

超多问题~~~代码发出来前可不可以审一遍啊:6:

你是有什么没删除干净,还是少了“;” “()” 代码发出来前都是有重新做一遍的。

地图不是可以直接这样创建:
_titleMap=TMXTiledMap::create(mapname.tmx);
还有这里:
if (playerPos.x <= (_tileMap->getMapSize().width * _tileMap->getMapSize().width) &&
playerPos.y <= (_tileMap->getMapSize().height * _tileMap->getMapSize().height) &&
playerPos.y >= 0 &&
playerPos.x >= 0)
应该是这样吧:
if (playerPos.x <= (_tileMap->getMapSize().width * _tileMap->getTileSize().width) &&
playerPos.y <= (_tileMap->getMapSize().height * _tileMap->getTileSize().height) &&
playerPos.y >= 0 &&
playerPos.x >= 0)

_backGround没用到啊~

其实都是小问题,我用的xcode~~`很多习惯和你不太一样。。。比如激活触摸、得到触摸点、创建点。。。感觉你的方式蛮新颖的~~努力学习中:14:

std::string file = “01.tmx”;
auto str = String::createWithContentsOfFile (FileUtils::getInstance()->fullPathForFilename(file.c_str()).c_str());
_tileMap = TMXTiledMap::createWithXML(str->getCString(),"");

这段代码是可以用_tileMap = TMXTiledMap::create(“01.tmx”);语句替换的,我在iphone上通过试用,并未像楼主所说报错

可以的。加在图片Sprite的时候我就是这么用。加载其他文件时偶习惯用“createWithContentsOfFile”。。:14:

地图可以那么建,只是我习惯载入图片以外的文件时用“createWithContentsOfFile”。
你说的那个问题应该是我弄错了。我再看看。
还有注意“tile”跟“title”别弄混了。

CCASSERT(NULL != objects, “‘Object-Player’ object group not found”);
这行在运行后显示Assertion failed,
Expresssion: 0!= objects
不知道如何改,求助

把你的代码贴上来,最好还有上传你的地图。
可能是你的地图在制作“Object-player”层的时候没做好。

测试可用。

“这里是要载入一个外部的TMX文件,不是自己用代码新建一个。我试了下你的那行代码,然后:“game Module 已停止工作” ”

楼主的解释好无力

楼主,你好,我是新手。我第一次测试的时候,程序就死了,/Users/student/Desktop/屏幕快照 2014-05-15 上午11.25.25.png,这张图片是我截的图,望楼主能够早点回答我的问题

截图估计没传成功···

楼主,你好,我在测试的时候出了这样的问题/Users/student/Desktop/屏幕快照 2014-05-15 上午11.25.25.png,请看图片,好像是纹理是空的,这是什么问题?

地图是TMX格式的,上传有问题,我昨天上传失败

试试用回复栏底下的“选择文件”上传你的截图和地图吧。
“纹理是空的”是指载入地图后屏幕显示的是一片黑么?