Sau một nhiệm vụ và chỉ bắt đầu với libGDX bằng cách xây dựng một bản sao Rắn nhỏ, tôi đã gặp phải một vấn đề mà có lẽ tôi sẽ cảm thấy xấu hổ trong một thời gian ngắn.
Tôi hiện đang có một đầu rắn (một hình chữ nhật đơn giản ở giai đoạn này) di chuyển xung quanh khung vẽ của trò chơi. Cách đơn giản nhất để xây dựng phần còn lại của con rắn là để người đứng đầu sở hữu một Bộ sưu tập Java LinkedList của SnakeElements sẽ giảm / giảm kích thước theo những gì người chơi làm.
Có danh sách SnakeElements này theo người đứng đầu tuy nhiên đã được chứng minh là không tầm thường.
Hàm hiện tại thực hiện việc này như sau và được gọi mỗi khi người đứng đầu cập nhật vị trí của nó:
private void moveTail (float x, float y, int direction) {
float tmpx, tmpy;
int tmpdirection;
int offset_x, offset_y;
for (SnakeSegment snse : tail) {
offset_x = 0;
offset_y = 0;
tmpx = snse.getX();
tmpy = snse.getY();
tmpdirection = snse.getDirection();
switch(direction) {
case 0:
offset_x = 0;
offset_y = -(2 + snse.width);
break;
case 1:
offset_x = -(2 + snse.width);
offset_y = 0;
break;
case 2:
offset_x = 0;
offset_y = (2 + snse.width);
break;
case 3:
offset_x = (2 + snse.width);
offset_y = 0;
break;
default:
System.out.println("wrong direction");
}
snse.setX(x + offset_x);
snse.setY(y + offset_y);
snse.setDirection(direction);
x = tmpx;
y = tmpy;
direction = tmpdirection;
}
}
không may dẫn đến hành vi này:
Bất kỳ lời khuyên nào về cách làm cho đuôi rắn hoạt động chính xác sẽ được đánh giá cao :)