Java 第16章 坦克大战1-2 思路整理

文章目录

  • 1 绘制坦克
    • 坦克
    • 画板Panel
    • 画框Frame
  • 2 让坦克动起来
    • 画板Panel

1 绘制坦克

坦克

不同坦克有共同属性,可以先提取共同特征(坐标位置)作为父类,然后其他坦克类继承它。

画板Panel

有坦克在画板上显示,所以包含不同的坦克子类,并在构造器初始化时创建该具体对象。

paint方法中:

  1. g.fillRect创建黑色背景
  2. 画坦克,由于代码会进行复用(会画很多坦克),所以在Panel类中专门写方法drawTank实现。其中包括对坦克类型(我方为青色,敌方为黄色)和前进方向(具体绘制,包括上下左右朝向)的设置
    在这里插入图片描述

画框Frame

有画板在画框中,所以包含Panel对象,并在构造器初始化时创建该具体对象。

构造器对于画板对象的设置,包括:

  1. 在Frame类对象中创建并添加画板Panel
  2. 设置Panel大小、默认关闭操作、是否可见

2 让坦克动起来

画板Panel

实现KeyListener接口,在keyPressed方法中通过WSAD键实现对坦克上下左右的控制,并调用this.repaint();重新绘制坦克。

上下左右的控制:

keyPressed中,以向上移动举例:

  1. 将坦克对象的方向设置好,然后朝该方向移动一定位置(坐标±speed)
  2. 由上引出方向direct和速度speed两个变量,均加入Tank类进行实现。
  3. 同时,移动位置也集成到Tank类中,可以直接对类中的坐标进行操作。

在Frame中添加this.addKeyListener(mp);(mp是Panel)用于监听。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java object转泛型_为什么Java的泛型要用擦除实现

在 Java 中的 泛型 ,常常被称之为 伪泛型 ,究其原因是因为在实际代码的运行中,将实际类型参数的信息擦除掉了 (Type Erasure) 。那是什么原因导致了 Java 做出这种妥协的呢?下面我就带着大家以 Java 语言设计者的角度,…

td 字典表_数据库怎么设计字典表

数据库怎么设计字典表,用来存储类型数据,需要可以编缉,大家都是怎么做的CREATE TABLE t_ci (id bigint(20) NOT NULL AUTO_INCREMENT,parentId bigint(20) DEFAULT NULL,name varchar(32) DEFAULT NULL COMMENT 名称,seq int(11) DEFAULT NUL…

java lambda函数_Java SE 8新功能介绍:使用Lambda Expression进行函数式编程

java lambda函数“ Java SE 8新功能浏览 ”系列的这篇文章将深入了解Lambda表达式 。 我将向您展示Lambda表达式的几种不同用法。 它们都具有功能接口的共同实现。 我将解释编译器如何从代码中推断信息,例如特定类型的变量以及后台实际发生的情况。 在上一篇文章“…

计算机电源稳压,一种用于计算机的电源稳压电路

主权项:1.一种用于计算机的电源稳压电路,其特征在于:包括变压器、桥式整流器、第一电容至第三电容、第一电阻至第五电阻、第一电位器、第二电位器、第一场效应管、第二场效应管、三极管和基准电压源,电压输入的两端分别与所述变压…

python输入代码如何清除_Bug清除手册-代码书写规范与基本使用(Python)

第 0-3 关 󰀤 代码书写规范与基本使用 󰀤 Q :代码“” ( 等号 ) 的两边要不要空格,有影响吗? 󰀡 A :没有影响,要习惯空格,这样更加规范美观,有辨识度&#xf…

Apache Camel 3.1 –更多骆驼核心优化(第2部分)

我以前曾在博客中介绍我们在下一个Camel 3.1版本(第1部分)中所做的优化 。 今天,我想发布大约4周后的最新状态更新。 我们集中在三个方面优化骆驼核心: 不必要的对象分配 不必要的方法调用 提高绩效 换句话说,我…

计算机系统的指令系统,计算机指令系统指的是什么呢?

2014-12-27计算机系统的指令由你哪两部分组成?共作用分别是什么?1。8086汇编语言指令由标号、操作码、操作数和注释组成,其中标号和注释可以省略,操作码指出指令要过盛的功能,操作数指出完成的对象。2。变量和标号的区别是变量由伪指令定义&a…

echarts怎么保存图片到剪切板上_在电脑上怎么批量给图片编号以及怎么自动记录记事本txt文档时间...

电脑日益成为我们日常办公不可或缺的工具,除了必要的软件使用之外,也有一些直到今天还不那么为人所熟知的小技巧。而小编今天就暂时为大家介绍两个颇为常用的小技巧~分别是如何将图片批量编号以及自动记录记事本时间。技巧一、图片批量编号旅行或者活动结…

计算机类qq网名,最帅的qq名字

qq这个聊天工具已经成为人们电脑里必备的软件,上到40~50的叔叔阿姨,下至8~9岁的小学生,都有qq这个聊天工具。qq是有可以随意改名字的功能,最长可以输入十几个字符作为名字。就是因为取名没有太多的限制,反而让人不知道…

码云上传代码添加标签_第一次使用Git Bash Here 将本地代码上传到码云

当我们安装成功git工具时候,初次使用Git时,需要Git进行配置。1.点击桌面上的这个图标,打开Git Bash:如图所示2.配置自己的用户名和邮箱git config --global user.name "你的名字或昵称"git config --global user.email …

python执行adb命令_Python实现对adb命令封装

我就废话不多说了,大家还是直接看代码吧! #!/usr/bin/evn python # -*- coding:utf-8 -*- # FileName adbtools.py # Author: HeyNiu # Created Time: 2016/9/19 """ adb 工具类 """ import os import platform import re…

ubuntu优化服务器网络连接数,ubuntu下解决高并发socket最大连接数限制,tcp默认1024个连接...

linux系统默认ulimit为1024个访问 用户最多可开启的程序数目。一般一个端口(即一个进程)的最高连接为2的16次方65536通过这个命令 ulimit -n 可以看到默认值为1024查看全局文件句柄数限制(系统支持的最大值)cat /proc/sys/fs/file-max查看每个进程文件句柄数限制ulimit -n第一步…

c++中求解非线性方程组_齐次线性方程组的基础解系的简便算法

线性方程组的求解是线性代数中的基本技能,而齐次线性方程组的基础解系的求法又是基础。本文给出一个计算齐次线性方程组的基础解系的公式,从而简化计算过程。01 符号说明 n元线性方程组的矩阵形式:(1)齐次线性方程组;(2)非齐次线性方程组;系数…

在AWS第1部分中使用Terraform自动缩放组:基本步骤

因此,您想使用Terraform在AWS上创建一个自动缩放组。 以下是达到此目的的最少步骤。 在编写实际代码之前,应指定aws terraform提供程序以及provider.tf文件上的区域。 provider "aws" { version "~> 2.0" region "eu-wes…

python的if语句例句_Python入门之if条件语句

Besides the while statement just introduced, Python knows the usual control flow statements known from other languages, with some twists.除了之前介绍的while语句,Python同样支持其他语言通常用的控制流语句,但也有一些区别。 if Statements P…

虚拟空间独立服务器哪个好,共享虚拟主机和独立哪个好

共享虚拟主机和独立哪个好?现在市面上的虚拟主机产品分为共享主机和独立虚拟主机,那对于用户来说,他们二者之间哪个更好些呢。共享虚拟主机共享虚拟主机指多个用户共同平均使用同一台服务器资源,包括CPU、内存、带宽、硬盘和IP都是…

esp32 怎么分配freertos 堆栈大小_深度解剖~ FreeRtos阅读笔记2 任务创建、内核链表初始化...

2.FREERTOS任务创建、内核链表初始化硬件环境:cortex m4FreeRTOS版本:v8.0.1今天开始阅读freertos,阅读同时做下笔记,等哪天碰到移植问题再翻出来看看。2.1 任务、链表结构体源码中使用tskTCB来存储一个任务的所有信息,xLIST存储内…

pandas用众数填充缺失值_7步搞定数据清洗-Python数据清洗指南

脏数据就是在物理上临时存在过,但在逻辑上不存在的数据。数据清洗是整个数据分析过程的第一步,就像做一道菜之前需要先择菜洗菜一样。数据分析师经常需要花费大量的时间来清洗数据或者转换格式,这个工作甚至会占整个数据分析流程的80%左右的时…

有盘和无盘服务器,网吧系统的终极解决之道:无盘系统+有盘(转)

1、效果好:系统启动飞速,玩大型游戏飞速,不会丢失账号,系统永远干净。2、不会中毒:系统文件从服务器上的镜像中读取,大型游戏从本地硬盘读取,本地硬盘全盘还原,游戏穿透更新。3、投资…

Sigma IDE现在支持Python无服务器Lambda函数!

想想无服务器,使用Pythonic –全部在您的浏览器中! (好吧,这则新闻已经过了几周了,但是仍然……) 如果您沉迷于整个无服务器的“事物”中 ,您可能已经注意到我们,一个在SLAppForge臭…