2017-03-19 11 views
-2

私はJavaでサイドスクロールゲームを作成しています。私のカメラはうまく動作しますが、カメラを水平の端に固定します。私は正しい側が正しく働いていますが、左(始まり)側はどうですか?レベルジャンパーの端までカメラをクランプ


コード:

Camera.java

public class Camera { 
    private float x, y; 

    public Camera(int x, int y) { 
     super(); 
     this.x = x; 
     this.y = y; 
    } 

    public float getX() { 
     return x; 
    } 

    public void setX(float x) { 
     this.x = x; 
    } 

    public float getY() { 
     return y; 
    } 

    public void setY(float y) { 
     this.y = y; 
    } 

    public void tick (GameObject player) { 

     if (player.getX() + (Reference.WIDTH/2 - 8) > Martian_Run.getMartianRun().getLm().getWidthOfCurrentLevel()) return; 

     float targetX = -player.getX() + Reference.WIDTH/2 + 16; 
     float targetY = -player.getY() + Reference.HEIGHT/2 + 64; 
     float x = getX(); 
     float y = getY(); 
     setX((int) (x + (targetX - x) * 0.1)); 
     setY((int) (y + (targetY - y) * 0.1)); 

    } 
} 


Martian_Run.getMartianRun().getLm().getWidthOfCurrentLevel() 
// Gives the width of the current level 
Reference.WIDTH 
// Width of the window 

答えて

0

(Reference.WIDTH/2 - 8)にカメラX-POSを初期化し、if文tick()に他の下にif (player.getX() + (Reference.WIDTH/2 - 8) < 0 return;を追加します。

このようにして、ウィンドウの左側がレベル開始の左に決してならないようにします。

関連する問題