当前位置: 首页 > 面试题库 >

我应该使用什么来显示游戏图形?

姚正真
2023-03-14
问题内容

我有一个用于游戏的系统,但我不知道该怎么显示它。我正在制作垂直射击游戏,并且为控制敌人和玩家的所有类编写了方法,但是我不知道如何有效地显示游戏。我当时在想用一种Canvas,可以重新绘制每个帧,但这真的是最有效的方法吗?

重要细节:

  1. 理想帧率:25fps
  2. 这是一个2D游戏
  3. 屏幕上随时有25-100个对象之间的任何地方,所有这些物体都在移动
  4. 所有显示的对象均为图像,均为PNG格式
  5. 窗口为640px x 480px
  6. 现在,所有图像都作为BufferedImage加载,尽管我可以轻松更改此设置

7.我需要一个坐标平面。 这是不完全重组我的代码而无法更改的唯一基本部分。

最重要的是,我完成了所有设置,所有对象的每一帧都在我设计的坐标平面中移动和交互(通过碰撞检测和移动进行处理,没有图形组件),然后只需将屏幕上的所有内容绘制到屏幕上通过ArrayList跟踪所有移动的对象并逐一绘制它们。


问题答案:

如果Swing是可接受的,JPanel则默认情况下是双缓冲的,javax.swing.Timer周期为40 ms的a将给您〜25
Hz更新。本示例显示了基本方法,而本示例显示了许多运动图像。

我需要一个坐标平面。

使模型和视图使用不同的坐标并不少见;所有需要的是将一个系统映射到另一个系统的函数。在此游戏中,视图依赖于四种将图块映射到像素的方法,反之亦然。此处针对地图图块概述了相同的方法。



 类似资料:
  • 我只知道大学里的基本java技能,但我想编写一个棋盘游戏(基本上就像垄断游戏),我完全不知道如何开始一些东西,这会产生一些不同的东西(在这种情况下是棋盘游戏),而不仅仅是控制台的东西。我不想要超高的图形,但更多的是在控制台中创建一个带有许多“-”符号的矩形。它应该是2d的,从顶部看。 你有什么建议?你建议我怎么开始?

  • 我创建了一些android应用程序,但只使用常规布局和视图。现在我正在学习一个游戏开发,我知道我需要使用自定义图形来绘制画布或打开gl来获得更好的图形和性能。我只是不知道从哪里开始。例如,要获得这样的图形(请参见附件),在画布上绘制就足够了,或者我应该学习OpenGL,还是只有使用unity或libgdx这样的工具才能实现?

  • 问题内容: 之间有什么区别: 和 我知道JPanel是GUI组件的容器,但我确实看不到使用它的实用程序。当然,我错了,但我是从Swing开始的,所以…为什么我应该使用JPanel?真正的目的是什么? 问题答案: 为什么我应该使用JPanel? 您可以使用JPanel获得以下一项或多项好处: 将组件分组在一起。 为了更好地组织您的组件。 为了使我们能够使用 多种布局 并组合其效果。(例如,用于数字键

  • 我目前正在编写一个创建井字游戏的程序。目前的应用程序有两个人互相对战,轮流输入行号和列号。这个程序的主要问题是我无法让它显示一个人赢或输或两个玩家平局的结果。如果有人对我如何解决这个问题有任何建议,那就太好了。再次感谢您的时间。

  • 本文向大家介绍为什么在Bash中应该避免eval,我应该用什么来代替呢?,包括了为什么在Bash中应该避免eval,我应该用什么来代替呢?的使用技巧和注意事项,需要的朋友参考一下 eval是Bash shell的内置命令,它将其参数连接为单个字符串。然后,它将参数与空格连接起来,然后将该字符串作为bash命令执行。以下是其工作方式的示例。 eval示例 在下面的示例中,我们使用一个字符串,该字符串

  • 问题内容: 看看这个: 我运行了一个快速的Google搜索,但找不到答案- 我应该用什么代替? 问题答案: 由于django 1.7 引入的迁移系统而被弃用。 现在,您可以使用 跟踪 更改。这会将您的模型更改转换为python代码,以使其可部署到另一个数据库。当您需要对数据库进行进一步的修改时,可以使用数据迁移。 创建迁移后,您必须 应用 它们:。 因此,除了使用之外,您还应该使用然后。 更改模型