cocos2dx--瓦片地图(键盘移动推箱子游戏)

本文介绍了如何使用cocos2dx和瓦片地图编辑器创建一个键盘移动的推箱子游戏。首先,详细阐述了地图编辑器的使用步骤,包括新建地图、导入图片和编辑图层。接着,在cocos2dx工程中设置窗口大小并加载TMX地图文件。通过获取图块层和对象层,定位到英雄和敌人的坐标。最后,实现了键盘监听和移动函数,以实现角色的键盘控制移动。
摘要由CSDN通过智能技术生成

cocos2dx–瓦片地图(键盘移动推箱子游戏)

1:瓦片地图编辑器云盘地址 和 资源图片
2:新建瓦片地图:文件–>新文件

在这里插入图片描述

3:导入地图图片:地图–>新图块–> 浏览在这里插入图片描述
5:编辑地图:点击箭头指向的按钮–>添加图层–>命名为game
 (右下角的图片直接选中,再拖拽到图片每一个瓦片中)

在这里插入图片描述

6:最后命名为保存到工程的Resources文件下,前面资源图片map.png同样放到Resources文件下
7:cocos2dx工程中,设置窗口大小
  • AppDelegate.cpp 第6行:static cocos2d::Size designResolutionSize = cocos2d::Size(700, 700);
8:工程中加入瓦片地图
  • 加载TMX文件:TMXtiledMpa(瓦片地图):左上角为第一块坐标为(0,0)

    • 1:获取地图大小:(10*10):getMapSize
    • 2:获取块大小:(70*70):getTileSize
    • 3:获取图快层:getLayer(参数:图块层名 返回值:TMXLayer)
    • :4:获取对象层:getObjectGroup(参数:对象层名 返回值:TMXObjectGroup)
  • TMXLayer:左上角为第一块坐标为(0,0)

    • 1:获得某一个块值:getTileAt(参数:坐标)
    • 2:获得某一块GID值 :getTileGIDAt(参数:坐标)
    • 3:设置某一块GID值 :setTileGID(参数:1:GID值,2坐标)
    • 4:获得图层的宽高 :getLayerSize()
8.1加载TMX文件
TMXTiledMap* map = TMXTiledMap::create("untitled.tmx");
this->addChild(map);
8.2/获取game图块层
TMXLayer* gameLayer = map->getLayer("game");

8.3:获取到到英雄的坐标:在init()函数中调用

GID值:

  • #define HERO 47 :英雄的GID值(ID值+1)
  • #define ENEMY 44 :敌人的GID值(ID值+1)
  • #define DESTINATION 43:终点的GID值(ID值+1)

private变量:

  • Vec2 pos; :英雄坐标
  • Vec2 destination1; :终点坐标1
  • Vec2 destination2; :终点坐标2
  • bool destination0 = true;:1号终点上是否有敌人
void HelloWorld::getHeroPos()
{
   
	Size mapSize = map->getMapSize();//获得地图宽高
	for (int i = 0; i < mapSize.width; i++)
	{
   
		for (int j = 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cocos creator实现的推箱子游戏,含源码和功能;游戏一共有100关卡。 cc.Class({ extends: cc.Component, properties: { // foo: { // // ATTRIBUTES: // default: null, // The default value will be used only when the component attaching // // to a node for the first time // type: cc.SpriteFrame, // optional, default is typeof default // serializable: true, // optional, default is true // }, // bar: { // get () { // return this._bar; // }, // set (value) { // this._bar = value; // } // }, starImg : cc.Node, itemBg : cc.Node, levelTxt : cc.Node, }, // LIFE-CYCLE CALLBACKS: onLoad () { }, start () { }, //--------显示星星数量-------- /** * @description: 显示星星数量 * @param {boolean} isOpen 是否开启 * @param {starCount} 星星数量 * @param {cc.SpriteAtlas} levelImgAtlas 纹理图 * @param {number} level 关卡 * @return: */ showStar : function(isOpen, starCount, levelImgAtlas, level){ this.itemBg.attr({"_level_" : level}); if(isOpen){ this.itemBg.getComponent(cc.Sprite).spriteFrame = levelImgAtlas.getSpriteFrame("pass_bg"); this.starImg.active = true; this.starImg.getComponent(cc.Sprite).spriteFrame = levelImgAtlas.getSpriteFrame("point" + starCount); this.levelTxt.opacity = 255; this.itemBg.getComponent(cc.Button).interactable = true; }else{ this.itemBg.getComponent(cc.Sprite).spriteFrame = levelImgAtlas.getSpriteFrame("lock"); this.starImg.active = false; this.levelTxt.opacity = 125; this.itemBg.getComponent(cc.Button).interactable = false; } this.levelTxt.getComponent(cc.Label).string = level; }, /
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值