刚刚写完蛇头的部分,按理说蛇头应该要显示出来
代码如下
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 );
}
}
运行结果