Итак, я создал игру, в которой вы можете переместить своего персонажа, и вам нужно передать строки с этим персонажем, но у меня есть 1 проблема. Когда первая линия достигает нижней части моего экрана, тогда счет начинает отсчет. Я хочу сделать так, чтобы, когда мой персонаж пропустил пробел в строках, счет будет +1. Что мне делать? РЕДАКТИРОВАТЬ: Также счет подсчитывается, когда последняя линия достигает дна!Я хочу создать систему счисления +
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);
score++;
}
}
public void draw(Canvas canvas){
for(Obstacle ob : obstacles)
ob.draw(canvas);
Paint paint = new Paint();
paint.setTextSize(100);
paint.setColor(Color.GREEN);
canvas.drawText("" + score, 50, 100 + paint.descent()- paint.descent(), paint);
РЕДАКТИРОВАТЬ:
int currY = -5*Constants.SCREEN_HEIGHT/4, rect;
while(currY < 0){
int xStart = (int) (Math.random()*(Constants.SCREEN_WIDTH- playerGap));
obstacles.add(new Obstacle(obstacleHeight, color, xStart, currY, playerGap));
currY += obstacleHeight + obstacleGap;
}
if (obstacles.get(obstacles.size() - 1).getRectangle().top >= currY) {
score++;
}
EDIT2:
private void populateObatacles(){
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;
}
}
EDIT3:
if (obstacles.get(lastLineScored-1).getRectangle().top >= currY) {
score++;
lastLineScored--;
}
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);
lastLineScored++;
}
}
}
public void draw(Canvas canvas){
for(Obstacle ob : obstacles)
ob.draw(canvas);
Paint paint = new Paint();
paint.setTextSize(100);
paint.setColor(Color.GREEN);
canvas.drawText("" + score , 50, 100 + paint.descent()- paint.descent(), paint);
EDIT4: менеджер препятствие http://pastebin.com/6E77QtHj вывода bstacle http://pastebin.com/p33mPrat
Я отредактировал это сообщение. Это должны быть координаты Y? –
@nilsllucans - Если это координата Y символа, тогда да. Однако мой ответ неверен, потому что он проверяет только последнюю строку. (Мой ответ предполагает, что когда вы ссылались на «строки», это то же самое, что и элементы массива «препятствия».) –
@nilsllucans - я обновил свой ответ, чтобы исправить ошибку. –