武器装备

清华毕业大佬用一个坦克大战项目,轻松带你玩转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坦克大战第十节 显示爆炸; 加入声音; 让敌人坦克更加智能;

坦克1

删除回忆录丶 提交于 2019-12-04 04:47:06
#! /usr/bin/env python - - coding:utf8 - - ''' author:wasua purpose:学习python语言,其中的类以及pygame应用 *date:2019/04/20 ''' ''' 类: sprite: 1.游戏主界面 2.坦克:我方坦克\敌方坦克 1.移动 2.发射炮弹 3.炮弹:大炮弹\小炮弹 1.撞到 2.爆炸(也是一个连续图片) 4.障碍物:        1.能否闯过        2.能否击毁 5.爆炸 ''' import pygame, sys, time from random import randint class TankMain(object): """坦克大战的主窗口""" Width = 1000 Height = 800 live_count = 4 # 3次复活机会 my_tank = None #steel_wall = [] #block_wall = [] #grass_wall = [] wall=[] my_tank_missile = [] enemy_list = pygame.sprite.Group() enemy_missile_list = pygame.sprite.Group() explode_list = [] # 开始游戏的方法 def startGame

AI坦克对战(实现人机)

匿名 (未验证) 提交于 2019-12-03 00:30:01
从商店下载游戏:“Kawaii” Tank 或 其他坦克模型,构建 AI 对战坦克。具体要求 使用“感知-思考-行为”模型,建模 AI 坦克 场景中要放置一些障碍阻挡对手视线 坦克需要放置一个矩阵包围盒触发器,以保证 AI 坦克能使用射线探测对手方位 AI 坦克必须在有目标条件下使用导航,并能绕过障碍。(失去目标时策略自己思考) 实现人机对战 让坦克变得智能一点 : 有目标时进行导航 没有目标时自动锁定下一个目标 离目标越近速度越慢,小于20时停止 当与目标之间没有障碍物时才会进行射击 让坦克变得笨一点: 躲避障碍物的动作很慢 射击有误差 只能以固定频率发射子弹(1s) 在游戏商店下载“Tanks! Tutorial” 自制地图后bake: 预制的地图,坦克和子弹: 在enemy,player上有碰撞器,地图上的几个比较重要的建筑也加上了碰撞器,而子弹有触发器: enemy,player,bullet有不同的行为,他们都是刚体: enemy和player都有作为坦克的数据类,它们都是NavMeshAgent: Director 导演类,单例模式 public class Director : System.Object { private static Director _instance; public ScenceController scence { get ; set ;}

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,

小游戏 坦克大战

泪湿孤枕 提交于 2019-12-02 22:35:01
''' 新增功能: 优化:1.如果子弹碰到墙壁,让子弹消失 2.最多可以发射3颗子弹,不能一直发射 ''' #导入pygame模块 import pygame,time,random SCREEN_WIDTH=700 SCREEN_HEIGHT=500 BG_COLOR=pygame.Color(0,0,0) TEXT_COLOR=pygame.Color(255,0,0) class MainGame(): window=None my_tank=None #存储敌方坦克的列表 enemyTankList=[] #定义敌方坦克的数量 enemyTankCount=5 #存储我方子弹的列表 myBulletList=[] def __init__(self): pass #开始游戏 def startGame(self): #加载主窗口 #初始化窗口 pygame.display.init() #设置窗口的大小及显示 MainGame.window=pygame.display.set_mode([SCREEN_WIDTH,SCREEN_HEIGHT]) #初始化我方坦克 MainGame.my_tank=Tank(350,250) #初始化敌方坦克,并将敌方坦克添加到列表中 self.createEnemyTank() #设置窗口的标题 pygame.display.set

坦克大战

Deadly 提交于 2019-11-28 19:21:44
坦克类的设计 创建一个坦克的类 考虑坦克的属性(位置、方向、速度) 其中方向采用枚举(上、下、左、右) 加载坦克的图片 接受按键的触发,使坦克根据人的控制来动 代码实现 方向枚举 123 Enum Direction { UP, DOWN, LEFE, RIGHT} 图片资源类(例如坦克图片) 12345678910111213 public class { public static BufferedImage goodTankU, goodTankD, goodTankR, goodTankL; static{ try { goodTankU = ImageIO.read(Tank.class.getClassLoader().getResourceAsStream("images/p1tankU.gif")); goodTankD = ImageIO.read(Tank.class.getClassLoader().getResourceAsStream("images/p1tankD.gif")); goodTankL = ImageIO.read(Tank.class.getClassLoader().getResourceAsStream("images/p1tankL.gif")); goodTankR = ImageIO.read(Tank.class