0

编写一个横向滚动平台游戏并认为 scrollRect 最适合内存,因为它只渲染矩形而不是整个舞台。我让它以我的英雄为中心并与他一起滚动。我的问题是为矩形创建外边界。if(view.x < 0) 很简单。我锁定了 x 和 y 原点,这是我遇到问题的其他边缘。它在 ENTER_FRAME 上运行,顺便说一句。这是我的代码:

    public function ScrollWithHero()
    {
        var stageW2:Number = stage.stageWidth/2;
        var stageH2:Number = stage.stageHeight/2;
        var view:Rectangle = new Rectangle(0,0,stage.stageWidth,stage.stageHeight);

        if(hero.x - stageW2 > 0){ view.x = hero.x - stageW2; }

        if(hero.x + stageW2 > levelWidth){ // stop scrolling the rect }

        if(hero.y - stageH2 > 0){ view.y = hero.y - stageH2; }

        if(hero.y + stageH2 < levelHeight){ // stop scrolling the rect }

        scrollRect = view;
    }
4

1 回答 1

0
    public function ScrollWithHero()
    {
        var stageW2:Number = stage.stageWidth/2;
        var stageH2:Number = stage.stageHeight/2;
        var view:Rectangle = new Rectangle(0,0,stage.stageWidth,stage.stageHeight);

        if(hero.x - stageW2 > 0)
        { 
            view.x = hero.x - stageW2; 

            if(hero.x + stageW2 > levelWidth)
            {
                view.x = levelWidth - stage.stageWidth;
            }
        }
        if(hero.y - stageH2 > 0)
        { 
            view.y = hero.y - stageH2; 

            if(hero.y + stageH2 > levelHeight)
            {
                view.y = levelHeight - stage.stageHeight;
            }
        }
        scrollRect = view;
    }
于 2015-12-27T22:16:42.863 回答