我正在开发一款无休止的跑步者游戏,其中的障碍物不断地被创建,然后向左移动-所以,每个障碍物对玩家来说在一秒左右的时间内是看不见的,但随着游戏速度的增加,它不是任何具体的数字。
有没有一种方法可以删除每个障碍,例如,在它创建后三秒钟,以节省一些内存/提高游戏速度?
我使用存储障碍物的数组的全局定义:
var obstacles = []
然后我创建了一个障碍:
function display(obstacle) {
obstacle.draw()
// the ".draw" function contains a simple "ctx.d
我设法加载了一个tmx地图,现在我想创建一个精灵无法移动的障碍物,我像这样恢复了障碍物:
try {
final TMXLoader tmxLoader = new TMXLoader(this, this.mEngine.getTextureManager(), TextureOptions.BILINEAR_PREMULTIPLYALPHA, new ITMXTilePropertiesListener() {
@Override
public void onTMXTileWithPropertiesCreated(final
我有一个检查距离和玩家是否撞到障碍物的程序。我现在正在尝试计算栅栏数组中的哪个栅栏最接近移动中的玩家,然后返回该栅栏的索引。
这是我到目前为止所知道的:
public static int closestBarrier(GameObject object, GameObject[] barriers)
// TODO stub
{
int closest = 0;
for (int i = 0; i < barriers.length - 1; i++) {
if (Math.sqrt((object.getX() - barriers[i].
我正在做一个简单的游戏开始统一,有一个立方体谁走直和躲避其他立方体(障碍物)是随机产生的。为了让障碍物总是在玩家面前产生,我设置了一个代码,让7的产卵位置(块在其中随机生成)跟随玩家的坐标,但在Z上加100,这样它们就会生成,而不是在玩家的上方。现在,我的问题是,当生成障碍时,也会改变它们的X位置,当我和玩家一起向右或向左移动时,它们会从平台上掉下来。我如何才能使它们只跟随玩家的Z位置而不是X位置?下面是让产卵器改变位置的代码:
public class MoveSpawn : MonoBehaviour
{
public Transform player;
public V
在为我的“幽灵”暴民创建一些基本的AI的同时,我考虑允许它面对玩家,这取决于玩家的位置。我让它正常工作,但它的行为并不完全符合我的意愿。下面是我在让鬼魂面对播放机位置时使用的当前代码:
if (player.getX() < this.getX())
dir = 3;
else if (player.getX() > this.getX())
dir = 1;
else if (player.getY() < this.getY())
dir = 0;
else if (player.getY() > this.getY())
dir =
我想在我的游戏中添加弹簧,就像sonic中的弹簧一样--也就是说,如果你不能越过一个障碍物,你必须敲击一个弹簧,它会让主角飞向另一个弹簧,让他越过那个障碍。我在下面画了一个小图来演示我的意思(黄色箭头表示玩家将走向的方向,红色箭头-是弹簧)。
在我的Spring类中,我创建了一个方法:
//The detection area (blue rectangle in the diagram)
public Rectangle broadPhaseDetection() {
broadPhaseRectangle = new Rectangle(getxPos() - broad
我正在用闪光灯做一个追逐游戏,你会按下箭头键,玩家会朝那个方向移动,然后在网格上的另一个点上停下来,就像敌人做同样的事情,然后追赶玩家。为了使移动平滑,我有一个定时器移动播放器每个重复一个像素(50次,停留在网格点上),让延迟变得更小,每30帧加快速度。但是在延迟到0并且不能再低的时候,玩家不能变得更快。有什么更好的选择来继续更快地发展呢?
var playerTimer:Timer=new Timer(40,50);
playerTimer.addEventListener(TimerEvent.TIMER,playerMoveTrigger)