问题标签 [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 投票
2 回答
1124 浏览

audio - Corona sdk:audio.play() 和 media.play() 之间有区别吗?哪个更好?

audio.play() 和 media.play() 之间有区别吗?哪个更好?

0 投票
1 回答
145 浏览

visual-studio-2010 - 在 Visual Express 2010 中配置 2D Boy 框架

如何在 Visual Express C++ 2010 IDE 中配置 2D Boy 快速游戏框架?

我是 C++ 和 Visual Studio 的新手(主要是在 Linux 上使用 Java/go 编程),所以我不太熟悉在 Visual Studio 中设置项目。

该框架是为 Visual Express 2008 设置的,但我无法让它在 2010 版本上运行。

代码和自述文件可以在这里找到:

http://2dboy.com/public/framework.zip

0 投票
1 回答
902 浏览

2d-games - 游戏背景滚动/循环算法

几个月前,当我在制作 2D 背景滚动游戏时,我需要制作一个背景循环,让游戏角色看起来像是在移动,所以我使用以下算法循环背景->

但是在应用这个算法循环整个背景之后,我发现整个游戏变慢了。

这个算法有什么好处还是有更好的算法来循环背景?

任何代码片段将不胜感激。
谢谢。

0 投票
1 回答
703 浏览

xna-4.0 - 什么是优化在 XNA 中渲染 2D 瓷砖游戏的好方法?

编辑:我选择了第二种方法,因为即使所有 3 个平铺层都填满了整个屏幕,我也能获得 150+ fps。

编辑 2:我阅读了很多关于顶点缓冲区对象以及它们如何适用于静态几何的内容,尽管我仍然不知道如何将我的 2D 切片转换为 VBO 并将其存储在 GPU 内存中,但这绝对是一种方式如果其他人正在寻找一种快速渲染静态几何体/四边形的方法。

我正在制作像 Super Meat Boy 这样的游戏,并且想知道将关卡图块存储在数组列表中并进行相机边界重叠测试以查看是否应该渲染是否会更好/更快。

或者存储每个网格正方形并且仅在相机边界之间读取的二维数组会更好吗?

相机可以在屏幕上放置 64*36 块,使用后一种方法可以读取 2300 个奇数块,但是对关卡中的每个块进行重叠测试会更好吗?我读了一个关于将匹配的相邻图块连接成一个更大的四边形并只是重复纹理的答案(尽管我使用的是纹理图集,所以我不确定如何在纹理上重复一个区域)。

干杯,伙计们。

0 投票
2 回答
1890 浏览

java - Java 游戏中的界限,“专业人士”是如何做到的?

专业人士如何在 2D 游戏中划清界限?我的做法是说我不希望精灵移动到某个区域:

但是有些游戏有很多界限,所以我想知道,有没有更简单的方法。我不认为有人会在整个游戏中使用上述方法,只是为了阻止移动。

编辑: 我的问题主要是关于一个你可以四处走动的游戏,类似于口袋妖怪或最终幻想

0 投票
2 回答
894 浏览

java - Java 2D 游戏,当只有一个应该移动时,我的两个矩形都在移动

我编写了一个简单的 Java 游戏,其中屏幕上有两个矩形,一个矩形应该移动,另一个应该保持静止,移动的矩形随着键盘箭头输入移动,可以向上、向下、向左或向右移动。我遇到的问题是,当只有一个矩形应该(rectOne)并且rectTwo应该保持静止时,两个矩形都在移动,我的变量设置如下所示:

坐标变量 buckyPositionX 和 buckyPositionY 为 0,0,因此它们显示我屏幕的左两个角,坐标变量 shiftX 和 shiftY 显示屏幕中心的坐标,以便移动矩形始终居中。

包含所有游戏代码的 Play 类由几个方法组成,重要的是更新和渲染,更新处理矩形移动速度和键盘输入,以向您展示内部内容的示例更新类,这里是当他们按下键时的代码示例:

这适用于所有键盘箭头输入。接下来是 render 方法,它处理在屏幕和图形上绘制所有内容,该方法包括在屏幕上绘制先前使用变量编码的矩形。

因此,当我尝试使用键盘输入移动矩形时,我在屏幕上绘制了两个矩形,这两个矩形同时一起移动,我认为我如何设置矩形坐标并尝试播放存在问题例如,从它们中删除 +buckyPositionX 和 +buckyPositionY 但会出现同样的问题,如果您对可以解决此问题的方法有任何想法,请告诉我。

先感谢您。

编辑1:

这是我要求的游戏课的完整代码:

回答问题:

我在我的 rectTwo 变量中使用变量 buckyPositionX 和 buckyPositionY 的原因是,当我尝试使用 g.fillRect 函数绘制它时,这些输入一切正常,rectOne 移动并且 RectTwo 保持静止,但是当我从通过说 g.fillRect(rectOne.X,rectOne.Y...) 我得到了这个问题,两个矩形一起移动,这很奇怪,因为坐标和大小与使用 g 绘制时完全相同。 fillRect(500 + buckyPositionX, 330 + buckyPositionY, 210, 150) 与 rectOne 相同。我将尝试使用一些代码使其更清晰:

如果我在我的变量中使用它:

这在我的渲染方法中:

rectOne 和 rectTwo 这两个矩形一起移动。

但是如果我在我的渲染方法中使用它而不设置任何变量:

尽管我的碰撞不适用于这种方法(这就是我要修复它的原因),但一切都可以视觉上工作,矩形都出现在屏幕上并且 rectOne 移动而 rectTwo 保持静止。

我将发表一篇新文章更详细地解释我的问题,因为这个问题已经开始变得过于拥挤和偏离主题。

0 投票
1 回答
162 浏览

ios - iOS:将旧应用程序更新为 Retina 图形 (TweeJump)

我是该网站的新手,也是 iOS 开发的新手,但我有其他开发平台的经验。

我一直在研究和使用 TweeJump 源代码,我想将其更新为 Retina 图形,我自己制作了,但我不确定如何正确实现它们。这样做会切断对非视网膜 iPhone 的支持吗?

有些图像是精灵,我不熟悉。

如果我只是将所有图像都更改为高分辨率图像,会出现什么问题,我该如何解决?

请原谅我的初学者知识。我将非常感谢您提供的任何帮助。

问候。

0 投票
1 回答
423 浏览

oop - C++ 游戏设计原则

我是stackover的新手,这是我第一次发帖,所以请温柔:-)

我正在开发一个多层次的射击游戏,并且我正在质疑针对我的目的最好的 OOP 设计,明确地管理子弹。

一般来说,游戏有多个玩家和多个敌人,每个人都有一把可以发射子弹的枪。有一些子弹类可以很好地管理多个子弹,它们的位置、动画、渲染等,这些都可以正常工作。

我的问题是,我是最好为每个敌人实例化这些子弹类的实例,还是最好为管理所有子弹的关卡实例化一个实例(不管是谁发射的)?

单个实例的好处是子弹管理和渲染可以同时针对它们进行优化,但是它们需要额外的状态信息,以便我们记住哪些子弹属于谁,每个敌人可以存在多少子弹等,并且没有那么松散耦合。每个敌人一个单独的实例的好处是它更整洁,每个子弹需要存储的状态信息更少,但是它们将在每个敌人或玩家的单独调用中进行管理和渲染。子弹间的碰撞也将被证明更加困难,但幸运的是这不是这个特定游戏的要求。

有没有其他人写过类似的东西,你是如何构建它的?在决定之前我应该​​考虑哪些因素,是否有任何游戏设计原则?

问候尼克

0 投票
2 回答
1132 浏览

c++ - Qt 2D 寻路游戏中的动画

我正在 Qt 中制作基于 2D 网格的游戏。

当点击网格中的一个方格时,玩家将按照使用 A* 算法计算的路径移动到该方格。但是,我希望能够对此进行动画处理。因此,玩家不必立即到达目标,而是必须从一个方格(节点)到另一个方格,直到它以用户可以设置的速度到达目标。

问题:实现这一目标的最简单方法是什么?

0 投票
1 回答
479 浏览

java - Java小程序不会移动图像

我正在尝试用 Java 制作一种 Space Invaders 游戏,首先是让 PNG 宇宙飞船在屏幕上移动。它出现在它应该去的地方,只是它拒绝移动。该程序编译得很好,eclipse没有给我任何错误/警告。谁能告诉我我做错了什么?

这是我的代码: