【问题标题】:stop movement when energy is 0能量为0时停止运动
【发布时间】:2016-06-22 14:21:14
【问题描述】:

我正在使用 node.js、socket.io 和 create.js 创建一个 4 人游戏。在我的游戏中,每个玩家都有能量,当玩家移动时,能量正在减少。我想在能量为 0 或更少时停止播放器。但我做不到。

服务器端:

socket.on('move', function(data)
                     {
                         var w = data["dir"];
                         var x = data["x"];
                         var y = data["y"];
                         var e = data["energy"];
                         console.log(e);
                                if(w == "down")
                                    y += 5;

                                if(w == "up")
                                    y -= 5;

                                if(w == "left")
                                    x -= 5;

                                if(w == "right")
                                    x += 5;

                                if(e <= 0)
                                {
                                    x+=0;
                                    y+=0;
                                }

                                socket.broadcast.emit("_movement2",data);
                                socket.emit("_movement",{ "X" : x, "Y" : n       y});
 });

客户端:

switch(evt.keyCode)
            {
                case 37:    
                          energy--;
                            $("#energy").css({"width" : energy});
                        socket.emit("move", {"y" : player.playerImage.y,  "x": player.playerImage.x, "dir" : "left", "id":player_id, "energy" : energy});
                            break;
                case 38:    
                            energy--;
                            $("#energy").css({"width" : energy});
                            socket.emit("move", {"y" : player.playerImage.y, "x" : player.playerImage.x, "dir" : "up", "id":player_id, "energy" : energy});


                            break;
                case 39:     
                energy--;
                            $("#energy").css({"width" : energy});
                            socket.emit("move", {"x" : player.playerImage.x, "y" : player.playerImage.y, "dir": "right", "id":player_id , "energy" : energy});

                            break;
                case 40:    
                                energy--;
                            $("#energy").css({"width" : energy});
                socket.emit("move", {"y" : player.playerImage.y, "x" : player.playerImage.x, "dir" : "down", "id":player_id, "energy" : energy});
                break;
            }



        socket.on("_movement", function(data)
        {
            player.playerImage.x = data["X"];
            player.playerImage.y = data["Y"];
                });

感谢关注!

【问题讨论】:

    标签: javascript jquery node.js socket.io


    【解决方案1】:

    您的 if 语句不正确。 你想做一些事情:

    if(energy <= 0) {
        //don't move
    }
    else {
        //move
    }
    

    【讨论】:

    • 我知道了,但是如何真正阻止玩家,这样他就不会动了。
    • 如果我在if中不写任何东西,它仍然会继续移动。
    • 你把if(w == ..)移到else部分了吗?
    • if(e
    • 那么你在代码中的其他地方移动。
    猜你喜欢
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 2022-01-01
    • 1970-01-01
    • 2013-08-11
    • 2020-05-05
    相关资源
    最近更新 更多