打飞机游戏第一天,诸神归位

/*游戏第一天,诸神归位*/

1,主程序

package qiqi.shoot;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.imageio.ImageIO;
import java.awt.Graphics;

/* 主程序类*/
public class ShootGame extends JPanel {
public static final int WIDTH=400;
public static final int HEIGHT=645;

public static BufferedImage background;
public static BufferedImage start;
public static BufferedImage pause;
public static BufferedImage gameover;
public static BufferedImage airplane;
public static BufferedImage bee;
public static BufferedImage bullet;
public static BufferedImage hero0;
public static BufferedImage hero1;

private Hero hero = new Hero();
private FlyingObject[] flyings={};
private Bullet[] bullets={};

ShootGame(){
flyings = new FlyingObject[2];
flyings[0]=new Airplane();
flyings[1]=new Bee();
bullets = new Bullet[1];
bullets[0]=new Bullet(100,200);
}

static { //初始化静态资源
try{
background = ImageIO.read(ShootGame.class.getResource("background.png"));
start = ImageIO.read(ShootGame.class.getResource("start.png"));
pause = ImageIO.read(ShootGame.class.getResource("pause.png"));
gameover = ImageIO.read(ShootGame.class.getResource("gameover.png"));
airplane = ImageIO.read(ShootGame.class.getResource("airplane.png"));
bee = ImageIO.read(ShootGame.class.getResource("bee.png"));
bullet = ImageIO.read(ShootGame.class.getResource("bullet.png"));
hero0 = ImageIO.read(ShootGame.class.getResource("hero0.png"));
hero1 = ImageIO.read(ShootGame.class.getResource("hero1.png"));
}catch(Exception e){
e.printStackTrace();
}

}

public void paint(Graphics g){
g.drawImage(background,0,0,null);
paintHero(g);
paintFlyingObjects(g);
paintBullets(g);

}

public void paintHero(Graphics g){
g.drawImage(hero.image,hero.x,hero.y,null);
}
public void paintFlyingObjects(Graphics g){
for (int i=0;i<flyings.length;i++){
FlyingObject f = flyings[i];
g.drawImage(f.image,f.x,f.y,null);
}
}
public void paintBullets(Graphics g){
for (int i=0;i<bullets.length;i++){
Bullet b= bullets[i];
g.drawImage(b.image,b.x,b.y,null);
}
}

public static void main(String[] args) {
JFrame frame = new JFrame("Fly");
ShootGame game = new ShootGame();
frame.add(game);
frame.setSize(WIDTH, HEIGHT);
frame.setAlwaysOnTop(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);

}

}

2类 玩家飞机

package qiqi.shoot;
import java.awt.image.BufferedImage;
import java.util.Random;

public class Hero extends FlyingObject {
private int life;
private int doubleFire;
private BufferedImage[] images;
private int index;

public Hero(){
image=ShootGame.hero0;
width=image.getWidth();
height=image.getHeight();
x =150;
y=400;
life=3;
doubleFire=0;
images=new BufferedImage[]{ShootGame.hero0,ShootGame.hero1};
index=0;
}

}

3类  FlyingObject (所有飞行物的父类)

package qiqi.shoot;
import java.awt.image.BufferedImage;

/*
*
* 飞行物类*/
public class FlyingObject {
protected BufferedImage image;
protected int width;
protected int height;
protected int x;
protected int y;

}

4类 接口类 Enemy

package qiqi.shoot;

public interface Enemy {
/*得分*/
public int getSorce();
}

package com.tarena.shoot;

import java.util.Random;

public class Bullet extends FlyingObject{
private int speed=3;

public Bullet(int x,int y){
image=ShootGame.bullet;
width=image.getWidth();
height=image.getHeight();
this.x=x;
this.y=y;
}

}

5类 小蜜蜂类

package qiqi.shoot;

import java.util.Random;

public class Bee extends FlyingObject implements Award {

private int xSpeed=1;
private int ySpeed=2;
private int awardType;

public Bee(){
image=ShootGame.bee;
width=image.getWidth();
height=image.getHeight();
Random rand= new Random();
x =rand.nextInt(ShootGame.WIDTH-this.width);
y=-this.height;
awardType=rand.nextInt(2);

}

public int getType(){
return awardType;
}
}

6类  奖励接口类

package qiqi.shoot;

/** 奖励*/
public interface Award {
public int DOUBLE_FIRE=0;
public int LIFE=1;
public int getType();

}

7类 敌机类

package qiqi.shoot;
import java.util.Random;

public class Airplane extends FlyingObject implements Enemy{

private int speed=2;

public Airplane(){
image=ShootGame.airplane;
width=image.getWidth();
height=image.getHeight();
Random rand= new Random();
x =rand.nextInt(ShootGame.WIDTH-this.width);
y=-this.height;

}

public int getSorce(){
return 5;
}

}

时间: 2024-10-09 18:49:56

打飞机游戏第一天,诸神归位的相关文章

2018年国产游戏第一不解之谜:外国怪兽进入洪荒世界不违和?

"开局一条鲲"这档子忽悠型的游戏,在某种程度上,还给游戏玩家们添加了一个另类的衍生游戏--我们来找茬. 一些细心地自媒体和网民则发现了许多此类图片中最具有诱惑力的"鲲"元素,其实都是从一些科幻影视或桌面游戏中直接剪切而来的. 最常见的巨鲲.尸鲲,其原画来自2个不同的国外画师的科幻插画<梦一场>和<寻鲲>(FINDING-THE FISH):而看着非常惊悚的骨鲲原画,则出自导演卢埃里·罗宾森为筹拍科幻电影<利维坦>,而在2015年发

13.1-全栈Java笔记:打飞机游戏实战项目|AWT技术|MyGameFrame

简介和项目目标 通过游戏项目学习整个Java基础知识体系,我们做了精心的设计,让每一章知识都能获得应用. 比如:多线程用来实现动画效果.容器实现对于多发炮弹的存取和处理.常用类等等的应用. 寓教于乐,让大家迅速入门,更希望通过喜闻乐见的小游戏,让大家爱上编程,爱上"程序员". 老鸟建议 很多朋友会疑惑:"游戏项目,又不能拿到企业面试中,为什么要讲?" 这是一种太过于功利的想法.就像,我们说:"今天吃个馒头,又不是长高,为什么要吃呢?" 游戏项目的

C语言应用-飞机游戏

在第一次的C语言程序设计课上我们第一次接触到将近200行程序的大型程序.即使现在已经将这个程序分析的十分清楚,但是每次看到这么多的程序还是令我感到头痛不已. 这个大型的程序是一个基础的飞机类型的游戏.虽然比我们现在手机上.电脑上玩的游戏要简陋不止几百倍而且由于它是利用C语言的循环语句进行输出所以在玩的时候总是在不停地闪烁使人有些头晕.但我还是觉得异常有趣. printf这个函数在这个飞机游戏中用来显示和输出整个游戏.发现printf这个函数不仅仅是用来简单的输出,还可以配合getch()这个函数

关于《飞机游戏软件:C语言应用初步感受》的感想

C语言课程设计的第一节课,老师提供了一个C语言的飞机游戏让我们感受. 首先安装c-free,然后是将代码贴进去运行, 界面虽然有点简单,但是真正的游戏,C语言还能做这么有意思的东西,真是没有想到. 这是第一次认为C语言是个神奇的语言,竟然可以编写出游戏来. 用到的语句也很简单. 比如:#include<stdio.h>等,都是以前学过的知识,真的是想要好好学习一下C语言,争取自己编写个小程序出来.

飞机游戏程序

C语言的基本语句功能的体会和"飞机游戏"的结构分析 通过今天对于C语言结构的学习,我对于C语言的基本功能语句所能时限的功能感到不可思议,短短的几段简单的程序就能完成看似如此复杂的事情. 就如今天学习的"飞机游戏",我们可以把如此复杂的程序分成main,print,movebul, movepla,setting和menu6大块. 1 首先是main 函数 /全局变量:界面.我机初始位.界面宽度.敌机速度.敌机密度.得分.死亡 main(void) { menu();

[Cocos2d-x/iOS源码]&lt;诸神的挑战&gt;三消新玩法

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 游戏官方下载:http://dwz.cn/RwTjl 游戏视频预览:http://dwz.cn/RzHHd 游戏开发博客:http://dwz.cn/RzJzI 游戏源码传送:http://dwz.cn/Nret1 [源码下载] 代码引擎:cocos2d-x, Xcode[完美支持arm64,可直接发布AppS

飞机游戏在C语言程序的基本语句能完成功能的体会

论飞机游戏在C语言程序的基本语句能完成功能的体会 一.题目:  射击类飞机游戏 二.目的:  通过c语言编写一个射击类的打飞机小游戏,可以通过键盘来进行游戏,操作方法是"a""d""w"或者"←""↑""→"来控制,击中敌机可获得积分,被敌机撞中死亡一次,每次游戏有3次生还机会,游戏结束后可选择是否重新开始游戏. 三.改进:  这个游戏是我对一个小游戏进行的改造升级版,添加了颜色函数.终

[飞机游戏}

飞机游戏 老师提供了飞机游戏的代码,将代码放入Cfree中运行,就出现了一个黑色对话框,一个看似简单的游戏,但是代码看起来却不容易. 用方向键控制飞机走动,用w控制发射子弹,敌机不断从上面飞下来,子弹击中敌机得分,我机被对面飞机撞到我机死亡. 定义一个二位数组对位游戏界面,读取键盘操作数组内的数据,输出整个数组,刷新,重复. 敌机移动:从数组一行第一个元素开始判断,如果是敌机数值,该数值向下移动一行,原位置赋值空白. 子弹移动:从数组最后一行第一个元素开始判断,如果是子弹数值,该数值向下移动一行

飞机游戏软件:C语言应用初步感受

C语言课程设以一节课,老师提供了一个C语言的飞机游戏让我们感受,上学期C语言课程,主要是各种语句的练习,这次是用以前的知识来感受一个实际的系统. 首先安装c-free,然后是将代码贴进去运行, 界面虽然有点简单,但是真正的游戏,C语言还能做这么有意思的东西,真是没有想到. 分析一下程序,感觉没有太复杂的,就是上学期学习的简单语句的组合,但是用的非常好.首先看看用到了几种语句: 1.首先是在屏幕上显示的语句printf,有点忘记了,百度一下, http://baike.baidu.com/link