是否可以使用vanilla javascript制作一个跟随玩家的视口?

时间:2017-07-02 01:05:04

标签: javascript html5-canvas

我想知道如何制作跟随玩家的视口,例如在侧面游戏中。我有一个半工作版本,但它要求我移动除播放器之外的所有内容。

    ctx.translate(canvX,canvY);
    drawBlocks();
    ctx.restore()

这暂时有用,但我必须画出敌人和其他物品,而我不想经常重做这个过程。我正在寻找一个简单的解决方案,基本上涉及跟随玩家的相机。这可能吗?

1 个答案:

答案 0 :(得分:0)

使用类似three.js的游戏。因为你必须每秒画出尽可能多的帧,而画布并不是那么好(如果你现在不相信我,等到你必须在屏幕上绘制更多东西)。

但是,对于您当前的代码,我注意到的一件事是您错过了ArrayList<String> ListeFamilles = new ArrayList<>(15); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.selectionneracteactivity); HttpURLConnection urlConnection = null; StringBuilder result = new StringBuilder(); try { URL url = new URL("http://192.168.1.26:8888/GetNomFamille.php"); urlConnection = (HttpURLConnection) url.openConnection(); InputStream in = new BufferedInputStream(urlConnection.getInputStream()); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String line; while ((line = reader.readLine()) != null) { result.append(line); ListeFamille.add(line); } } catch (Exception e) { e.printStackTrace(); } finally { urlConnection.disconnect(); }

如果这不是我不认为的问题,根据你的问题,你不想重新绘制所有内容,只有背景?实际上你可以使用多个图层,这样每个敌人都是一个HTML元素,你只能在动画帧改变时重绘敌人。然后你只需移动它们的元素(比在性能方面重新绘制便宜一点)。

THREE.JS是你应该学习的......它真的会帮助你。