rpgmakermv吧 关注:21,187贴子:67,615
  • 4回复贴,共1

萌新又来提问题了

只看楼主收藏回复

我按照视频做了个推箱子,发现一个问题
假设原点是7,7

然后往左推一下变成7,6
这时在往右推结果变成6.6
上下推也差不多,这怎么解决
以及,怎么重置事件(就是推完箱子出去后从新进入这个推箱子的房间,继续推箱子)


IP属地:福建1楼2017-11-18 17:41回复
    如果只是一个推箱子的游戏,地图里一个json里弄一个参数存几个箱子的初始位置,然后箱子改变触发修改参数。
    比如
    MapInfos.json内容下图
    [
    null,
    {
    "id": 1,
    "expanded": false,
    "name": "MAP001",
    "order": 1,
    "parentId": 0,
    "scrollX": 451,
    "scrollY": 312.5,
    "default": [[7, 7], [10, 8]],
    "now": [[7, 7], [10, 8]],
    "event": [2, 4]
    }
    ]
    default是默认位置。now是现在位置。event地图上对应的箱子事件。
    当重置的时候,事件2和4的位置分别是7,7和10,8
    当他们有一个改变就改一下now里面的位置。
    比如像左推一下事件2那么x轴建1就是:"now": [[6, 7], [10, 8]]
    箱子改变了就触发一下方法,根据event里面对应的事件id去获取这个事件现在的位置。
    如果你要现在读档的时候跟存档的时候是一样的,那么你需要保存一下的。
    如果你游戏搭在同一个服务器那么你就需要信息存到存档里,因为服务器MapInfos.json只有一个,如果是各玩各的随便存在哪里。
    不是很清楚每次继续游戏是从MapInfos.json文件里读取地图信息,还是存档里读取这个信息,需要你自己去确认一下,然后再保在相应的地方。
    如果你是用服务器的话,那么你最好让用户把存档存在服务器端。
    StorageManager.save = function (savefileId, json) {
    if (this.isLocalMode()) {
    this.saveToLocalFile(savefileId, json);
    } else {
    if ($PlayQQ != undefined && $PlayQQ != null && $PlayQQ != "") {
    //根据QQ存档
    $.ajax({
    url: "/Handler/Handler.ashx",
    type: "POST",
    dataType: "text",
    data: { action: "save", json: json, index:savefileId }
    });
    }
    this.saveToWebStorage(savefileId, json);
    }
    };
    StorageManager.load = function (savefileId) {
    if (this.isLocalMode()) {
    return this.loadFromLocalFile(savefileId);
    } else {
    if ($PlayQQ != undefined && $PlayQQ != null && $PlayQQ != "") {
    //根据QQ读档
    var returnData = "";
    if (savefileId == 0 && StorageManager.loadFirst) {
    return this.loadFromWebStorage(savefileId);
    }
    $.ajax({
    url: "/Handler/Handler.ashx",
    type: "POST",
    dataType: "text",
    async: false,
    data: { action: "load", index: savefileId },
    success: function (data) {
    returnData = data;
    StorageManager.saveToWebStorage(savefileId, data);
    if (savefileId == 0) StorageManager.loadFirst = true;
    }
    });
    return returnData;
    }
    else {
    return this.loadFromWebStorage(savefileId);
    }
    }
    };


    IP属地:上海3楼2017-12-05 17:34
    回复
      楼主怎么看到那些变量值的


      IP属地:广东来自Android客户端4楼2017-12-18 07:57
      回复
        一脸懵逼的我 才买的这个软件不会使用


        IP属地:重庆5楼2017-12-23 13:32
        回复
          第一,楼主显然设置了一个球的初值,但是初值设置错了,从图里看,球初始坐标是(7.6) (地图的xy坐标都是从0开始的)。第二,楼主应该把坐标赋值的语句,也就是操作变量那两句话写在最后面。因为你推之后的坐标才是你期望的坐标,不然你每次推球之后查看的都是你推球之前的坐标。


          IP属地:上海来自Android客户端6楼2017-12-27 20:33
          回复