首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只有当按下左边的按钮时,玩家才会向左移动而不停止。

只有当按下左边的按钮时,玩家才会向左移动而不停止。
EN

Stack Overflow用户
提问于 2014-01-27 15:48:01
回答 1查看 50关注 0票数 0

这是我游戏的密码。我使用Flash开发来编写代码,因为我发现它在flash开发中更容易。

当我按右、上、下时,我的球员按方向移动。但是,当按下左箭头键时,玩家就会向左移动,不会停止。

代码语言:javascript
运行
复制
    package  
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
/**
 * ...
 * @author Moynul Hussain
 */
public class main extends MovieClip
{
    //MainMenu

    //background
    public var back:MovieClip;

    public var leftPressed:Boolean = false;
    public var rightPressed:Boolean = false;
    public var upPressed:Boolean = false;
    public var downPressed:Boolean = false;

    public var xScrollSpeed:int = 10;
    public var yScrollSpeed:int = 10;



    public var mcPlayButton:MovieClip;

    public function main() 
    {


    stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
    stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
    stage.addEventListener(Event.ENTER_FRAME, loop);


    }

    private function loop(e:Event):void 
    {
        if (leftPressed)
        {
            back.x += xScrollSpeed;
        } 
        else if (rightPressed)
        {
            back.x -= xScrollSpeed;
        }

        if (upPressed) 
        {   
        back.y += yScrollSpeed;

        } 
        else if (downPressed)
        {
            back.y -= yScrollSpeed;
        }   
    }



    function keyDownHandler(e:KeyboardEvent):void{
        if (e.keyCode == 37)
        {
        trace("left pressed");
        leftPressed = true;

        } 
        else if (e.keyCode == 39 )
        {
        trace("right pressed");
        rightPressed = true;

        } else if(e.keyCode == 38){
        trace("up pressed");
        upPressed = true;

        } else if(e.keyCode == 40){
        trace("down pressed");
        downPressed = true;
        }
        }

    function keyUpHandler(e:KeyboardEvent):void{
        if(e.keyCode == 37){
        trace("left released");
        upPressed = false;

        } else if(e.keyCode == 39){
        trace("right released");
        rightPressed = false;

        } else if(e.keyCode == 38){
        trace("up released");
        upPressed = false;

        } else if(e.keyCode ==40){
        trace("down released");
        downPressed = false;
        }
        }


   }

 }

我很抱歉,如果我的编码刺激任何人,我复制和粘贴从Flash开发到这里。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-27 15:54:56

看起来您已经将其设置为释放up键:

代码语言:javascript
运行
复制
if(e.keyCode == 37){
trace("left released");  // left
upPressed = false;       // up
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21385233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档