求 关于我女友是个,, 完整百度资源

&>&&>&&>&&>&纯JAVA坦克大战,可以做毕业设计
纯JAVA坦克大战,可以做毕业设计
上传大小:1.16MB
J2SE ( Java 2 Standard Edition)就是Java2的标准版,主要用于桌面应用软件的编程,是伴随着计算机技术的飞速发展而诞生的一项新的开发技术。随着个人电脑的日益普及、Java功能在个人电脑上的实现,Java应用程序产生的单机增值服务逐渐体现出其影响力,对丰富人们的生活内容、愉悦身心、开发智力等起着不可忽视的作用。而随着网络的普及,信息技术的发展,电子竞技也以一种正规的行业逐步走进了人们的生活,特别是对年轻的一代,游戏更是娱乐项目中不可缺少的一种,玩游戏是一种娱乐,其实开发游戏更会使人乐在其中。
局域网坦克大战采用MyEclipse平台开发调试。玩家坦克的运行是通过键盘响应事件控制,敌方坦克则是自动运行并具有了一定的智能性。程序进行了精简和优化,游戏运行流畅,具有一定的吸引力。
论文通过总结和分析JAVA游戏的开发流程和代码框架的设计,开发了一款基于J2SE架构的游戏——局域网坦克大战,该游戏主要分为场景类、子弹类、坦克类、敌方坦克类、我方坦克类等几个类,能够实现敌方坦克和子弹的智能化运行等,具有一定的复杂性和可玩性。
题目:基于J2SE的局域网坦克大战设计与实现
运行平台要求:
1 首先电脑里按有JDK,然后安装MyEclipse。如果没有MyEclipse,只安装JDK也可以。
2 电脑系统Wxp,W7都可以,最好是Wxp
导入工程步骤和运行程序:
1 先讲解用JDK如何运行
(1)找到tank_java里的src文件夹,把src文件夹放到硬盘里,例如是D盘。
(2)开始-&运行-&cmd-&输入d: -&cd src -&cd wyf -&cd cgq -&javac TankServer.java-&java TankServer
(3)开始-&运行-&cmd-&输入d: -&cd src -&cd wyf -&cd cgq -&javac ClientServer.java-&java ClientServer
(4)输入用户名和IP等即可游戏。
2 用MyEclipse如何运行
(1)打开Myeclipse-&File-&import-&General-&Existing Projects into Workspace-&选中Select root directory-&单击右边的Browse
-&找到Tank_Java,选中,确定-&Finish
(2)找到src打开-&wyf.cgq-&鼠标右键TankServer.java-&Run As-&Java Application
(3)找到src打开-&wyf.cgq-&鼠标右键ClientServer.java-&Run As-&Java Application
(4)输入用户名和IP等即可游戏。...展开收缩
综合评分:4.5(41位用户评分)
所需积分:3
下载次数:265
审核通过送C币
创建者:lzce111
创建者:myself_sky
课程推荐相关知识库
上传者其他资源上传者专辑
课程资源热门标签
VIP会员动态
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
纯JAVA坦克大战,可以做毕业设计
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:tanke 使用Java开发的一个坦克大战游戏,所有素材都包括,对学习 se有很大帮助,有需要可 Develop 272万源代码下载-
&文件名称: tanke& & [
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 519 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:使用Java开发的一个坦克大战游戏,所有素材都包括,对学习javase有很大帮助,有需要可直接下载-Using Java to develop a Battle City game, all materials are included, are very helpful in learning javase, there is a need direct download
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&tanke\源码\Class14\.classpath&&.....\....\.......\.project&&.....\....\.......\111.wav&&.....\....\.......\bin\bomb_1.gif&&.....\....\.......\...\bomb_2.gif&&.....\....\.......\...\bomb_3.gif&&.....\....\.......\...\com\test1\AePlayWave.class&&.....\....\.......\...\...\.....\Test.class&&.....\....\.......\...\...\.....\TestAudio.class&&.....\....\.......\...\...\....3\AePlayWave.class&&.....\....\.......\...\...\.....\Bomb.class&&.....\....\.......\...\...\.....\EnemyTank.class&&.....\....\.......\...\...\.....\Hero.class&&.....\....\.......\...\...\.....\MyPanel.class&&.....\....\.......\...\...\.....\MyStartPanel.class&&.....\....\.......\...\...\.....\MyTankGame3.class&&.....\....\.......\...\...\.....\Node.class&&.....\....\.......\...\...\.....\Recorder.class&&.....\....\.......\...\...\.....\Shot.class&&.....\....\.......\...\...\.....\Tank.class&&.....\....\.......\bomb_1.gif&&.....\....\.......\bomb_2.gif&&.....\....\.......\bomb_3.gif&&.....\....\.......\src\bomb_1.gif&&.....\....\.......\...\bomb_2.gif&&.....\....\.......\...\bomb_3.gif&&.....\....\.......\...\com\test1\Test.java&&.....\....\.......\...\...\.....\TestAudio.java&&.....\....\.......\...\...\....3\Members.java&&.....\....\.......\...\...\.....\MyTankGame3.java&&.....\素材\111.wav&&.....\....\bomb_1.gif&&.....\....\bomb_2.gif&&.....\....\bomb_3.gif&&.....\源码\Class14\bin\com\test1&&.....\....\.......\...\...\test3&&.....\....\.......\src\com\test1&&.....\....\.......\...\...\test3&&.....\....\.......\bin\com&&.....\....\.......\src\com&&.....\....\.......\bin&&.....\....\.......\src&&.....\....\Class14&&.....\源码&&.....\素材&&tanke
&输入关键字,在本站272万海量源码库中尽情搜索:> 坦克大战游戏技术点小结(基于多线程)
坦克大战游戏技术点小结(基于多线程)
发布时间: & &
浏览:1 & &
回复:0 & &
悬赏:0.0希赛币
坦克大战游戏技术点总结(基于多线程)
  一.游戏编写的背景
  为加深对多线程的理解与运用,熟悉多线程的机制,编写了坦克大战这一个小游戏。其中实现了多个线程的控制及线程的监听功能。通过着以游戏的开发,确实加深了我对多线程的理解,也加深了对键盘监听机制、界面的熟悉,还有是双缓冲的学习与使用。
  二.游戏截图
  三.技术点
  ①.多线程:敌方坦克由五个线程控制,还有一个监听线程,还有一个控制屏幕刷新的线程,还有若干控制子弹的线程。有两个方法判断子弹是否与击中坦克,一个是用一个监听线程,在监听线程里得到装载有子弹属性的队列,装载坦克属性的队列,通过判断坦克种类是否与子弹种类一致(即自己一方的坦克发出标记为己方类型的子弹,敌方的坦克发出的子弹标记为敌方类型的子弹),在判断子弹与坦克是否有交集,就可以知道子弹是否击中坦克了。
  有一个坦克的父类,父类中油坦克的属性,坦克开火、移动的方法,自己的坦克与敌方的坦克分别继承父类坦克,己方坦克用主线程,敌方坦克新建一个线程,子弹通过坦克的方法发射,所以子弹线程中要得到坦克发射的坐标,子弹线程中还需要判断子弹是否与地图上的元素相撞(坦克也如此)。地图通过一个二维数组保存,不同元素标记为不同的数值,通过数值的不同,就可以判断子弹,坦克是否可以前行了。
  所以,总结一点就是,框架很重要,线程的控制是重点,框架要实现各个线程对各种因素的控制。
  ②.重绘与双缓冲技术
  坦克大战还有重要的一个,就是实现界面上各个因素的重绘。随意每个因素都必须要写一个draw()的方法,再在panit()中调用。不过随着图片的增多,界面会出现闪烁的线程,要解决这种现象,就要用到双缓冲技术,即重写update()方法,在update()方法中创建一个图片对象,相当于以后重绘的各种图片都绘在这张图片上一样。
  // 声明缓冲图像
Image offScreenImage =
// 双缓冲机制的具体实现
// 重写update方法,先将窗体上的图形画在图片对象上,再一次性显示
public void update(Graphics g) {
if (offScreenImage == null) {
// 截取窗体所在位置的图片
offScreenImage = this.createImage(GameWidth, GameHeight);
// 获得截取图片的画布
Graphics gImage = offScreenImage.getGraphics();
// 获取画布的底色并且使用这种颜色填充画布(默认的颜色为黑色)
Color c = Color.BLACK;
gImage.setColor(c);
gImage.fillRect(0, 0, GameWidth, GameHeight); // 有清除上一步图像的功能,相当于gImage.clearRect(0,
// 0, WIDTH, HEIGHT)
// 将截下的图片上的画布传给重绘函数,重绘函数只需要在截图的画布上绘制即可,不必在从底层绘制
paint(gImage);
// 将接下来的图片加载到窗体画布上去,才能考到每次画的效果
g.drawImage(offScreenImage, 0, 0, null);
// 重绘坦克、子弹、地图
public void paint(Graphics g) {
// 在重绘函数中实现双缓冲机制
offScreenImage = this.createImage(WIDTH, HEIGHT);
// 获得截取图片的画布
gImage = offScreenImage.getGraphics();
// 获取画布的底色并且使用这种颜色填充画布,如果没有填充效果的画,则会出现拖动的效果
gImage.setColor(gImage.getColor());
gImage.fillRect(0, 0, WIDTH, HEIGHT); // 有清楚上一步图像的功能,相当于gImage.clearRect(0, 0, WIDTH, HEIGHT)
// 调用父类的重绘方法,传入的是截取图片上的画布,防止再从最底层来重绘
super.paint(gImage);
gImage.setColor(Color.RED);
gImage.drawString("敌方坦克数量:" + ThreadListener.count2, 10, 20);
gImage.drawString("我方坦克数量:" + ThreadListener.count1, 10, 40);
if (!Cannonball.isStop) {
paintBallCollide(gImage);
paintMap(g, Map.Map1Copy);
paintTank(gImage);
if (Cannonball.isStop) { // 如果停止,再将Map1赋给Map1
for (int i = 0; i & Map.Map1. i++) {
for (int j = 0; j & Map.Map1[i]. j++) {
Map.Map1Copy[i][j] = Map.Map1[i][j];
paintMap(gImage, Map.Map1Copy);
// System.out.println("&__$>$ + tankarray.size());
  还有一种解决办法就是用一个线程,不断地刷新界面,消除闪烁。
  // 利用一线程实现画面不停的刷新
class PaintThread implements Runnable {
public void run() {
while (true) {
repaint();
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&

我要回帖

更多关于 关于我女友是个一本正经的 的文章

 

随机推荐