问题标签 [2d-games]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
6094 浏览

python-3.x - 用于 2D Python 游戏编程的工具包选项

有哪些用 Python 开发 2D 游戏的工具包?我听说过的一个选项是 Pygame,但是有什么可以做更多事情的范围更广吗?模块的优点和缺点是什么?

0 投票
2 回答
55577 浏览

java - 如何在 Java 中提取此图像的一部分?

我有这个精灵表:

吃豆子精灵

如何读取此图像文件以提取其中的一部分用作精灵

0 投票
10 回答
13510 浏览

c - 2D游戏开发基础

我想用 C 语言从头开始编写一些简单的类似马里奥的游戏。但老实说,我不知道该怎么做,而且我找不到任何好的教程,这是免费的。

但是对于实际的问题,到目前为止,我只编写了 WinAPI 程序,因此所有事件处理和用户输入都由操作系统处理,工作量很小,但是要开发游戏,例如带有非矩形按钮的菜单、动画等,我想,在 WinAPI 中没有这样的东西可以帮助我解决这个问题,而不仅仅是一些基本的例程鼠标指针位置和按键。

那么,编写游戏的正确方法是通过为玩家、敌人甚至背景自己操作对象来编写游戏引擎的整个绘制部分,而不仅仅是使用 directdraw 输出到屏幕?

编辑:我实际上想学习如何从头开始编写游戏,因为它必须是很棒的编程经验,如果你考虑像 DOS 上的 Commander Keen 这样的游戏,它是在没有框架或库的情况下创建的,但仍然非常棒。

0 投票
4 回答
820 浏览

java - Android 游戏框架

我正在考虑创建一个 2D 游戏,并且想知道是否有任何好的开源或潜在的付费(如果不是太贵的话)框架来开发游戏。

已经有什么了?

谢谢。

0 投票
1 回答
185 浏览

collision-detection - 我将什么 OOP 库用于 2D 矢量图形推理、碰撞检测等?

假设我想制作一个简单的 2D“街机”游戏,多边形玩家可以四处移动、直线射击、以爆炸为目标和类似的目标。这似乎需要大量的几何计算来确定哪个多边形与一条线相交、玩家和景观障碍物之间的碰撞、哪些多边形与代表爆炸的圆圈碰撞等等。

有没有一个很好的现成的面向对象库可以为我处理所有这些东西?.NET 或 ActionScript 代码将是理想的,但如果没有其他选择,我也可以使用 C++。

0 投票
6 回答
4073 浏览

java - 面试题:为数独创建面向对象的设计

我回答说我会有一个二维数组。

然后我将拥有 3 个功能

  • 一是检查水平状态。
  • 另一个检查垂直条件的功能
  • 另一个检查 3*3 块条件。

但他不满意,有谁能给这个问题一个好的答案吗?

我发现这个堆栈溢出链接与我的问题有关。 编程设计帮助 - 如何构建数独求解器程序?.

但我想要一个适当的面向对象设计(比如应该是什么类、继承和其他细节),这与面试官对我的期望相同。

0 投票
1 回答
1111 浏览

java - java中的2d Platformer地形生成

我正在制作一个 2d 平台游戏,并试图获得一些自动地形生成。我找到了一个 Perlin 噪声函数,但它并没有真正的帮助,它会产生噪声,但是有一些高空平台,有时 perlin 噪声会输出一些好的东西,但大多数时候它不是那个“可玩”。如何在 Java 中为 2d 平台游戏制作简单的地形生成?一个正确方向的点将是完美的。

0 投票
1 回答
1211 浏览

game-physics - 可变时间步长和重力/摩擦

我正在尝试在可变时间步长(准确地说是 Slick2D)中复制为固定时间步长系统(60 FPS)编写的Sonic 物理引擎的逻辑。

在原始按下跳跃按钮时,玩家的velocity.y设置为 -6.5,并且每个刻度都添加 0.21875velocity.y以模拟重力。

每次调用我的逻辑更新时,都会传递一个时间增量参数,指定已传递多少毫秒。如果经过的毫秒数比我预期的要多,那么我重复更新逻辑,传递一个最多为 1 的“内部增量”,或者如果我们正在处理目标帧的“剩余”则更少。

例如,如果我们预计一帧需要 16 毫秒,而它确实需要 16 毫秒,则循环将迭代一次并thisMiniTick作为 1 传递。如果增量不是 16 毫秒而是 40 毫秒,则循环将执行 3 次,传递 1、1,最后传递0.5。

我错误地认为在每个内部更新循环中我都可以做到velocity.y += (gravity * thisMiniTickRelative),但这不起作用。在较快的帧速率上,没有施加足够的重力导致更高的跳跃,而在较慢的帧速率上,跳跃较低(尽管没有那么明显)。

有没有一种方法可以适用于几乎所有的帧速率,或者我必须求助于设置上限和下限delta吗?

“内部更新”循环:

0 投票
1 回答
1812 浏览

android - 用于 2D 游戏的“在 android 上”的水效果。从哪儿开始?

我想在我的 android 2D 游戏中添加一些水效果,以给人一种物体在水下并且水变得越来越高的印象。有没有办法以编程方式做到这一点。可能有人可以给我一些代码建议,或者可以说我在哪里可以找到开始的东西。我喜欢以编程方式做事。有一次我看到一个用代码人工完成的火焰效果。在水的情况下也可以吗?

0 投票
1 回答
760 浏览

android - 2D Android 游戏中的图形问题

我使用 OpenGL ES 为 Android 编写了 2d 游戏,但我遇到了问题。我一直在使用eclipse。当我在模拟器上启动游戏时,我只看到背景图像,我听到背景音乐和音效。屏幕上没有图形和精灵。在真实设备上(使用 Android 2.2)是相同的结果。这是我的 LogCat:

E/AndroidRuntime(328):致命异常:GLThread 9

E/AndroidRuntime(328): java.lang.IndexOutOfBoundsException: 无效索引 1,大小为 0 E/AndroidRuntime(328): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257) E/AndroidRuntime(328): at java.util.ArrayList.get(ArrayList.java:311)

E/AndroidRuntime(328):在 arek.jumper.GameScreen.updateGameOver(GameScreen.java:166)

E/AndroidRuntime(328):在 arek.jumper.GameScreen.update(GameScreen.java:86)

E/AndroidRuntime(328):在 game.framework.impl.GLGame.onDrawFrame(GLGame.java:94) E/AndroidRuntime(328):在 android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1332)

E/AndroidRuntime(328):在 android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116)

updateGameOver 方法:

更新方法:

@覆盖

和 onDrawFrame:

@覆盖

创建方法:

@Override public void onCreate(Bundle savedInstanceState) {

这是 OpenGL ES 库的问题吗?有人对此有什么建议吗?如何解决这个问题?非常感谢