}
public void createServer(){
addMessage(“正在建立主机(端口9999)”);
try {
serverSocket = new ServerSocket(9999);
serverCreated = true;
} catch (Exception e) {
addMessage(“无法建立主机,请确认端口9999没有被别的程序使用”);
System.out.println(e);
t.stop();
return;
}
addMessage(“建立完成,等待玩家连接”);
try {
clientSocket = serverSocket.accept();
clientConnected = true;
out = new PrintWriter(clientSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
clientSocket.getInputStream()));
} catch (Exception e) {
addMessage(“连接中出现错误,请重新建立主机”);
serverCreated = false;
clientConnected = false;
t.stop();
//当发生错误,摧毁一切已创建的
try{
serverSocket.close();
clientSocket.close();
out.close();
in.close();
}catch(Exception ex){}
return;
}
view.messageField.setEnabled(true);
addMessage(“玩家已连接上,开始载入游戏”);
//一旦客户端连接,然后告诉客户端开始加载游戏
out.println(“L1;”);
//加载游戏
textures = new Image[88];
for(int i = 1; i < textures.length+1; i++)
textures[i-1] = Toolkit.getDefaultToolkit().getImage(“image\” + i + “.jpg”);
//设置第一关
actors = new Actor[400];
level.loadLevel(this);
P1 = new player(“1P”, this);
addActor(P1);
P2 = new player(“2P”, this);
addActor(P2);
gameStarted = true;
view.mainPanel.actors = actors;
view.mainPanel.gameStarted = true;
addMessage(“载入完毕,游戏开始了!”);
}
public void actionPerformed(ActionEvent e){
createServer();
//如果程序未能创建服务器,则什么也不做
if(!serverCreated)
return;
//游戏逻辑回路,
try{
while((inputLine = in.readLine()) != null){
//处理客户反馈消息
feedbackHandler.handleInstruction(this, inputLine);
outputLine = “”;
if(!gamePaused)
gameFlow++;
if(pausePressed){
if(!gamePaused){
outputLine+= “x0;”;
}else{
outputLine+= “x1;”;
}
pausePressed = false;
}
if(gameOver || (P1.life == 0 && P2.life == 0)){
if(P1.freezed != 1)
outputLine+=“a;”;
if((P1.freezed != 1 || messageIndex == 1) && serverVoteYes){
addMessage(“等待用户端玩家的回应…”);
}
if(P1.freezed != 1 || messageIndex == 0){
addMessage(“GAME OVER ! 想再玩一次吗 ( y / n ) ?”);
}
gameOver = true;
P1.freezed = 1;
P2.freezed = 1;
if(serverVoteNo && !serverVoteYes)
System.exit(0);
if(serverVoteYes){
outputLine+=“j;”;
if(clientVoteYes){
addMessage(“用户端玩家决定再玩一次,游戏重新开始了…”);
//重新启动游戏
P1 = new player(“1P”, this);
P2 = new player(“2P”, this);
level.reset();
level.loadLevel(this);
gameOver = false;
serverVoteYes = false;
clientVoteYes = false;
serverVoteNo = false;
enemy.freezedMoment = 0;
enemy.freezedTime = 0;
gameFlow = 0;
//告诉客户端程序重新启动游戏
outputLine+=“L1;”;
}
}
}
if(level.deathCount == 20 && !gameOver){
level.winningCount++;
if(level.winningCount == 120){
P1.freezed = 1;
P2.freezed = 1;
}
if(level.winningCount == 470){
if(P1.life > 0)
P1.reset();
if(P2.life > 0)
P2.reset();
level.loadLevel(this);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
结语
小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。
我们选择的这个行业就一直要持续的学习,又很吃青春饭。
虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。
送给每一位想学习Java小伙伴,用来提升自己。
本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
评论一下,感谢支持!
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算