Yılan yapan her bir Point nesnesini saklamak için bir ArrayList kullandığım için bir yılan oyunu yapmaya çalışıyorum. Aşağıdaki kod yılan oluşturur:Neden bu işe yaramayacaksın (java'da ArrayList)?
private void createSnake() {
for (int i = 0; i < maxLenght; i++) {
snakeParts.add(new Point(head.x, head.y + (i * 16)));
}
}
maxLenght varsayılan olarak 3'e ayarlanır ve bu kod sadece bir kez denir; Bunu yapmak istediğim, bir sütunun sol üst köşesinde, yılanın ilk üç bölümünü temsil eden 3 Nokta nesnesi oluşturmaktır, ancak bir nedenden dolayı, ya sadece sol üst köşede bir tane oluşturur ya da üçünü oluşturur, ancak aynı pozisyonda, nasıl çalıştırabilirim?
Not: Timer render yöntemini kullanıyorum, bu her ne kadar render işlemi kullanmasaydı, (saniye) her saniye gerçekleşmesi gerekiyordu?
Şimdiden teşekkürler.
DÜZENLEME: Bu Yılan sınıfının Yapıcı ise
public ArrayList<Point> snakeParts;
public Point head;
public Snake() {
snakeParts = new ArrayList<Point>();
head = new Point(0, 0);
curDir = 1;
createSnake();
}
DÜZENLEME 2: Bu sınıf
public class Renderer extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillRect(0, 0, Core.frame.getWidth(), Core.frame.getHeight());
Snake snake = new Snake();
g.setColor(Color.WHITE);
for (Point point : snake.snakeParts) {
g.fillRect(snake.head.x, snake.head.y, 16, 16);
}
}
Eğer ayıklayıcısında size kod adım olduğu 'maxLenght' ne senin olması bekleniyor? Sanırım her zaman 1'dir. –
Ne demek demek çalışmıyor? İstisnaları görüyor musunuz? Daha fazla ayrıntı eklemek, cevap almakta yardımcı olacaktır. – Sachin
İçine bakmak için daha fazla kod verebilir misiniz? 'Point' yapıcınızı ve Arraylist'u nasıl beyan edip tanımlıyorsunuz? –
SRJ