坦克大战

js坦克大战

▼魔方 西西 提交于 2020-02-22 05:06:40
bug一大堆 代码下载 <!DOCTYPE html> <html> <head> <title>tank</title> <style type="text/css"> body { margin: 0px; padding: 0px; border: 0px; } .map { position: absolute; top: 30px; width: 390px; height: 390px; left: 50%; margin-left: -200px; border: 9px solid orange; background-color: #8B8989; } .mapchild { position: absolute; background-size: cover; } #ifo { position: absolute; top: 30px; width: 418px; height: 418px; left: 50%; margin-left: -200px; color: green; text-align: center; background-color: #FAEBD7; z-index: 10; } </style> </head> <body> <div id="ifo"> <h1 id="ifo_title"></h1> <h3>按键说明:</h3>

Egret学习-坦克大战开发(五)

冷暖自知 提交于 2020-01-30 12:35:43
玩家的功能已经全部完成,开始完成敌方的AI 敌方坦克也可以随机做一下几个动作 1.移动,2.发射子弹,3.转向 为了看起来效果更好一点,移动应该最大比例,发射子弹和转向应该比较少 首先要有个随机方法 1 public randomNum(minNum:number,maxNum:number){ 2 switch(arguments.length){ 3 case 1: 4 return Math.random()*minNum+1; 5 case 2: 6 return Math.random()*(maxNum-minNum+1)+minNum; 7 default: 8 return 0; 9 } 10 } 实现随机逻辑 1 private doEnemyAI() { 2 // 敌方坦克AI,随机发射,转向,移动 3 if(Main.enemyList.length <= 0) { 4 return; 5 } 6 for(let idx=Main.enemyList.length; idx>=0; idx--) { 7 let enemy:Tank = Main.enemyList[idx]; 8 if(enemy == null) { 9 continue; 10 } 11 let rand = this.randomNum(1,100);// 12 if(rand >=

基于Netty的联机版坦克大战

折月煮酒 提交于 2020-01-11 06:46:48
基于Netty的联机版坦克大战 项目介绍 项目github地址: 基于Netty的联机版坦克大战 该项目实现了联机版坦克大战,项目包括客户端与服务端 项目使用技术: 使用Netty实现客户端和服务端之间的通讯 使用Marshalling作为编解码技术 游戏界面使用java自带的swing与awt进行编写 使用Spring的依赖注入与java的反射机制简化了消息类型的判定 使用Mysql数据库 使用log4j记录日志 实现功能: 人机对战 多玩家开房间对战 碰撞检测 机器坦克使用A*算法,进行路径规划 机器坦克有巡逻范围的概念,当玩家坦克进入其巡逻范围,机器坦克才会使用A*寻路前往玩家坦克的位置 限制了子弹的飞行距离,当子弹到达飞行距离上限、击中障碍物、碰到边界时,子弹会爆炸。子弹爆炸是范围性伤害,在爆炸范围内,砖块和坦克都会被消灭 游戏支持多地图,玩家可以选择任意一幅地图 实现心跳机制,断线重连功能 在人机对战模式中,支持进度保存 实现用户登录、注册等功能 效果展示 在人机对战模式中,有多幅地图可供选择: 玩家对战模式: 使用方式 本项目使用maven构建,原则上不需要用户自行下载各种jar包,但是在pom.xml中添加jboss-marshalling-serial-1.3.0.CR9.jar依赖包,运行程序时会抛出异常,无法正常运行(原因暂时不明)

java小项目之:坦克大战,90后的集体回忆杀!

橙三吉。 提交于 2020-01-08 23:53:05
坦克大战小项目 在小学初中的时候,我相信我们都曾经沉迷于一种玩具“红白机”,这应该是80后90后的童年回忆。用绝对好好学习的誓言,求着父母买一台。自己学会插在电视机上,再和小伙伴一起买一些游戏卡带,便能在周末和课余时间,趁着父母不在厮杀一整天。 魂斗罗,超级玛丽,冒险岛,热血格斗,忍者神龟等等数不清的游戏,在我们夜以继日的奋斗下,被我们玩得十分娴熟。各种技能,小操作信手拈来。但在我的记忆中,有一款游戏我从来没通关过,那就是今天这文章的主角《坦克大战》。 《坦克大战》应该也是众多游戏中很出名的一款,今天便教大家用java做出这款童年经典的游戏。再也不担心怎么通关了! 先奉上游戏封面: 部分代码: 因为篇幅有限,无法将所有代码全部展示,大家有兴趣的可以私信我领取坦克大战的文件,我给大家分享!源码和素材都有! 最后,喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力! 祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早生贵子,从不掉发! 来源: 51CTO 作者: qq5dda6ecead5a8 链接: https://blog.51cto.com/14623707/2465345

java小项目之:坦克大战,90后的集体回忆杀!

我只是一个虾纸丫 提交于 2020-01-08 20:25:07
坦克大战小项目! 在小学初中的时候,我相信我们都曾经沉迷于一种玩具 “红白机”,这应该是80 后 90 后的童年回忆。用绝对好好学习的誓言,求着父母买一台。自己学会插在电视机上,再和小伙伴一起买一些游戏卡带,便能在周末和课余时间,趁着父母不在厮杀一整天。 魂斗罗,超级玛丽,冒险岛,热血格斗,忍者神龟等等数不清的游戏,在我们夜以继日的奋斗下,被我们玩得十分娴熟。各种技能,小操作信手拈来。但在我的记忆中,有一款游戏我从来没通关过,那就是今天这文章的主角《坦克大战》。 《坦克大战》应该也是众多游戏中很出名的一款,今天便教大家用 java 做出这款童年经典的游戏。再也不担心怎么通关了! 先奉上游戏封面: 部分代码: 因为篇幅有限,无法将所有代码全部展示,大家有兴趣的可以私信我领取坦克大战的文件,我给大家分享!源码和素材都有! 最后,喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力! 祝关注我的人都:身体健康,财源广进,福如东海 , 寿比南山,早生贵子,从不掉发 ! 来源: https://www.cnblogs.com/heqingxiaohuo/p/12168480.html

java小项目之:坦克大战,90后的集体回忆杀!

徘徊边缘 提交于 2020-01-08 19:26:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 坦克大战小项目! 在小学初中的时候,我相信我们都曾经沉迷于一种玩具“红白机”,这应该是80后90后的童年回忆。用绝对好好学习的誓言,求着父母买一台。自己学会插在电视机上,再和小伙伴一起买一些游戏卡带,便能在周末和课余时间,趁着父母不在厮杀一整天。 魂斗罗,超级玛丽,冒险岛,热血格斗,忍者神龟等等数不清的游戏,在我们夜以继日的奋斗下,被我们玩得十分娴熟。各种技能,小操作信手拈来。但在我的记忆中,有一款游戏我从来没通关过,那就是今天这文章的主角《坦克大战》。 《坦克大战》应该也是众多游戏中很出名的一款,今天便教大家用java做出这款童年经典的游戏。再也不担心怎么通关了! 先奉上游戏封面: 部分代码: 因为篇幅有限,无法将所有代码全部展示,大家有兴趣的可以私信我领取坦克大战的文件,我给大家分享!源码和素材都有! 最后,喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力! 祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早生贵子,从不掉发! 来源: oschina 链接: https://my.oschina.net/u/4294714/blog/3155013

Fantastic Tank using libgdx (坦克大战变种版)

坚强是说给别人听的谎言 提交于 2019-12-30 12:10:09
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在开源中国来了很久,但是没怎么写博客,自己技术糊口饭还是可以的, 写技术博客其实对个人是很有帮助的,以后多多写技术博客和上github开源,为开源贡献点绵薄之力。 这次把我之前写的一个小游戏(坦克大战的变种)放出来。 希望和大伙一起交流进步。 当然这个游戏其实很有一些想法没完成呢,只能算是一个半成品。 注释还是挺全的,刚学游戏引擎的朋友可以clone下来看看哈。 坦克大战我都写过几个版本了,从最初的javase 到 android canvan 到 opengl 再到 Libgdx游戏引擎. 一步一步的感受到了设计游戏的魅力。 个人以前也玩过不少游戏,所以对游戏也是有些想法。可惜啊,不会美术有木有。 到处反编译什么的,你懂的。代码已经放在了github上。链接 https://github.com/LightSun/FantasticTank . clone地址: https://github.com/LightSun/FantasticTank.git 最后希望结交一些志同道合的朋友,一起设计游戏,写游戏。 享受游戏设计的魅力! QQ群: 389960698 欢迎程序、ui or 美工、策划等加入。 来源: oschina 链接: https://my.oschina.net/u/1269564/blog

清华毕业大佬用一个坦克大战项目,轻松带你玩转Java23种设计模式(奥利给)

自闭症网瘾萝莉.ら 提交于 2019-12-11 18:50:59
先给大家讲述一下坦克大战是怎么进行运行的。 坦克大战第一节: new 出一个窗口; 设定标题栏内容; TankFrame从Frame继承+显示; 认识paint方法,重写; 坦克大战第二节 学习graphics类,画图; 学习repaint方法; 实现MyKeyListener,对键盘作出响应; MyKeyListener从KeyAdapter继承; 坦克大战第三节 取得具体按键信息; 根据具体按键调整坦克位置,持有对方引用; 抽象出坦克类,学习使用枚举类型; 坦克大战第四节 把监听处理类MyKeyListener放到TankFrame内; 用匿名内部类处理窗口关闭; 根据按键状态,改变坦克方向; 坦克大战第五节 根据坦克方向移动位置; 能停,能动; test包,关于classloader的知识; 06坦克大战第六节 将坦克换成图片版; 画出一颗子弹,让子弹飞一会儿; 按下ctrl键,主战坦克打出一发炮弹; 07坦克大战第七节 打出多发子弹; 子弹从坦克中心位置打出; 子弹消亡(飞出游戏区); 08坦克大战第八节 定义rectangle属性,不用每次都new; 炮弹new出来自动加入容器,死掉后自动去除; 分离玩家和机器人,对边界进行不同的处理; 09坦克大战第九节 用双缓冲消除闪烁; 加一堆敌人坦克; 做碰撞检测; 10坦克大战第十节 显示爆炸; 加入声音; 让敌人坦克更加智能;

帧同步坦克大战移动系统

廉价感情. 提交于 2019-12-06 11:05:47
上节讲到了匹配系统,匹配完成之后,我们就需要开始进行帧同步了。但是,需要注意,只有房主才可以调用开始帧同步的方法。因此,需要加一层判断。 然后,房间内的其他玩家需要监听开始帧同步的广播,接收到开始帧同步的消息之后,进入游戏场景。 game_scene:游戏主场景。(终于到最关键的逻辑部分了) 首先,进入游戏主场景之后,进行一些玩家的初始化(比如位置,血量,攻击,防御等信息),还有摇杆的初始化。 需要注意的是,玩家的出生位置这一部分逻辑稍微复杂一些。因为,没有服务器逻辑支持,所以只能在客户端想办法。于是,我预先定义了两组,共六个玩家的位置。然后,把服务器传过来的房间内玩家也进行分组,最后将两个分组内的玩家分别和位置信息映射好就可以了。这部分逻辑在GameScene.ts的 initPlayerPoss方法里。 摇杆分为左摇杆和右摇杆。左摇杆是控制坦克的位置和方向的,右摇杆控制坦克的炮头方向和射击。(坦克的方向和坦克的炮头方向互不影响,需要注意一下) 所有初始化动作完成之后,就需要处理逻辑帧消息和发送帧消息了。以下是接收帧消息和发送帧消息的主要代码 每次处理完帧消息之后,就把逻辑帧的信息同步到表现层,然后把当前帧的消息发送到服务器。 之前,给服务器发送帧消息,我是每次摇杆监听到有变动就发送。这样会导致帧消息发送太频繁,没有必要这样做。另外,还会导致一个致命的问题,帧消息的顺序错乱

pygame坦克大战前夕

匿名 (未验证) 提交于 2019-12-02 23:47:01
最近想自己写pygame版的坦克大战,今晚已经完成如下功能: 1,我方坦克,可手动移动;敌方坦克,自动转方向与移动 2,坦克颜色随机,坦克形态大小可调。 3,双方坦克速度可调。 4,刷新坦克的位置随机。 5,坦克不会出界。 6,游戏窗口大小可调。 目前存在的问题: 1,表示坦克方向的列表,还未放到类里。 2,坦克会重叠(碰撞检测)。 3,炮弹类还未写。 4,...... # !/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan import pygame import random from pygame.locals import * pygame.init() FPS = pygame.time.Clock() fps = 10 screen_x = 640 screen_y = 480 # 退出标识符 done = False fill_color = 0, 0, 0 # 黑色 surface = pygame.display.set_mode((screen_x, screen_y)) pygame.display.set_caption("Draw a tank") # 小方块边长,一辆坦克是是7*7个小方块组成的 blockage = 5 tank_u = [1, 0, 0, 3, 0, 0,