安卓游戏 - 看不到障碍



我想做的是写一个类似于"Flappy Bird"的游戏,但以垂直的方式。这意味着我们有玩家和障碍物,这些障碍物从上到下移动,玩家可以在障碍物之间跨越小间隙。我有播放器(现在它是一个红色的小矩形(,我可以用手指移动它,但我的障碍物方法不起作用,我看不到任何障碍物落下。我在ObstacleManager课上写了这样的东西:

package com.example.sylwesterpilarz.quackattack;
import android.graphics.Canvas;
import java.util.ArrayList;
import java.lang.System;
public class ObstacleManager {
private ArrayList<Obstacle> obstacles;
private int playerGap;
private int obstacleGap;
private int obstacleHeight;
private int color;
private long startTime;
public ObstacleManager(int playerGap, int obstacleGap, int obstacleHeight, int color) {
this.playerGap = playerGap;
this.obstacleGap = obstacleGap;
this.obstacleHeight = obstacleHeight;
this.color = color;
startTime = System.currentTimeMillis();
obstacles = new ArrayList<>();
populateObstacles();
}
private void populateObstacles() {
int currY = -5*Constants.SCREEN_HEIGHT/4;
while(currY < 0) {
int xStart = (int)(Math.random()*(Constants.SCREEN_WIDTH - playerGap));
obstacles.add(new Obstacle(obstacleHeight, color, xStart, currY, playerGap));
currY += obstacleHeight + obstacleGap;
}
}
public void update() {
int elapsedTime = (int)(System.currentTimeMillis() - startTime);
startTime = System.currentTimeMillis();
float speed = Constants.SCREEN_HEIGHT/10000.0f;
for(Obstacle ob : obstacles) {
ob.incrementY(speed*elapsedTime);
}
if(obstacles.get(obstacles.size() - 1).getRectangle().top >= Constants.SCREEN_HEIGHT) {
int xStart = (int)(Math.random()*(Constants.SCREEN_WIDTH - playerGap));
obstacles.add(0, new Obstacle(obstacleHeight, color, xStart, obstacles.get(0).getRectangle().top - obstacleHeight - obstacleGap, playerGap));
obstacles.remove(obstacles.size() - 1);
}
}
public void draw(Canvas canvas) {
for(Obstacle ob : obstacles)
ob.draw(canvas);
}
}

我想也许那个obstacles.remove方法有问题,但删除它不会改变任何事情。应用启动,红色矩形显示,障碍物不显示。有没有可能我在起点上做错了什么,我的障碍没有出现?

好的,我解决了问题。似乎这行:

obstacles.add(0, new Obstacle(obstacleHeight, color, xStart, obstacles.get(0).getRectangle().top - obstacleHeight - obstacleGap, playerGap));

不能有"0"值,不知何故它需要一些其他加号值。例如,将其更改为"10"后,它就像一个魅力。我以为"0"是起点。

最新更新