简体   繁体   English

能量为0时停止运动

[英]stop movement when energy is 0

I am creating a 4 player game using node.js, socket.io and create.js. 我正在使用node.js,socket.io和create.js创建一个4人游戏。 In my game every player has energy and when player is moving energy is decreasing. 在我的游戏中,每个玩家都有能量,而当玩家移动时,能量正在减少。 I want to stop player when energy is 0 or less. 我想在能量等于或小于0时​​停止播放器。 But I couldn't do it. 但是我做不到。

Server Side: 服务器端:

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});
 });

Client Side: 客户端:

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"];
                });

Thanks for attention! 感谢您的关注!

Your if statements are not correct. 您的if陈述不正确。 You want to do something along the lines of: 您想按照以下方式进行操作:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM