2013-09-26 6 views
0

Я довольно новичок в java-апплетах и ​​пытался сделать программу для черепахи и зайца. Логика работала нормально, но всякий раз, когда я добавляю графику, она не отображает изображения. При компиляции кода ошибок нет, но он не отображает изображения. Мой код ниже, и любая помощь будет оценена по достоинству.Апплет не отображает правильно

import java.applet.Applet; 
import java.awt.Graphics; 
import java.awt.Image; 
import java.util.Random; 

public class Main extends Applet 
{ 
    Image tortise; 
    Image hare; 
    Graphics screen; 

    public void init() 
    { 
     tortise = getImage(getDocumentBase(), "tortise.gif"); 
     hare = getImage(getDocumentBase(), "hare.gif"); 
    } 

    public void main() 
    { 
     Random random = new Random(); 

     int rabbitPos = 0; 
     int turtlePos = 0; 
     int randomInt; 
     boolean raceWon = false; 

     while(raceWon == false) 
     { 
      randomInt = random.nextInt(9); 
      if(randomInt < 5) 
      { 
       turtlePos += 3; 
      } 
      else if(randomInt < 7) 
      { 
       turtlePos += 1; 
      } 
      else if(turtlePos - 6 < 0) 
      { 
       turtlePos = 0; 
      } 
      else 
      { 
       turtlePos -= 6; 
      } 

      randomInt = random.nextInt(9); 

      if(randomInt < 2) 
      { 
       rabbitPos += 9; 
      } 
      else if(randomInt < 5) 
      { 
       rabbitPos += 1; 
      } 
      else if(randomInt < 6) 
      { 
       if(rabbitPos - 12 < 0) 
       { 
        rabbitPos = 0; 
       } 
       else 
       { 
        rabbitPos -= 12; 
       } 
      } 
      else if(randomInt < 8) 
      { 
       if(rabbitPos - 2 < 0) 
       { 
        rabbitPos = 0; 
       } 
       else 
       { 
        rabbitPos -= 2; 
       } 
      } 

      screen.drawImage(this.tortise, turtlePos, 30, this); 
      screen.drawImage(this.hare, rabbitPos, 150, this); 

      if(rabbitPos >= 50 && turtlePos >= 50) 
      { 
       System.out.println("Tie"); 
       raceWon = true; 
      } else if(rabbitPos >= 50) 
      { 
       System.out.println("Rabbit Won"); 
       raceWon = true; 
      } 
      else if(turtlePos >= 50) 
      { 
       System.out.println("Turtle Won"); 
       raceWon = true; 
      } 
     } 
    } 
} 
+0

Что такое getDocumentBase вывод? – MadProgrammer

+0

возвращает URL-адрес html documet. Я поместил изображения в один и тот же каталог –

ответ

0
  1. Ничто не зовут main
  2. screen.drawImage не как картина должна быть сделана
  3. Это очень опасно использовать любой вид loop в графической среде, как вы можете блокировать поток отвечает за обновление экран и/или нарушение характера одиночного потока большинства наборов инструментов пользовательского интерфейса
  4. Поскольку изображения потенциально загружаются по сетевому соединению, вы должны использовать что-то вроде MediaTracker чтобы гарантировать, что изображения будут быть полностью загружены, прежде чем пытаться нарисовать их

Начните с взглянуть на ...

Я бы порекомендовал это, пока вы не сможете сделать эту работу, используя что-то вроде JPanel и JFrame. Я бы избегал апплетов, поскольку они приносят с собой собственный набор проблем и проблем, которые просто продолжат усложнять жизнь ...

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