1.[文件] Bullet.java ~ 648B     下载(23)

package com.ruxia.frame;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

public class Bullet {

//坐标

public int x,y;

//子弹大小

public int width,height;

//子弹杀伤力

public int kill;

//速度

public int speed;

//子弹图片

public String img;

//是否存活

public boolean isLive=true;

//子弹类型(好坏)

public boolean isGood;

public void drawBullet(Graphics g)

{

Toolkit tk=Toolkit.getDefaultToolkit();

Image img1=tk.getImage(Bullet.class.getClassLoader().getResource("image"+img));

//画图

g.drawImage(img1, x,y,width,height,null);

}

}

2.[文件] Explode.java ~ 921B     下载(6)

package com.ruxia.frame;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

public class Explode {

//坐标

private int x;

private int y;

//定义爆炸显示的图片

String img[]={"boom1.jpg","boom2.jpg","boom3.jpg","boom4.jpg","boom5.jpg","boom6.jpg","boom7.jpg","boom8.jpg","boom9.jpg"};

//爆炸的生命

public boolean isLive=true;

//定义下标

private int index=0;

public Explode(int x, int y) {

this.x = x;

this.y = y;

}

public void drawExplode(Graphics g)

{

//得到工具类

Toolkit tkToolkit=Toolkit.getDefaultToolkit();

//得到图片对象

//得到数组中的图片

String image=img[index];

Image img1=tkToolkit.getImage(Explode.class.getClassLoader().getResource("image/"+image));

g.drawImage(img1, x,y,null);

index++;

if(index>=img.length)

{

index=0;

//生命消失

isLive=false;

}

}

}

3.[文件] MyFrame.java ~ 5KB     下载(4)

package com.ruxia.frame;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.util.ArrayList;

import java.util.Random;

import javax.swing.JFrame;

public class MyFrame extends Frame {

public static final int WIDTH=900;

public static final int HEIGHT=700;

public static int my_x=450;

public static int my_y=600;

//定义变量,专门表示键盘按下的键

public static boolean a=false;public static boolean s=false;public static boolean d=false;public static boolean w=false;public static boolean j=false;

//敌机的集合

public ArrayList personAll=new ArrayList();

//存放爆炸效果的集合

public static ArrayList explodeAll=new ArrayList();

public MyFrame()

{

this.setTitle("雷电");

this.setSize(WIDTH,HEIGHT);

this.setLocationRelativeTo(null);

this.setResizable(false);

this.addWindowListener(new MyWindowClose());

//添加键盘监听器

this.addKeyListener(new MyKeyDown());

this.setVisible(true);

MyThread t=new MyThread();

t.start();

}

//定义背景Y座标

int bg_y=0;

@Override

public void paint(Graphics g) {

Toolkit tk=Toolkit.getDefaultToolkit();

Image bg_img=tk.getImage(MyFrame.class.getClassLoader().getResource("image/bg2.jpg"));

g.drawImage(bg_img, 0, bg_y, WIDTH, HEIGHT, null);

bg_y+=10;

g.drawImage(bg_img, 0, -HEIGHT+bg_y, WIDTH, HEIGHT, null);

//判断bg_y的值是否超过窗体的高度

if(bg_y>HEIGHT)

{

bg_y=0;

}

Image my_img=tk.getImage(MyFrame.class.getClassLoader().getResource("image/my_img.jpg"));

g.drawImage(my_img, my_x, my_y, 55, 60, null);

//创建随机对象

Random rd=new Random();

if(rd.nextInt(10)==5)

{

//创建敌机

Person person=new Person(rd.nextInt(850), 45, 32, 58, 100, 100, "enemy1.jpg", 15);

personAll.add(person);

}

// for (Person p:personAll)

// {

// if(p.isLive)

// {

// p.drawPerson(g);

// }

// else

// personAll.remove(p);

//}

for (int i = 0; i < personAll.size(); i++) {

Person person=personAll.get(i);

if(person.isLive)

{

person.drawPerson(g);

}

else

personAll.remove(person);

}

//绘画爆炸

for (int i = 0; i < explodeAll.size(); i++) {

Explode e=explodeAll.get(i);

//判断是否是活字弹

if(e.isLive)

{

e.drawExplode(g);

}

else {

explodeAll.remove(e);

}

}

}

public void move()

{

if(a)

MyFrame.my_x-=20;

if(d)

MyFrame.my_x+=20;

if(s)

MyFrame.my_y+=20;

if(w)

MyFrame.my_y-=20;

if(j)

{

}

}

Image img=null;

@Override

public void update(Graphics g) {

if(img==null)

{

img=this.createImage(WIDTH, HEIGHT);

}

//利用img创建虚拟画笔

Graphics gb=img.getGraphics();

//调用paint方法

paint(gb);

//利用真实的画笔g来画图片

g.drawImage(img, 0,0,WIDTH,HEIGHT,null);

}

public static void main(String[] args) {

new MyFrame();

}

//内部类,线程类,用来刷新当前窗体S

class MyThread extends Thread

{

@Override

public void run() {

while(true)

{

repaint();

//每时每刻都判断是否要移动飞机

move();

try {

Thread.sleep(65);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

}

//这个类的作用是关闭窗体

class MyWindowClose extends WindowAdapter

{

@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

}

class MyKeyDown extends KeyAdapter

{

@Override

public void keyPressed(KeyEvent e) {

switch (e.getKeyCode()) {

case KeyEvent.VK_A:

MyFrame.a=true;

break;

case KeyEvent.VK_S:

MyFrame.s=true;

break;

case KeyEvent.VK_D:

MyFrame.d=true;

break;

case KeyEvent.VK_W:

MyFrame.w=true;

break;

case KeyEvent.VK_J:

MyFrame.j=true;

break;

default:

break;

}

}

@Override

public void keyReleased(KeyEvent e) {

switch (e.getKeyCode()) {

case KeyEvent.VK_A:

MyFrame.a=false;

break;

case KeyEvent.VK_S:

MyFrame.s=false;

break;

case KeyEvent.VK_D:

MyFrame.d=false;

break;

case KeyEvent.VK_W:

MyFrame.w=false;

break;

case KeyEvent.VK_J:

MyFrame.j=false;

break;

default:

break;

}

}

}

4.[文件] Person.java ~ 2KB     下载(5)

package com.ruxia.frame;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Rectangle;

import java.awt.Toolkit;

import javax.tools.Tool;

public class Person {

//敌机坐标

private int x,y;

private int width,height;

public int getX() {

return x;

}

public void setX(int x) {

this.x = x;

}

public int getY() {

return y;

}

public void setY(int y) {

this.y = y;

}

public int getWidth() {

return width;

}

public void setWidth(int width) {

this.width = width;

}

public int getHeight() {

return height;

}

public void setHeight(int height) {

this.height = height;

}

public int getHp() {

return hp;

}

public void setHp(int hp) {

this.hp = hp;

}

public int getKill() {

return kill;

}

public void setKill(int kill) {

this.kill = kill;

}

public String getImgurl() {

return imgurl;

}

public void setImgurl(String imgurl) {

this.imgurl = imgurl;

}

public int getSpeed() {

return speed;

}

public void setSpeed(int speed) {

this.speed = speed;

}

//血量

private int hp;

public Person(int x, int y, int width, int height, int hp, int kill,

String imgurl, int speed) {

super();

this.x = x;

this.y = y;

this.width = width;

this.height = height;

this.hp = hp;

this.kill = kill;

this.imgurl = imgurl;

this.speed = speed;

}

//杀伤力

private int kill;

//定义图片路径

private String imgurl;

//是否存活

public boolean isLive=true;

//速度

private int speed;

public void drawPerson(Graphics g)

{

//定义系统工具类

Toolkit tk=Toolkit.getDefaultToolkit();

//创建图片对象

Image img=tk.getImage(Person.class.getClassLoader().getResource("image/"+imgurl));

g.drawImage(img,x,y,width,height,null);

move();

}

public void move()

{

y+=speed;

if(y>=MyFrame.HEIGHT)

{

isLive=false;

}

this.hitPerson();

}

//反回当前敌机的矩形

public Rectangle getPersonRectangle()

{

return new Rectangle(x,y,width,height);

}

//判断相撞

public void hitPerson()

{

//得到敌机矩形

Rectangle personRec=this.getPersonRectangle();

//得到注主机矩形

Rectangle myRec=new Rectangle(MyFrame.my_x,MyFrame.my_y,55,60);

if(myRec.intersects(personRec)==true)

{

this.isLive=false;

//产生爆炸效果

Explode e=new Explode(x,y);

//将e放入爆炸效果集合

MyFrame.explodeAll.add(e);

}

}

}

5.[文件] game.zip ~ 1MB     下载(77)

Java雷电游戏要准备什么_Java 雷电游戏(未完成)相关推荐

  1. Java实现连连看源代码文档_Java实现游戏连连看(有源代码)

    Java实现游戏连连看(有源代码) JAVA语言实现连连看游戏 1.课程设计目的 Java语言是当今流行的网络编程语言,它具有面向对象.跨平台.分布应用等特点.面向对象的开发方法是当今世界最流行的开发 ...

  2. Java扫雷游戏心得体会总结_Java扫雷游戏: JMine

    JMine是用Java和Swing编写的扫雷程序.作者是Jerry Shen(火鸟),代码有一定年头了,最开始是作者的课程设计.阅读这种小程序对编程语言的学习挺有帮助.本文只简单介绍一些关键的地方,实 ...

  3. java编写桌球游戏素材小球图片_JAVA——桌球游戏(动画)

    跟着视频敲得 ,虽然不是自己的思路 ,不过对代码多了一点了解:涉及到继承类 主函数:创建一个BallGame对象,调用一个launchFrame函数 : launchFrame函数:严格来说是方法 , ...

  4. java制作玩游戏并支付游戏币_java 玩游戏并晋级 玩游戏支付游戏币 关键代码

    Scanner input = new Scanner(System.in); int jushu = 1; int count = 0; int score = 0; String answer; ...

  5. 雷电2手机游戏JAVA下载_【雷电战士2手机版】雷电战士2单机手机版游戏下载-街机中国...

    雷电战士2是一款空战游戏,这是雷电系列游戏的高端作品,游戏以极快的战斗节奏著称,并配合上相当丰富的战机种类,成为了最为经典一部雷电作品. 游戏评价 想要通关该游戏不仅要有熟练的操纵还要有巧妙的战术,游 ...

  6. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  7. 【教程+源码】Java开发经典游戏飞翔的小鸟_Java游戏项目Flappy Bird像素鸟游戏

    在飞翔的小鸟游戏中,玩家只需通过点击方向键操纵让小鸟避开绿色管道等障碍物即可继续前进.如果小鸟碰到管道,游戏立即结束. 那么如何用Java编写一款属于自己的飞翔的小鸟游戏呢?其过程并不复杂,本课程详细 ...

  8. 【源码+图片素材】Java开发经典游戏飞翔的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java小游戏_Java初级项目_Java课程设计项目

    开发环境: jdk1.8 开发工具: IDEA JavaEE基础: 变量.数据类型.判断语句.循环结构.数组.集合.简单窗口创建.图形图片绘制.双缓存技术.事件-键盘事件.物体的碰撞检测.File [ ...

  9. java输入数量扑克牌排序_Java扑克游戏(多人多牌数比较游戏)的实现

    具体实现步骤如下: 实现扑克Card类,用于储存扑克牌,1-13代表点数,4-1代表花色(黑桃,红桃,梅花,分块) 实现扑克列表CardList类,用于实现生成一副牌,洗牌,发牌的功能 实现玩家Pla ...

最新文章

  1. ORA-00257: archiver error. Connect internal only, until freed
  2. 大四中软实习笔记20130226
  3. php上传,PHP-文件上传和下载「程序员培养之路第三十八天」
  4. linux未知设备驱动程序,未知Android设备 - linux mint
  5. 网络通讯原理简介以及演示通讯过程
  6. 上传项目到gitOsChina
  7. PyCharm 入手第一记
  8. 智慧社区智能化管理系统搭建
  9. java编译器eclipse_java编译器eclipse
  10. K3 Cloud 数据库查询表常用语句
  11. 移动通信-多径效应,多普勒效应,菲涅尔区,阴影效应,快衰落,慢衰落
  12. 史上最全的Android基础教程+入门实战训练+处理技巧(建议收藏)|寻找C站宝藏
  13. python 科学计算地磁_用Python控制硬件32-用HMC5883L测量地磁场强度
  14. 导航动态避让算法RVO的优化ORCA(Optimal Reciprocal Collision Avoidance)
  15. Spring Boot学习笔记(二十一)Spring boot 数据校验 @Validated、@Valid用法详解
  16. 电脑怎么安装excel表格
  17. 为了证明苹果电脑会不会中毒,我把病毒拷了进去
  18. python培训﹣首选马哥
  19. Node与namespace
  20. vue中获取获取当前城市地址_Vue中获取当前定位城市名

热门文章

  1. bpmn不带网关的流程
  2. 【工具封装】Python 实现将阿拉伯数字 === 转换成中文大写数字
  3. 远程桌面对方计算机无法远程,win7开启QQ远程协助无法连接对方电脑如何解决
  4. 拯救者R9000p搜不到wifi 解决方法
  5. IT男如何把妹自如?看这个就知道了
  6. maya如何查看资源大纲_maya大纲视图(Outliner),MAYA
  7. 【光流估计】无监督学习中的遮挡区域
  8. n维椭球体积公式_2020中考物理知识汇总:公式大全
  9. 『goodman1999』SD2.0大会:达内创始人韩少云:创业就像买股票
  10. [原创] 鼠绘美女全攻略