java小游戏基础设计参考代码
来源:互联网 发布:网络用语dt什么意思 编辑:程序博客网 时间:2024/05/22 07:42
package thread;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ShootGame extends JFrame implements Runnable...{
JPanel panel1=new JPanel();
JPanel panel2=new JPanel();
MyCanvas mc=new MyCanvas();
JButton btnStart=new JButton("开始");
JButton btnStop=new JButton("停止");
Image imgBack1,imgBack2,imgHawk,imgBullet;
boolean started=false, fire=false;
int backY1=0,backY2=mc.getHeight();
int hawkX=160,hawkY=140,hawkWidth=50,hawkHeight=50;
int StepLength=10;
Thread timer;
public static void main(String[] args) ...{
new ShootGame();
}
public ShootGame()...{
this.setTitle("射击游戏");
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(panel1,"Center");
this.getContentPane().add(panel2,"South");
imgBack1=Toolkit.getDefaultToolkit().getImage("thread/background.png");
imgBack2=Toolkit.getDefaultToolkit().getImage("thread/background.png");
imgHawk=Toolkit.getDefaultToolkit().getImage("thread/hawk.png");
imgBullet=Toolkit.getDefaultToolkit().getImage("thread/bullet.png");
mc.setSize(400,320);
panel1.add(mc);
panel2.add(btnStart);
panel2.add(btnStop);
this.setSize(400,300);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.pack();
//注册监听器
this.addWindowListener(new WindowAdapter()...{
public void windowClosing(WindowEvent e) ...{
System.exit(0);
}
});
btnStart.addActionListener(new ActionListener()...{
public void actionPerformed(ActionEvent e) ...{
started=true;
mc.requestFocus();
start();
}
});
btnStop.addActionListener(new ActionListener()...{
public void actionPerformed(ActionEvent e) ...{
started=false;
}
});
mc.addKeyListener(new KeyAdapter()...{
public void keyPressed(KeyEvent e) ...{
switch(e.getKeyCode())...{
case 37: //按左方向键
hawkX=hawkX-StepLength;
break;
case 100://按数字小键盘区数字4键
hawkX=hawkX-StepLength;
break;
case 38: //按上方向键
hawkY=hawkY-StepLength;
break;
case 104: //按数字小键盘区数字8键
hawkY=hawkY-StepLength;
break;
case 39://按右方向键
hawkX=hawkX+StepLength;
break;
case 102://按数字小键盘区数字6键
hawkX=hawkX+StepLength;
break;
case 40://按下方向键
hawkY=hawkY+StepLength;
break;
case 98://按数字小键盘区数字2键
hawkY=hawkY+StepLength;
break;
case 10://按回车键
fire=true;
break;
case 101://按数字小键盘区数字5键
fire=true;
break;
}
if(hawkX<0)...{ //碰左壁
hawkX=0;
}
if(hawkX>=mc.getWidth()-hawkWidth)...{ //碰右壁
hawkX=mc.getWidth()-hawkWidth;
}
if(hawkY<0)...{ //碰上壁
hawkY=0;
}
if(hawkY>=mc.getHeight()-hawkHeight)...{ //碰下壁
hawkY=mc.getHeight()-hawkHeight;
}
repaint();
}
});
}
public void start() ...{
timer=new Thread(this); //创建线程
timer.start(); //启动线程
}
class MyCanvas extends Canvas...{
public void paint(Graphics g)...{
g.drawImage(imgBack1,0,backY1,this.getWidth(),this.getHeight(),this);
g.drawImage(imgBack2,0,backY2,this.getWidth(),this.getHeight(),this);
g.drawImage(imgHawk,hawkX,hawkY,50,50,this);
if(fire)...{
for(int i=1;i<15;i++)...{
g.drawImage(imgBullet,hawkX,hawkY-20*i,10,10,this);
g.drawImage(imgBullet,hawkX+20,hawkY-20*i,10,10,this);
g.drawImage(imgBullet,hawkX+40,hawkY-20*i,10,10,this);
try ...{
Thread.sleep(1);
} catch (InterruptedException e) ...{
e.printStackTrace();
}
}
fire=false;
}
}
public void update(Graphics g)...{
paint(g);
}
}
public void run() ...{
while(started)...{
try ...{
Thread.sleep(30);
} catch (InterruptedException e) ...{
e.printStackTrace();
}
if(backY1>-mc.getHeight())
backY1=backY1-1;
else
backY1=0;
backY2=backY1+mc.getHeight();
mc.repaint();
}
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ShootGame extends JFrame implements Runnable...{
JPanel panel1=new JPanel();
JPanel panel2=new JPanel();
MyCanvas mc=new MyCanvas();
JButton btnStart=new JButton("开始");
JButton btnStop=new JButton("停止");
Image imgBack1,imgBack2,imgHawk,imgBullet;
boolean started=false, fire=false;
int backY1=0,backY2=mc.getHeight();
int hawkX=160,hawkY=140,hawkWidth=50,hawkHeight=50;
int StepLength=10;
Thread timer;
public static void main(String[] args) ...{
new ShootGame();
}
public ShootGame()...{
this.setTitle("射击游戏");
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(panel1,"Center");
this.getContentPane().add(panel2,"South");
imgBack1=Toolkit.getDefaultToolkit().getImage("thread/background.png");
imgBack2=Toolkit.getDefaultToolkit().getImage("thread/background.png");
imgHawk=Toolkit.getDefaultToolkit().getImage("thread/hawk.png");
imgBullet=Toolkit.getDefaultToolkit().getImage("thread/bullet.png");
mc.setSize(400,320);
panel1.add(mc);
panel2.add(btnStart);
panel2.add(btnStop);
this.setSize(400,300);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.pack();
//注册监听器
this.addWindowListener(new WindowAdapter()...{
public void windowClosing(WindowEvent e) ...{
System.exit(0);
}
});
btnStart.addActionListener(new ActionListener()...{
public void actionPerformed(ActionEvent e) ...{
started=true;
mc.requestFocus();
start();
}
});
btnStop.addActionListener(new ActionListener()...{
public void actionPerformed(ActionEvent e) ...{
started=false;
}
});
mc.addKeyListener(new KeyAdapter()...{
public void keyPressed(KeyEvent e) ...{
switch(e.getKeyCode())...{
case 37: //按左方向键
hawkX=hawkX-StepLength;
break;
case 100://按数字小键盘区数字4键
hawkX=hawkX-StepLength;
break;
case 38: //按上方向键
hawkY=hawkY-StepLength;
break;
case 104: //按数字小键盘区数字8键
hawkY=hawkY-StepLength;
break;
case 39://按右方向键
hawkX=hawkX+StepLength;
break;
case 102://按数字小键盘区数字6键
hawkX=hawkX+StepLength;
break;
case 40://按下方向键
hawkY=hawkY+StepLength;
break;
case 98://按数字小键盘区数字2键
hawkY=hawkY+StepLength;
break;
case 10://按回车键
fire=true;
break;
case 101://按数字小键盘区数字5键
fire=true;
break;
}
if(hawkX<0)...{ //碰左壁
hawkX=0;
}
if(hawkX>=mc.getWidth()-hawkWidth)...{ //碰右壁
hawkX=mc.getWidth()-hawkWidth;
}
if(hawkY<0)...{ //碰上壁
hawkY=0;
}
if(hawkY>=mc.getHeight()-hawkHeight)...{ //碰下壁
hawkY=mc.getHeight()-hawkHeight;
}
repaint();
}
});
}
public void start() ...{
timer=new Thread(this); //创建线程
timer.start(); //启动线程
}
class MyCanvas extends Canvas...{
public void paint(Graphics g)...{
g.drawImage(imgBack1,0,backY1,this.getWidth(),this.getHeight(),this);
g.drawImage(imgBack2,0,backY2,this.getWidth(),this.getHeight(),this);
g.drawImage(imgHawk,hawkX,hawkY,50,50,this);
if(fire)...{
for(int i=1;i<15;i++)...{
g.drawImage(imgBullet,hawkX,hawkY-20*i,10,10,this);
g.drawImage(imgBullet,hawkX+20,hawkY-20*i,10,10,this);
g.drawImage(imgBullet,hawkX+40,hawkY-20*i,10,10,this);
try ...{
Thread.sleep(1);
} catch (InterruptedException e) ...{
e.printStackTrace();
}
}
fire=false;
}
}
public void update(Graphics g)...{
paint(g);
}
}
public void run() ...{
while(started)...{
try ...{
Thread.sleep(30);
} catch (InterruptedException e) ...{
e.printStackTrace();
}
if(backY1>-mc.getHeight())
backY1=backY1-1;
else
backY1=0;
backY2=backY1+mc.getHeight();
mc.repaint();
}
}
}
- java小游戏基础设计参考代码
- java 开发设计 小游戏 英雄 怪物 武器 关键代码
- java小游戏代码
- java围棋小游戏代码
- 自我参考-Java基础
- java代码参考规范
- 基础html代码大全参考
- ARM启动代码设计参考
- ARM启动代码设计参考
- java工厂设计模式基础代码
- Java基础练习项目-猜字母小游戏
- NJUPT JAVA语言 android拼图小游戏设计
- Java写的小游戏贪吃蛇代码
- 贪吃蛇小游戏java实现代码分析
- Java swing开发俄罗斯方块小游戏代码
- Java石头剪刀布小游戏代码
- java 小游戏人机猜拳 关键代码
- 使用Java代码编写QuickHit小游戏
- ABAP--HR的工资计算样例代码
- ABAP--如何创建和使用sap的号码范围对象
- SD--关于SD的业务的锁定的几个tCODE
- HR--关于Appraisal
- ABAP--关于ABAP流程处理的一些命令的说明(stop,exit,return,check,reject)
- java小游戏基础设计参考代码
- C++--CSplitterWnd::CreateView创建CListView创建过程的调试摘抄
- FI--Integration of FICO with Other Modules
- C++--如何实现SDI程序使用CSplitterWnd创建的多个视图的动态地显示和关闭视图
- ABAP--如何使用'F4IF_INT_TABLE_VALUE_REQUEST'填写屏幕的多个字段
- ABAP--如何返回'F4IF_INT_TABLE_VALUE_REQUEST'函数隐含的字段
- hoho,俺来喽
- c++--SDI的启动和关闭的调试跟踪的过程摘抄
- HTML--关于innerText, innerHTML, outerText, outerHTML的返回值