首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何制作跟踪播放器的相机?

如何制作跟踪播放器的相机?
EN

Stack Overflow用户
提问于 2016-10-10 09:13:04
回答 1查看 1K关注 0票数 0

我有一个player类,它是x,y位置是用xPos和yPos操作的,我想创建一个跟踪player的相机。

到目前为止,我已经尝试过了:

Camera类:

代码语言:javascript
复制
import org.newdawn.slick.GameContainer;

public class Camera {

    public int offsetMaxX;
    public int offsetMaxY;
    public int offsetMinX;
    public int offsetMinY;

    public int camX;
    public int camY;

    private Player player;

    public Camera(Player p) {

        //Setting offset max's and minimums
        offsetMaxX = 0;
        offsetMaxY = 0;
        offsetMinX = 0;
        offsetMinY = 0;

        player = p;

    }

    public void update(GameContainer gc) {

        camX = player.xPos - (gc.getWidth() / 2);
        camY = player.yPos - (gc.getHeight() / 2);

    }

}

在我的主类中,我的呈现函数是:

代码语言:javascript
复制
@Override
public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException {

    //Translate to camera X and Y
    g.translate(-camera.camX, -camera.camY);

    //Scaling map
    g.scale(3, 3);
    //Rendering map
    try {
        mapRender.render();
    } catch (SlickException e1) {
        e1.printStackTrace();
    }

    //Draw player
    player1.drawPlayer(g);

}

这是可行的,但相机的移动速度比播放器慢。我该如何修复这段代码,或者有没有更好的方法呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-10 10:57:00

我自己修好的。当我画我的球员时,我这样做了

代码语言:javascript
复制
g.translate(.5, .5);

所以当定位我的相机时,我必须做

代码语言:javascript
复制
camX = ((player.xPos * 1.5f)) - (gc.getWidth() / 2);
camY = (player.yPos * 1.5f) - (gc.getHeight() / 2);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39950126

复制
相关文章

相似问题

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