package Frame;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.xml.namespace.QName;
import org.omg.CORBA.PUBLIC_MEMBER;
import Objects.*;
import javazoom.jl.player.Player;
public class Servergame extends JPanel implements KeyListener{
/*private List<Enemy> enemies1 = new ArrayList<Enemy>();
private List<Enemy> enemies2 = new ArrayList<Enemy>();
*private List<Enemy> enemies3 = new ArrayList<Enemy>();*/
// boss
private boss1 boss1;
private int bossBlood = 2000;
private long time = 0;
int operations = 0;
// 锟叫凤拷锟节碉拷
private List<enemy> enemies = new ArrayList<enemy>();
private List<enemybullet> ebull = new ArrayList<enemybullet>();
// 锟揭凤拷
private Planes p1;
private Planes p2;
List<Bullet> mybullet = new ArrayList<Bullet>();
private int p1life = 6;
private int money = 0;
private int score = 0;
private int stage = 1;
public int couldbehit1 = 0;
public int couldbehit2 = 0;
public int boss = 0;
private boolean vkUp = false;
private boolean vkDown = false;
private boolean vkLeft = false;
private boolean vkRight = false;
private boolean vkFire = false;
private boolean vkUp2 = false;
private boolean vkDown2 = false;
private boolean vkLeft2 = false;
private boolean vkRight2 = false;
private boolean vkFire2 = false;
private bulletup bup =null;
Socket socket;
Font fn = new Font("Microsoft Yahei", Font.BOLD, 20);
Font fn1 = new Font("Microsoft Yahei", Font.BOLD, 120);
public BufferedReader reader1;
private PrintWriter writer1;
public void getserver() {
try {
ServerSocket server;
server = new ServerSocket(2333);
System.out.println("准备连接");
System.out.println("等待加入中");
socket = server.accept();
reader1 = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer1 = new PrintWriter(socket.getOutputStream(),true);
}catch (Exception e) {
e.printStackTrace();
}
}
public Servergame() {
repaint();
getserver();
this.addKeyListener(this);
p1 = new Planes(300, 950,Resources.p1);
p2 = new Planes(600, 950,Resources.p2);
Thread animate = new Thread() {
public void run() {
while (true) {
if(time<=90000) {
for(int op = 0;op<15-operations;op++) {
writer1.println("f");
}
operations = 0;
for(int ti = 0;ti<15;ti++) {
String it = null;
try {
it=reader1.readLine();
} catch (IOException e1) {
e1.printStackTrace();
}
if(it.equals("left")) {
vkLeft2 = true;
}
if(it.equals("right")) {
vkRight2 = true;
}
if(it.equals("up")) {
vkUp2 = true;
}
if(it.equals("down")) {
vkDown2 = true;
}
if(it.equals("fire")) {
vkFire2 = true;
}
if(it.equals("leftf")) {
vkLeft2 = false;
}
if(it.equals("rightf")) {
vkRight2 = false;
}
if(it.equals("upf")) {
vkUp2 = false;
}
if(it.equals("downf")) {
vkDown2 = false;
}
if(it.equals("firef")) {
vkFire2 = false;
}
}
int i = 0;
while(i<enemies.size()){
if (enemies.get(i).getY()>=1080||enemies.get(i).getX()>=900||enemies.get(i).getX()<0||enemies.get(i).getHealth()<=0) {
enemies.remove(i);
i--;
}
i++;
}
int bullets = 0;
while(bullets<ebull.size()) {
if(ebull.get(bullets).getX()<0||ebull.get(bullets).getX()>900
||ebull.get(bullets).getY()<0||ebull.get(bullets).getY()>1100) {
ebull.remove(bullets);
bullets--;
}
bullets++;
}
bullethit();
int mybullets = 0;
while(mybullets<mybullet.size()) {
if(mybullet.get(mybullets).getX()<0||mybullet.get(mybullets).getX()>900
||mybullet.get(mybullets).getY()<0||mybullet.get(mybullets).getY()>1100) {
mybullet.remove(mybullets);
mybullets--;
}
mybullets++;
}
for(int t = 0;t<enemies.size();t++) {
enemies.get(t).move();
}
if(time%1300 == 0) {
for(int t = 0;t<enemies.size();t++) {
if(enemies.get(t).getHeight() == 71||enemies.get(t).getHeight() ==87) {
enemybullet eb1 = enemies.get(t).fire1();
enemybullet eb2 = enemies.get(t).fire2();
enemybullet eb3 = enemies.get(t).fire3();
if(eb1 != null) {
ebull.add(eb1);
}
if(eb2 != null) {
ebull.add(eb2);
}
if(eb3 != null) {
ebull.add(eb3);
}
}
}
}
if(time%1500 == 0) {
for(int t = 0;t<enemies.size();t++) {
if(enemies.get(t).getHeight() == 101||enemies.get(t).getHeight() ==66) {
enemybullet eb1 = enemies.get(t).fire1();
enemybullet eb2 = enemies.get(t).fire2();
enemybullet eb3 = enemies.get(t).fire3();
if(eb1 != null) {
ebull.add(eb1);
}
if(eb2 != null) {
ebull.add(eb2);
}
if(eb3 != null) {
ebull.add(eb3);
}
}
}
}
if(time%30000==0&&time!=0) {
bup = new bulletup((int)(Math.random()*850), 0);
}
if(bup!=null) {
bup.move();
}
bulletup1();
bulletup2();
addenemy();
if(couldbehit1 == 0) {
p1.setImage(Resources.p1);
int isHit =enemybullethit1();
int iscrashed = crash1();
if(isHit == 1||iscrashed == 1) {
couldbehit1 = 150;
p1.setImage(Resources.explode);
repaint();
}
}else {
couldbehit1 --;
}
if(couldbehit2 == 0) {
p2.setImage(Resources.p2);
int isHit =enemybullethit2();
int iscrashed = crash2();
if(isHit == 1||iscrashed == 1) {
couldbehit2 = 150;
p2.setImage(Resources.explode);
repaint();
}
}else {
couldbehit2 --;
}
if (vkLeft)
p1.moveLeft(3);
if (vkUp)
p1.moveUp(3);
if (vkRight)
p1.moveRight(3);
if (vkDown)
p1.moveDown(3);
if (vkFire &&time%180 ==0) {
Bullet b1 = p1.fire();
mybullet.add(b1);
fire();
}
if (vkLeft2)
p2.moveLeft(3);
if (vkUp2)
p2.moveUp(3);
if (vkRight2)
p2.moveRight(3);
if (vkDown2)
p2.moveDown(3);
if (vkFire2 &&time%180 ==0) {
Bullet b1 = p2.fire();
mybullet.add(b1);
}
repaint();
if(p1life <=-1) {//生命值耗尽,游戏结束
try {
for(int op = 0;op<15-operations;op++) {
writer1.println("f");
}
repaint();
operations = 0;
Thread.sleep(1000000
没有合适的资源?快使用搜索试试~ 我知道了~
JAVA实现简易雷电游戏,可以联网,但仍等待进一步优化
共168个文件
png:87个
class:34个
java:18个
需积分: 9 15 下载量 126 浏览量
2017-12-28
19:44:04
上传
评论
收藏 59.35MB ZIP 举报
温馨提示
JAVA作业之开发游戏,建议的雷电战机游戏的实现,设计是可以联网的,但是由于技术局限,目前等待优化,欢迎大家多多指教~~~~
资源推荐
资源详情
资源评论
收起资源包目录
JAVA实现简易雷电游戏,可以联网,但仍等待进一步优化 (168个子文件)
Servergame.class 13KB
Clientgame.class 11KB
Clientgame$1.class 11KB
Servergame$1.class 10KB
Oneplayergame.class 9KB
Oneplayergame$1.class 8KB
Mainpanel.class 3KB
enemy.class 3KB
Resources.class 2KB
enemybullet.class 2KB
boss1.class 2KB
Planes.class 2KB
Bullet.class 2KB
Flyingobject.class 1KB
enemy1.class 1KB
enemy4.class 1KB
enemy2.class 1KB
Mainframe.class 1KB
Mainpanel$oneplayergame.class 1KB
Mainpanel$twoplayergame1.class 1KB
Mainpanel$twoplayergame2.class 1KB
enemy3.class 1KB
Oneplayergame$2.class 941B
Oneplayergame$3.class 938B
Oneplayergame$4.class 938B
Servergame$2.class 923B
Clientgame$2.class 923B
Servergame$4.class 920B
Clientgame$3.class 920B
Clientgame$4.class 920B
Servergame$3.class 920B
Twoplayeraddenemy.class 907B
Mainframe$1.class 720B
bulletup.class 525B
.classpath 355B
explode.gif 230KB
explode.gif 230KB
jl1.0.1.jar 103KB
jl1.0.1.jar 103KB
Servergame.java 23KB
Clientgame.java 23KB
Oneplayergame.java 18KB
Mainpanel.java 4KB
Resources.java 3KB
enemy.java 2KB
enemybullet.java 2KB
boss1.java 2KB
Mainframe.java 1KB
Planes.java 1KB
Bullet.java 1KB
Flyingobject.java 906B
enemy1.java 824B
enemy2.java 620B
enemy4.java 567B
enemy3.java 521B
Twoplayeraddenemy.java 475B
bulletup.java 218B
gamebackground.jpg 311KB
gamebackground.jpg 311KB
mainbackground.jpg 197KB
mainbackground.jpg 197KB
mainbackground.jpg 138KB
title.jpg 41KB
title.jpg 41KB
title.jpg 41KB
1.jpg 14KB
1.jpg 14KB
1.jpg 14KB
2.jpg 12KB
2.jpg 12KB
2.jpg 12KB
3.jpg 11KB
3.jpg 11KB
3.jpg 11KB
main.mp3 18.54MB
main.mp3 18.54MB
main.mp3 18.54MB
6319.mp3 51KB
6538.mp3 25KB
boss2.png 214KB
boss2.png 214KB
boss1.png 143KB
boss1.png 143KB
boss1.png 143KB
boss1.png 143KB
title.png 50KB
title.png 50KB
title.png 50KB
enemy2.png 23KB
enemy2.png 23KB
enemy2.png 23KB
enemy2.png 23KB
enemy4.png 20KB
enemy4.png 20KB
enemy4.png 20KB
enemy4.png 20KB
P1plane.png 17KB
P1plane.png 17KB
P1plane.png 17KB
P1plane.png 17KB
共 168 条
- 1
- 2
资源评论
Zeratools
- 粉丝: 2
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于STM32单片机心率脉搏监测健康运动计步系统源码带视频演示.7z
- mmexport1713192608513.mp4
- 斯特林V4发动机 斯特林V4发动机
- 基于C实现的N阶数字正方形 ;N阶数字三角形;N阶数字递减三角形;乘法表
- 基于分水岭算法的图像分割的python源码(课程设计).zip
- 基于Java 实现的二进制十进制之间的相互转换
- Pytorch实现基于卷积神经网络的面部表情识别项目源码+数据集+全部资料(毕业设计).zip
- Pytorch实现基于深度学习卷积神经网络的面部表情识别项目源码+面部表情数据集(人脸面部表情识别项目).zip
- 淘金小游戏助手.apk
- 基于卷积神经网络的人脸面部表情识别项目源码+面部表情数据集+训练好的模型(人脸面部表情识别项目).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功