java写贪吃蛇小游戏

刚刚写完蛇头的部分,按理说蛇头应该要显示出来

代码如下
package 窗口;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.*;

public class 游戏窗口 extends JFrame {
//Jframe是java提供的创建窗口的类在swing包下
//创建蛇头对象
head shead=new head(utils.rightImg,40,570,this);
//定义游戏的状态0未开始,1游戏中,2暂停游戏,3游戏失败,4游戏成功
static int state=0;//设置默认状态未开始
int width=600;
int height=600;

//设置窗口信息
public void lanuch() {
this.setVisible(true);//窗口是否可见
this.setSize(600,600);//窗口的尺寸
this.setLocationRelativeTo(null);//窗口居中
this.setTitle("game");//设置标题

}
 public void paint(Graphics g) {
     g.setColor(Color.orange);
     g.fillRect(0, 0, 600, 600);
     g.setColor(Color.white);
     //横线
     for(int i=0;i<=20;i++) {
         g.drawLine(0, i*30, 600, i*30);
     }
     //竖线
     for(int i=0;i<=20;i++) {
         g.drawLine(i*30, 0, i*30, 600);
     }
    
     //绘制蛇头 
    shead.paintSelf(g);
    
 }
public static void main(String args[]) {
    游戏窗口 gamewindow=new 游戏窗口();
    gamewindow.lanuch();
}

}

package 窗口;
import java.awt.*;
public class 游戏obj {
//图片
Image img;
//坐标
int x;
int y;
//宽高
int width=30;
int height=30;//和格子值相同
//窗口类引用
游戏窗口 frame;
public Image getimg() {
return img;
}
public void setimg(Image img) {
this.img=img;
}
public int getx() {
return x;
}
public int gety() {
return y;
}
public void setx(int x) {
this.x=x;
}
public void sety(int y) {
this.y=y;
}
public int getheight(){
return height;
}
public int getwidth() {
return width;
}
public void setheight(int height) {
this.height=height;
}
public void setwidth(int width) {
this.width=width;
}
public 游戏窗口 getframe() {
return frame;
}
public void setframe(游戏窗口 frame) {
this.frame=frame;
}
public 游戏obj() {
}
public 游戏obj(Image img,int x,int y,游戏窗口 frame) {
this.img=img;
this.x=x;
this.y=y;
this.frame=frame;

}

public 游戏obj(Image img,int x,int y,int width,int height,游戏窗口 frame) {
    this.img=img;
    this.x=x;
    this.y=y;
    this.height=height;
    this.frame=frame;
    this.width=width;
}
//定义物体绘制自身的方法
public void paintSelf(Graphics g) {
    g.drawImage(img, x, y, null);
}

}

package 窗口;
import java.awt.*;
public class utils {
//头
public static Image upImg=Toolkit.getDefaultToolkit().getImage("窗口.img/up.png");
public static Image rightImg=Toolkit.getDefaultToolkit().getImage("窗口.img/right.png");
public static Image leftImg=Toolkit.getDefaultToolkit().getImage("窗口.img/left.png");
public static Image downImg=Toolkit.getDefaultToolkit().getImage("窗口.img/down.png");
//身体
public static Image bodyImg=Toolkit.getDefaultToolkit().getImage("窗口.img/body.png");
//食物
public static Image foodImg=Toolkit.getDefaultToolkit().getImage("窗口.img/食物.png");
public static Image pfoodImg=Toolkit.getDefaultToolkit().getImage("窗口.img/粉色食物.jpg");
//绘制文字
public static void drawword(Graphics g,String s,Color c,int size,int x,int y) {
g.setColor(c);
g.setFont(new Font("仿宋",Font.BOLD,size));
g.drawString(s, x, y);

}

}
package 窗口;

import java.awt.*;

public class head extends 游戏obj {
//方向,上下左右默认为right
private String direction="right";
public String getDirection() {
return direction;
}
public void setDirection(String direction) {
this.direction=direction;
}
public head(Image img,int x,int y,游戏窗口 frame) {
super(img,x,y,frame);
}
public void paintSelf(Graphics g) {
super.paintSelf(g );
}

}

运行结果

img


蹲个解答,万分感谢!