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;
            }
        }
    }
}
4

1 回答 1

0
  1. 没有什么在召唤main
  2. screen.drawImage不应该怎么画
  3. 在图形环境中使用任何一种都是非常危险的,loop因为您可能会阻塞负责更新屏幕的线程和/或违反大多数 UI 工具包的单线程性质
  4. 由于图像可能会通过网络连接加载,因此您应该使用类似MediaTracker的方法来确保图像已完全加载,然后再尝试绘制它们

首先看看...

我建议您在使用 a 之类的东西完成这项工作之前JPanelJFrame我会避免使用小程序,因为它们会带来自己的一系列问题和问题,这些问题只会继续让您的生活变得困难......

于 2013-09-27T00:14:42.057 回答