SF
我所知道系列:设计模式
我所知道系列:设计模式
注册登录
关注博客
注册登录
主页
关于
RSS
我所知道坦克大战(网络版)之上一版本问题指出、使用配置文件添加灵活性
28640
2021-03-03
阅读 4 分钟
1.1k
前言前面我们完成了坦克的大战的单机版,从本篇开始升级成网络版在此之前我们需要修正上一版不足的地方之处一、修正方向枚举我们目前的方向采用的是Tank类里的枚举,但是我们的使用者不止有坦克,还有炮筒等等既然如此我们应该把该枚举提升至一个级别,改为一个公共的枚举类 {代码...} 因此我们可以将坦克里的Direction...
我所知道坦克大战(单机版)之 建造目录
28640
2021-02-28
阅读 1 分钟
1.4k
前言小时候玩的坦克大战现在也可以制作一个出来,虽然是很简单的单机版但是这种成就感也是很满足,毕竟以前是没有头绪的,感谢马士兵老师接下来我对坦克大战的一些项目知识点进行不同的目录,方便针对学习项目知识点目录* 初创游戏窗口:文章链接* 画出主坦克实心圆:文章链接* 键盘改变主坦克移动:文章链接* 让坦克完...
我所知道坦克大战(单机版)之机器坦克全消亡后重新加入、键盘F2复活主坦克
28640
2021-02-28
阅读 2 分钟
1.3k
本章目的机器坦克全消亡后重新加入键盘F2复活主坦克一、敌方坦克全消亡后重新加入我们现在版本坦克在我们击杀完敌方坦克后,就需要重新运行游戏窗口我们在运行游戏窗口时会从存放敌方坦克的容器里添加十个坦克那么当我们将容器里的敌方坦克都杀完了,那是不是容器里就没有了?那么我们可以思考一下:当存放敌方坦克的容...
我所知道坦克大战(单机版)之图形化显示生命值、添加功能方块:血包
28640
2021-02-26
阅读 4 分钟
1.4k
本章目的图形化显示生命值添加功能方块:血包一、图形化显示生命值虽然我们现在在游戏窗口左上角显示了当前的生命值,但是觉得还是将血条显示出来更好一些那么具体怎么做呢?使用面向对象思维在坦克类定义一个内部类 {代码...} 这时我们在绘制坦克的时候呢,将这个类的绘制方法也给绘制出来 {代码...} 接下来我们运行游...
我所知道坦克大战(单机版)之解决坦克碰撞时穿透问题、发射超级炮弹、添加坦克生命值
28640
2021-02-24
阅读 4 分钟
1.5k
本章目的解决坦克相撞穿透问题发射超级炮弹添加坦克生命值一、解决坦克碰撞时穿透问题我们发现目前当两坦克碰撞在一块的时候,会直接穿透过去根据上一个思路回到原位置,我们能否进行更加智能一些?当坦克相撞也回到原位置? {代码...} 同时我们在TankClient方法让敌方坦克进行坦克与坦克碰撞的处理 {代码...} 这时我们...
我所知道坦克大战(单机版)之添加阻碍墙、敌方坦克无法穿越阻碍墙
28640
2021-02-24
阅读 4 分钟
1.8k
本章目的添加阻碍墙敌方坦克无法穿越阻碍墙一、添加阻碍墙我们想想怎么添加阻碍墙?阻碍墙的作用有是什么?坦克、子弹与它有什么关系?一般当我们对着阻碍墙发射炮弹,子弹与阻碍墙碰撞的话会消失以及我们的坦克移动的时候,无法通过阻碍墙,那么根据前面子弹、坦克的思路我们的阻碍墙是不是也可以使用面向对象的思路创...
我所知道坦克大战(单机版)之添加多个机器坦克、让机器坦克动起来、让坦克智能起来
28640
2021-02-23
阅读 7 分钟
1.5k
本章目的添加多个机器坦克让机器坦克动起来让坦克智能起来一、添加多个机器坦克目前我的坏阵营的坦克只有一个,是我们手动创建出来的但是我们现在想要玩的过瘾,杀的痛快就要创建多个坦克,也需要使用一个容器管理起来 {代码...} 这时我们就有十个敌方阵营的坦克了但是我们还是要思考一个问题:我们发射的子弹怎么打中这...
我所知道坦克大战(单机版)之添加爆炸效果、击毙坦克后产生爆炸
28640
2021-02-23
阅读 3 分钟
1.5k
本章目的添加爆炸效果击毙坦克后产生爆炸一、添加爆炸效果我们想在添加一个爆炸的效果,那么一般爆炸效果是怎么做到的呢?其实与子弹一样,也是画出来的,先是小爆炸到大爆炸,完后又小爆炸消失那么我们用面向对象的思维,那么爆炸的效果也是一个类 {代码...} 对于爆炸的绘画,我们也是与子弹、坦克等有相应的存活、大小...
我所知道坦克大战(单机版)之解决坦克出界问题、添加机器坦克、将机器坦克击毙
28640
2021-02-22
阅读 5 分钟
1.6k
本章目的解决坦克出界问题让坦克发射多发炮弹问题一、解决坦克出界问题我们发现现在当前版本,如果控制这个坦克一直往左或者往右的话是会移出边界的那么怎么解决这个问题呢?其实与子弹有异曲同工之处 {代码...} 这时我们的坦克则无法再跑到外面了但是我们发现当前这个版本只有我们一个坦克,那么我们能不能加点坦克进来...
我所知道坦克大战(单机版)之画出炮筒、让坦克发射多发炮弹、让炮弹消亡
28640
2021-02-21
阅读 6 分钟
2.1k
本章目的使用炮筒来确定坦克目前的方向让坦克发射多发炮弹问题一、画出炮筒一般坦克初始位置是不同的,但是我们目前的射击方向是与移动方向一致的这就导致比较怪异,我们应该是初始时有一个射击方向,比如说:右边 {代码...} 而我们的射击方向有了,还需要与移动时方向一致同步并且画出来这里我们只需要画出一条直线即可...
我所知道坦克大战(单机版)之 让子弹飞、让坦克控制子弹开炮
28640
2021-02-20
阅读 5 分钟
2.2k
本篇文章目的让子弹飞让坦克控制子弹来发射我们前面实现了让坦克动起来,这次我们需要让坦克进行开出炮弹的效果一、让子弹飞让子弹开炮,其实也就子弹,当我们发射的时候,其实也相当于是一个圆在不听的动 {代码...} 同时当我们坦克按下发射键的时候发射子弹,那么就需要将这个子弹画出来 {代码...} 以及当我们发射子弹...
我所知道坦克大战(单机版)之封装坦克类、让坦克八个方向行走、
28640
2021-02-20
阅读 6 分钟
2k
前言需求以我们目前的思路文章,我们发现只有一个坦克圆点,若我们需要多个坦克时,则无法清楚怎么添加?比如说100个坦克,那么就需要有100个坦克的位置若使用数组存放100个坦克的位置,那么当坦克有不同属性:圆点颜色、名称、阵营等则也需要添加相对应的数组去管理,所以这时我们需要使用面向对象来创建一个坦克类一、...
我所知道坦克大战(单机版)之使用键盘控制改变坦克位置
28640
2021-02-19
阅读 2 分钟
1.7k
我们发现前两篇文章所造成的坦克,他只能固定一个方向进行移动那么对于我们来说,一般要么使用鼠标,要么使用键盘控制那么我们怎么实现这样的方式呢?实现键盘监听在java 中我们使用键盘监听的话有两种方式:接口、抽象类接口用于接收键盘事件(击键)的侦听器。若处理键盘事件的类实现此接口(及需实现包含的所有方法)...
我所知道坦克大战(单机版)之画出坦克的实心圆、让圆动起来、双缓冲解决闪烁问题
28640
2021-02-18
阅读 4 分钟
2.2k
本篇文章目的画出坦克的实心圆让坦克圆动起来双缓冲解决闪烁问题一、画出代表坦克的实心圆我们需要画出一个圆,那么可以使用fillOval方法 {代码...} 参数的X 和 Y是矩形框的左上角的坐标,width和height是宽和高。而我们重写paint方法进行画出坦克的圆 {代码...} 当然也可以在lauchFrame方法里添加背景填充色,显得更外...
我所知道坦克大战(单机版)之Client窗口的创建、关闭、禁止调整大小
28640
2021-02-18
阅读 2 分钟
1.5k
前言需求本篇文章开始根据尚学堂马士兵老师的教学视频:坦克大战,进行展开学习本篇文章目的产生窗口添加不允许移动窗口大小的处理添加关闭窗口的事件处理一、创建窗口创建TankClient类,并使用继承Frame类的方式,使用相关方法 {代码...} 接下来运行main 方法 {代码...} 二、添加不允许移动窗口大小的处理运行后发现窗...
我所知道设计模式之工厂模式
28640
2021-02-04
阅读 8 分钟
1.3k
前言介绍接下里介绍的是Java 的设计模式之一:工厂模式我们还是以一个问题进行展开,引入工厂模式现在需要你帮忙做一个项目完成披萨店订购功能具体披萨种类有:GreekPizz、CheesePizz 等披萨的制作有 prepare,bake, cut, box要求:要便于披萨种类的扩展,要便于维护你会怎么做这个程序?一、使用传统方式解决问题我们根...
我所知道设计模式之责任链模式
28640
2021-02-04
阅读 5 分钟
1.2k
前言介绍接下里介绍的是Java 的设计模式之一:责任链模式我们还是以一个问题进行展开,引入责任链模式现在有一个学校OA的采购审批项目,根据需求完成项目需求如下:如果金额 小于等于 5000, 由教学主任审批 (0<=x<=5000)如果金额 小于等于 10000, 由院长审批 (5000<x<=10000)如果金额 小于等于 30000, 由...
我所知道设计模式之策略模式
28640
2021-02-04
阅读 4 分钟
1.4k
前言介绍接下里介绍的是Java 的设计模式之一:策略模式我们还是以一个问题进行展开,引入策略模式现在有有各种鸭子(比如 野鸭、北京鸭、水鸭)等,而鸭子有各种行为,比如 叫、飞行等)请你显示鸭子的信息你会怎么做?一、使用传统方式解决问题创建共有的鸭子抽象类,然后根据不同类型实现各自的特点传统方式原理类图我们...
我所知道设计模式之状态模式
28640
2021-02-03
阅读 13 分钟
1.6k
前言介绍接下里介绍的是Java 的设计模式之一:状态模式我们还是以一个问题进行展开,引入状态模式我们现在有一个抽奖APP需要编写请编写程序完成 APP 抽奖活动 具体要求如下:活动有四个状态: 可以抽奖、不能抽奖、发放奖品和奖品领完每参加一次这个活动要扣除用户 50 积分,中奖概率是 10%奖品数量固定,数量抽完就不能抽...
我所知道设计模式之备忘录模式
28640
2021-02-02
阅读 4 分钟
1.5k
当前有一个游戏程序,玩家操控游戏角色,角色有攻击力和防御力,在大战 Boss 前需要保存自身的状态(攻击力和防御力),当大战 Boss 后可能会造成攻击力和防御力下降,这时需要恢复战前的状态
我所知道设计模式之中介模式
28640
2021-02-01
阅读 6 分钟
1.7k
接下里介绍的是Java 的设计模式之一:中介模式我们还是以一个问题进行展开,引入中介模式有一个智能家居的项目,包括各种设备,闹钟、咖啡机、电视机、窗帘等要求主人回家后看电视时,各个设备可以协同工作,自动完成看电视的准备工作,比如流程为:闹铃响起->咖啡机开始做咖啡->窗帘自动落下->电视机开始播放...
我所知道设计模式之观察者模式
28640
2021-02-01
阅读 6 分钟
1.5k
接下里介绍的是Java 的设计模式之一:观察者模式我们还是以一个问题进行展开,引入观察者模式现在有一个天气预报项目,它的具体要求如下1.气象站可以将每天测量到的温度,湿度,气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)2.需要设计开放型 API,便于其他第三方也能接入气象站获取数据3.提供温度、气压...
我所知道设计模式之迭代器模式
28640
2021-01-31
阅读 9 分钟
1k
前言介绍接下里介绍的是Java 的设计模式之一:迭代器模式我们还是以一个问题进行展开,引入迭代器模式编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院, 一个学院有多个系。如图我们之前用组合模式解决过这个问题,但是我们现在要以遍历的角度去思考怎么遍历他们?...
我所知道设计模式之访问者模式
28640
2021-01-31
阅读 3 分钟
2.4k
前言介绍接下里介绍的是Java 的设计模式之一:访问者模式我们还是以一个问题进行展开,引入访问者模式现在有一个歌手表演系统,每当歌手演唱完后,将观众分为男人与女人,得到他们对歌手的表演评价:支持,不支持,待定那你会怎么制作这个评价系统?一、使用传统模式解决问题当只有男人、女人的时候,创建一个抽象类,分...
我所知道设计模式之命令者模式
28640
2021-01-30
阅读 7 分钟
1.2k
前言介绍接下里介绍的是Java 的设计模式之一:命令模式我们还是以一个问题进行展开,引入命令模式我们买了一套智能家电,有照明灯、风扇、冰箱、洗衣机,我们只要在手机上安装 app 就可以控制对这些家电工作这些智能家电来自不同的厂家,我们不想针对每一种家电都安装一个 App进行控制,我们希望只要一个app就可以控制全...
我所知道设计模式之模板模式
28640
2021-01-27
阅读 4 分钟
1.4k
前言介绍接下里介绍的是Java 的设计模式之一:模板模式我们还是以一个问题进行展开,引入模板模式编写制作豆浆的程序,说明如下:制作豆浆的流程为:选材--->添加配料--->浸泡--->放到豆浆机打碎要求:通过添加不同的配料,可以制作出不同口味的豆浆比如说:添加黑芝麻配料就是黑芝麻豆浆、红豆配料就是红豆豆浆...
我所知道设计模式之代理模式
28640
2021-01-27
阅读 6 分钟
1.7k
前言介绍接下里介绍的是Java 的设计模式之一:代理模式一、什么是代理模式代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对...
我所知道设计模式之享元模式
28640
2021-01-26
阅读 7 分钟
1.1k
前言介绍接下里介绍的是Java 的设计模式之一:享元模式我们还是以一个问题进行展开,引入享元模式现在有小型的外包项目,给客户 A 做一个产品展示网站客户 A 的朋友们感觉效果不错,也希望做这样的产品展示网站但是要求都有些不同:1.朋友 B 要求以新闻的形式发布2.朋友 C 要求以博客的形式发布3.朋友 D 要求以微信公众...
我所知道设计模式之外观者模式
28640
2021-01-25
阅读 4 分钟
1.5k
前言介绍接下里介绍的是Java 的设计模式之一:外观模式我们还是以一个问题进行展开,引入外观模式编写程序组建一个家庭影院DVD 播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能其过程为: 直接用遥控器统筹各设备开关一、传统方式解决问题将各个设备相关对象,调用创建并各个对象的一系列方...
我所知道设计模式之组合模式
28640
2021-01-25
阅读 6 分钟
1.3k
前言介绍接下里介绍的是Java 的设计模式之一:组合模式我们还是以一个问题进行展开,引入组合模式编写程序展示学校院系结构:要求:在页面中展示出学校的院系组成一个学校有多个学院, 一个学院有多个系一、传统方式解决问题一般我们的思路是:先写一个学校、学校下有学院、学院下有系但我们想一想,学校与学院是继承关...
1
(current)
2
下一页
1
(current)
下一页