📄 gameserver.java
字号:
ServerFrame.this.repaint();
}
}
}
private class MySnake implements Runnable
{
MySnake()
{
Thread thread=new Thread(this);
thread.start();
}
public void run()
{
while(true)
{
try
{thread.sleep(snk.gamespeed);}
catch(InterruptedException e)
{
System.out.println(e);
}
snk.move();
if(snk.bd[0].x<0||snk.bd[0].x>680||snk.bd[0].y<0||snk.bd[0].y>540)
{
snk=new Snake(100,100);
yoursnk=new Snake2(500,400);
sender.sendCmd("%idie%");
fd=new Food();
}
for(int i=1;i<snk.length;i++)
{
if(snk.bd[0].x==snk.bd[i].x&&snk.bd[0].y==snk.bd[i].y)
{
snk=new Snake(100,100);
yoursnk=new Snake2(500,400);
sender.sendCmd("%idie%");
fd=new Food();}
}
for(int i=1;i<yoursnk.length;i++)
{
if(yoursnk.bd[0].x==yoursnk.bd[i].x&&yoursnk.bd[0].y==yoursnk.bd[i].y)
{
snk=new Snake(100,100);
yoursnk=new Snake2(500,400);
sender.sendCmd("%youdie%");
fd=new Food();}
}
for(int i=0;i<yoursnk.length;i++)
{
if(snk.bd[0].x==yoursnk.bd[i].x&&snk.bd[0].y==yoursnk.bd[i].y)
{
sender.sendCmd("%idie%");
snk=new Snake(100,100);fd=new Food();yoursnk=new Snake2(500,400);
}
}
if(snk.bd[0].x==fd.x&&snk.bd[0].y==fd.y)
{snk.eat();
fd=new Food();
}
ServerFrame.this.repaint();
}
}
}
public void paint(Graphics g)
{
//g.setColor(Color.green);
g.drawRect(0,0,700,560);
for(int i=0;i<snk.length;i++)
{
g.fill3DRect(snk.bd[i].x,snk.bd[i].y,20,20,true);
}
for(int i=0;i<yoursnk.length;i++)
{
g.setColor(Color.red);
g.fill3DRect(yoursnk.bd[i].x,yoursnk.bd[i].y,20,20,true);
}
g.fillRect(fd.x,fd.y,20,20);
}
public void tdStart()
{
thread.start();
}
public void run()
{
yoursnake=new YourSnake();
mysnake= new MySnake();
}
}
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
sender.sendCmd("%break%");
System.exit(1);
}
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
}
class Map
{
int[] x=new int[35];
int[] y=new int[28];
Map()
{
for(int i=0;i<35;i++)
x[i]=0+i*20;
for(int i=0;i<28;i++)
y[i]=0+i*20;
}
}
class Snake2 extends Snake
{
Snake2(int x,int y)
{
super(x,y);
order=2;
}
}
class Snake
{
int length=2;
int order=1;
Body[] bd=new Body[100];
public int gamespeed;
boolean orderchange=true;
int[] speed=new int[5];
int level;
int currentspeed;
class Body
{
int x;
int y;
Body(int newx,int newy)
{
x=newx;
y=newy;
}
}
public Snake(int startx,int starty)
{
bd[0]=new Body(startx,starty);
bd[1]=new Body(startx+20,starty);
speed[0]=200;
speed[1]=200;
speed[2]=200;
speed[3]=200;
speed[4]=200;
level=0;
currentspeed=speed[level];
gamespeed=currentspeed;
}
public void changeOrder(int order)
{
this.order=order;
}
public void move()
{
if(order==1)
{
for(int i=length-2;i>=0;i--)
{
bd[i+1].x=bd[i].x;
bd[i+1].y=bd[i].y;
}
bd[0].x+=20;
}
if(order==2)
{
for(int i=length-2;i>=0;i--)
{
bd[i+1].x=bd[i].x;
bd[i+1].y=bd[i].y;
}
bd[0].x-=20;
}
if(order==3)
{
for(int i=length-2;i>=0;i--)
{
bd[i+1].x=bd[i].x;
bd[i+1].y=bd[i].y;
}
bd[0].y+=20;
}
if(order==4)
{
for(int i=length-2;i>=0;i--)
{
bd[i+1].x=bd[i].x;
bd[i+1].y=bd[i].y;
}
bd[0].y-=20;
}
orderchange=true;
}
public void cmdUp()
{
if((order==1||order==2)&&orderchange==true)
{
order=4;
orderchange=false;
}
if(order==4)
{
if(level<4)
{
level++;
currentspeed=speed[level];
gamespeed=currentspeed;
}
}
if(order==3)
{
level=0;
gamespeed=speed[level];
}
}
public void cmdDown()
{
if((order==1||order==2)&&orderchange==true)
{
order=3;
orderchange=false;
}
if(order==3)
{
if(level<4)
{level++;
currentspeed=speed[level];
gamespeed=currentspeed;
}
}
if(order==4)
{
level=0;
gamespeed=speed[level];
}
}
public void cmdLeft()
{
if((order==3||order==4)&&orderchange==true)
{
order=2;
orderchange=false;
}
if(order==2)
{
if(level<4)
{level++;
currentspeed=speed[level];
gamespeed=currentspeed;
}
}
if(order==1)
{
level=0;
gamespeed=speed[level];
}
}
public void cmdRight()
{
if((order==3||order==4)&&orderchange==true)
{
order=1;
orderchange=false;
}
if(order==1)
{
if(level<4)
{
level++;
currentspeed=speed[level];
gamespeed=currentspeed;
}
}
if(order==2)
{
gamespeed=speed[0];
}
}
public void eat()
{
length++;
bd[length-1]=new Body(bd[length-2].x,bd[length-2].y);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -