2016-12-20 14 views
0

Я учительница в школе, играющая змею в java, она не полная, и я столкнулся с проблемой, которую я не могу исправить. первая и вторая части тела проявляются просто отлично после еды цели, но после этого они этого не делают.JPanels не отображается, kinda

код, который добавляет часть тела:

public void addBody(int x, int y) { 
    snekBody.add(new JPanel()); 
    snekBody.get(snekBody.size() - 1).setBackground(new Color(new Random().nextInt(255), new Random().nextInt(255), new Random().nextInt(255))); 
    snekBody.get(snekBody.size() - 1).setVisible(true); 
    snekBody.get(snekBody.size() - 1).setBounds(x*score, y*score, BODY_WIDTH, BODY_HEIGHT); 
    game.add(snekBody.get(this.snekBody.size() - 1)); 
    revalidate(); 
    } 
} 

код, который перемещает части тела (MoveUp, MoveDown и т.д .:

public synchronized void moveRight(int x, int y) { 
    timer++; 
    while (!this.right) { 
     try { 
     wait(); 
     } catch (InterruptedException e) { 
     e.printStackTrace(); 
     } 
    } 
    head.setBounds(x, y, 20, 20); 
    xCoords.add(x); 
    yCoords.add(y); 
    //snekBody is an ArrayList of type JPanel 
    for(int i = 0; i < snekBody.size(); i++) { 
     if (i > 0) { 
     snekBody.get(i).setBounds(xCoords.get(timer-(10*score)), yCoords.get(timer-(10*score))+5, BODY_WIDTH, BODY_HEIGHT); 
     } else { 
     snekBody.get(i).setBounds(xCoords.get(timer-10), yCoords.get(timer-10)+5, BODY_WIDTH, BODY_HEIGHT); 
     } 
    } 
    repaint(); 
    notifyAll(); 
    revalidate(); 
    } 

код, который вызывает addBody:

if (snek.up) { 
      snek.addBody(snek.xCoords.get(snek.timer-20), snek.yCoords.get(snek.timer-20)); 

the second picture is the snake when more than two targets have been eaten. the panels for the body just stop showing up. The first picture is the snake when two targets have been eaten

+0

Можете ли вы включить изображение или лучшее описание того, что не отображается? Ваш JPanel не появляется вообще или просто часть змеи, которую вы пытаетесь отобразить? –

+0

Фотографии добавлены змеи – LegendaryGoomba

ответ

0

Оказывается, что панели показывались друг на друга, поэтому я не мог их видеть.

 Смежные вопросы

  • Нет связанных вопросов^_^