JAVA图形赢得';t从draw()函数加载
这是snakeGame类的代码。还有一个名为“snake.java”的文件,其中包含用于变量和draw函数定义的访问器和变异器。这是snake.javaJAVA图形赢得';t从draw()函数加载,java,applet,awt,Java,Applet,Awt,这是snakeGame类的代码。还有一个名为“snake.java”的文件,其中包含用于变量和draw函数定义的访问器和变异器。这是snake.java import java.awt.*; import java.awt.event.*; import java.applet.*; public class snakeGame extends Applet implements Runnable, KeyListener{ private snake snk = new snake();
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class snakeGame extends Applet implements Runnable, KeyListener{
private snake snk = new snake();
private Thread thread;
private Graphics gfx;
private Image img;
private boolean game = true;
public void init(){
setBackground(Color.black);
this.setSize(new Dimension(800,800));
this.addKeyListener(this);
img = createImage(800, 800);
gfx = img.getGraphics();
thread = new Thread();
thread.start();
}
public void paint(Graphics g){
//g.setColor(Color.white);
//g.fillRect(snk.getX(), snk.getY(), 10, 10);
snk.draw(g);
}
public void update(Graphics g){
paint(g);
}
public void repaint(Graphics g){
paint(g);
}
public void run(){
while(game){
//snk.move();
if(snk.getDiry() == -1){
snk.y -= 10;
}
if(snk.getDiry() == 1){
snk.y += 10;
}
if(snk.getDirx() == -1){
snk.x -= 10;
}
if(snk.getDirx() == 1){
snk.x += 10;
}
repaint();
try{
Thread.sleep(200);
}
catch(InterruptedException e){
e.printStackTrace();
}
}
}
public void keyPressed(KeyEvent e){
if (e.getKeyCode() == KeyEvent.VK_UP){
snk.setDirx(0);
snk.setDiry(-1);
System.out.println("UP");
}
else if (e.getKeyCode() == KeyEvent.VK_DOWN){
snk.setDirx(0);
snk.setDiry(1);
System.out.println("DOWN");
}
else if (e.getKeyCode() == KeyEvent.VK_LEFT){
snk.setDirx(-1);
snk.setDiry(0);
System.out.println("LEFT");
}
else if (e.getKeyCode() == KeyEvent.VK_RIGHT){
snk.setDirx(1);
snk.setDiry(0);
System.out.println("RIGHT");
}
else{
System.out.println("Wrong key pressed");
}
}
public void keyReleased(KeyEvent e){
}
public void keyTyped(KeyEvent e){
}
}
蛇不会出现在小程序窗口中。请帮助我了解代码中的错误以及如何改进代码。我是新的编码和堆栈溢出,所以请原谅我,如果我犯了一些愚蠢的错误
提前谢谢
(1)为什么要编写小程序?如果是老师指定的,请参考。2) 见和。3) 为什么使用AWT。。。。有关放弃AWT组件而支持Swing的许多好理由,请参阅。感谢您的帮助。但老师并没有指定小程序的使用。我正在努力学习java。决定制作一款小蛇gameWell,作为排名第一的“applet助手”,它已经发展到连我都不再费心帮助它们的地步。所以如果需要帮助,请在桌面应用程序中使用Swing GUI工具包。(即基于
JFrame
)。桌面应用程序更容易开发和调试,向用户部署桌面应用程序也很实用,而使用小程序则变得不可能了。请注意,大多数编程基本相同,因此没有必要为了小程序本身而“学习”它们。
import java.awt.*;
public class snake {
public int x, y;
private int dirx, diry;
public snake(){
this.x = 400;
this.y = 400;
this.dirx = 0;
this.diry = 1;
}
public void draw(Graphics g){
g.setColor(Color.white);
g.fillRect(getX(), getY(), 20, 20);
}
public int getX(){
return x;
}
public int getY(){
return y;
}
public int getDirx(){
return dirx;
}
public int getDiry(){
return diry;
}
public void setDirx(int dirx){
this.dirx = dirx;
}
public void setDiry(int diry){
this.diry = diry;
}
}