java坦克大战 素材_坦克大战 游戏源码+ 素材+文档(了解面向对象的具体编程)

这是一个Java实现的坦克大战游戏,包括坦克的移动、发射子弹、碰撞检测、关卡设计、暂停功能、游戏得分记录等功能。通过阅读核心代码,可以了解面向对象编程在游戏开发中的应用。
摘要由CSDN通过智能技术生成

【实例简介】

【实例截图】

【核心代码】

/**

* 功能:坦克游戏的5.0[]

* 1.画出坦克.

* 2.我的坦克可以上下左右移动

* 3.可以发射子弹,子弹连发(最多5)

* 4.当我的坦克击中敌人坦克时,敌人就消失(爆炸的效果)

* 5.我被击中后,显示爆炸效果

* 6.防止敌人坦克重叠运动(*)

* 6.1决定把判断是否碰撞的函数写到EnemyTank类

* 7.可以分关(*)

* 7.1做一个开始的Panle,它是一个空的

* 7.2闪烁效果

* 8.可以在玩游戏的时候暂停和继续(*)

* 8.1当用户点击暂停时,子弹的速度和坦克速度设为0,并让坦克的方向不要变化

* 9.可以记录玩家的成绩(*)

* 9.1用文件流.

* 9.2单写一个记录类,完成对玩家记录

* 9.3先完成保存共击毁了多少辆敌人坦克的功能.

* 9.4存盘退出游戏,可以记录当时的敌人坦克坐标,并可以恢复

* 10.java如何操作声音文件(*)

* 10.1对声音文件的操作

*/

package com.test3;

import javax.imageio.ImageIO;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import java.io.*;

public class MyTankGame3 extends JFrame implements ActionListener {

MyPanel mp=null;

//定义一个开始面板

MyStartPanel msp=null;

//作出我需要的菜单

JMenuBar jmb=null;

//开始游戏

JMenu jm1=null;

JMenuItem jmil=null;

//退出系统

JMenuItem jmi2=null;

//存盘退出

JMenuItem jmi3=null;

JMenuItem jmi4=null;

public static void main(String[] args) {

// TODO Auto-generated method stub

MyTankGame3 mtg=new MyTankGame3();

}

//构造函数

public MyTankGame3()

{

//mp=new MyPanel();

//启动mp线程

//Thread t=new Thread(mp);

//t.start();

//this.add(mp);

//注册监听

//this.addKeyListener(mp);

//创建菜单及菜单选项

jmb=new JMenuBar();

jm1 =new JMenu("游戏(G)");

//设置快捷方式

jm1.setMnemonic('G');

jmil =new JMenuItem("开始新游戏(N)");

jmi2 =new JMenuItem("退出游戏(E)");

jmi3 =new JMenuItem("存盘退出游戏(C)");

jmi4 =new JMenuItem("继续上局游戏(S)");

//注册监听

jmi4.addActionListener(this);

jmi4.setActionCommand("conGame");

//注册监听

jmi3.addActionListener(this);

jmi3.setActionCommand("saveExit");

jmi2.addActionListener(this);

jmi2.setActionCommand("exit");

jmi2.setMnemonic('E');

//对jmil相应

jmil.addActionListener(this);

jmil.setActionCommand("newgame");

jm1.add(jmil);

jm1.add(jmi2);

jm1.add(jmi3);

jm1.add(jmi4);

jmb.add(jm1);

msp=new MyStartPanel();

Thread t=new Thread(msp);

t.start();

this.setJMenuBar(jmb);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.add(msp);

this.setSize(600, 500);

this.setVisible(true);

}

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

//对用户不同的点击作出不同的处理

if(arg0.getActionCommand().equals("newgame"))

{

//创建战场面板

mp=new MyPanel("newGame");

//启动mp线程

Thread t=new Thread(mp);

t.start();

//先删除旧的开始面板

t

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值