当前位置: 首页 > news >正文

坦克大战的学习

1.绘制入门和机制

package com.hspedu.draw;import javax.swing.*;
import java.awt.*;@SuppressWarnings({"all"})
// 演示如何在面板上画出圆形
public class DrawCircle extends JFrame{ // JFrame 对应窗口,可以理解成是一个画框//定义一个面板private MyPanel mp = null;public static void main(String[] args) {new DrawCircle();System.out.println("退出程序~");}public DrawCircle() { // 构造器//初始化面板mp = new MyPanel();//把面板放入到窗口(画框)this.add(mp);//设置窗口的大小this.setSize(400, 300);// 当点击窗口的小 x ,程序就会完全退出this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true); // 可以显示}
}//1.先定义一个 MyPanel(),继承 JPanel 类,画图形,就在面板上画
class MyPanel extends JPanel {//说明//1. Mypanel 对象就是一个画板//2. Graphics g 把 g 理解成一支画笔//3. Graphics 提供了很多绘图方法// Graphics g@Overridepublic void paint(Graphics g) { // 绘图方法super.paint(g); // 调用父类的方法完成初始化
//        System.out.println("paint 方法被调用");// 画出一个圆形g.drawOval(10, 10, 100, 100);}
}

2.绘图方法

package com.hspedu.draw;import javax.swing.*;
import java.awt.*;@SuppressWarnings({"all"})
// 演示如何在面板上画出圆形
public class DrawCircle extends JFrame{ // JFrame 对应窗口,可以理解成是一个画框//定义一个面板private MyPanel mp = null;public static void main(String[] args) {new DrawCircle();System.out.println("退出程序~");}public DrawCircle() { // 构造器//初始化面板mp = new MyPanel();//把面板放入到窗口(画框)this.add(mp);//设置窗口的大小this.setSize(400, 300);// 当点击窗口的小 x ,程序就会完全退出this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true); // 可以显示}
}//1.先定义一个 MyPanel(),继承 JPanel 类,画图形,就在面板上画
class MyPanel extends JPanel {//说明//1. Mypanel 对象就是一个画板//2. Graphics g 把 g 理解成一支画笔//3. Graphics 提供了很多绘图方法// Graphics g@Overridepublic void paint(Graphics g) { // 绘图方法super.paint(g); // 调用父类的方法完成初始化System.out.println("paint 方法被调用");// 画出一个圆形//g.drawOval(10, 10, 100, 100);//演示绘制不同的图形...//画直线 drawLine(int x1, int y1, int x2, int y2)//g.drawLine(10, 10, 100, 100);//画矩形边框 drawRect(int x, int y, int width, int height)
//        g.drawRect(10, 10, 100, 100);//画椭圆边框 drawOval(int x, int y, int width, int height)//填充矩形 fillRect(int x, int y, int width, int height)//设置画笔的颜色
//        g.setColor(Color.blue);
//        g.fillRect(10, 10, 100, 100);//填充椭圆 fillOval(int x, int y, int width, int height)
//        g.setColor(Color.red);
//        g.fillOval(10, 10, 100, 100);//画图片 drawImage(Image img, int x, int y, ...)//1.获取图片资源  /pic.jpg 表示在该项目的根目录去获取 pic.jpg 图片资源
//        Image image = Toolkit.getDefaultToolkit().getImage(MyPanel.class.getResource("/pic.jpg"));
//        g.drawImage(image, 10, 10, 200, 200, this);//画字符串 drawString(String str, int x, int y)//给画笔设置颜色和字体g.setColor(Color.red);g.setFont(new Font("隶书", Font.BOLD, 50));//这里设置的 100 100 是 "孙悟空" 的左下角g.drawString("孙悟空", 100, 100);//设置画笔的字体 setFont(Font font)//设置画笔的颜色 setColor(Color c)}
}

3.绘制坦克游戏区域

package com.hspedu.tankgame;import javax.swing.*;public class HspTankGame01 extends JFrame {//定义 MyPanelMyPanel mp = null;public static void main(String[] args) {HspTankGame01 hspTankGame01 = new HspTankGame01();}public HspTankGame01() {mp = new MyPanel();this.add(mp); // 把面板(就是游戏的绘图区域)this.setSize(1000, 750);;this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}
}
package com.hspedu.tankgame;public class Tank {private int x; // 坦克的横坐标private int y; // 坦克的纵坐标public Tank(int x, int y) {this.x = x;this.y = y;}public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}
}
package com.hspedu.tankgame;public class Hero extends Tank{public Hero(int x, int y) {super(x, y);}
}
package com.hspedu.tankgame;import javax.swing.*;
import java.awt.*;//坦克大战绘图区域
public class MyPanel extends JPanel {//定义我的坦克Hero hero = null;public MyPanel() {hero = new Hero(100, 100); // 初始化自己的坦克}@Overridepublic void paint(Graphics g) {super.paint(g);g.fillRect(0, 0, 1000, 750); // 填充矩形,默认是黑色}
}

  


文章转载自:

http://yplEw3zX.xjqhh.cn
http://9h8gs16M.xjqhh.cn
http://AQAAdhZI.xjqhh.cn
http://xZkG5VP7.xjqhh.cn
http://7atbtF6b.xjqhh.cn
http://UDwHovEp.xjqhh.cn
http://q94JZmhr.xjqhh.cn
http://vHCfdsML.xjqhh.cn
http://RzeALd9s.xjqhh.cn
http://GoS49Du7.xjqhh.cn
http://r2wcj6cS.xjqhh.cn
http://qeiJkgGO.xjqhh.cn
http://JFy4N4XK.xjqhh.cn
http://UbprTv9L.xjqhh.cn
http://yVO71dIv.xjqhh.cn
http://mFHO8yUY.xjqhh.cn
http://XT1sG6P1.xjqhh.cn
http://Ynan2Xe9.xjqhh.cn
http://6vMakbnp.xjqhh.cn
http://LyQ43xTA.xjqhh.cn
http://qx8DMBu6.xjqhh.cn
http://PJCgNT3J.xjqhh.cn
http://tFXaZhfJ.xjqhh.cn
http://GFA69AmX.xjqhh.cn
http://M93XCUMs.xjqhh.cn
http://pNlnXmzs.xjqhh.cn
http://GT5BxJVw.xjqhh.cn
http://r1TMajOj.xjqhh.cn
http://KawE0H6g.xjqhh.cn
http://CY2EMglh.xjqhh.cn
http://www.dtcms.com/a/381935.html

相关文章:

  • 如何进行WEB安全性测试
  • 使用UV工具安装和管理Python环境
  • WPS中接入DeepSeek:方法与实践
  • hexo文章
  • Armonia Mall超级数字生态WEB3商城的引领者
  • Python核心技术开发指南(063)——析构方法
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(32):文法運用第9回4+(考え方12)
  • 漫谈《数字图像处理》之形状数的原理与计算方法
  • go-commons GitHub 开源项目
  • 飞算Java AI一天从零到项目生成的Java开发加速器
  • Transformer实战(18)——微调Transformer语言模型进行回归分析
  • 通过语法推导树快速求短语,简单短语和句柄
  • 考研择校考虑因素和备考流程
  • Django全栈班v1.04 Python基础语法 20250913 早上
  • 界面规范10-树
  • 计算机组成原理:存储系统概述
  • 《Vuejs设计与实现》第 15 章(编译器核心技术)下
  • Android自定义View-圆形渐变多点的加载框
  • 永磁同步电机无速度算法--改进滑模观测器(改进指数趋近律)
  • 【企业架构】TOGAF架构标准规范-架构规划
  • git常见冲突场景及解决办法
  • [code-review] 文件过滤逻辑 | 范围管理器
  • 学习嵌入式第五十三天
  • [code-review] 日志机制 | `LOG_LEVEL`
  • 物联网-无人自助茶室-如何实现24H智能营业?
  • JVM基础篇以及JVM内存泄漏诊断与分析
  • 【WRF数据准备】批量下载ERA5再分析数据-气象驱动数据
  • 如何实现文件批量重命名自动化
  • 【Unity 性能优化之路——概述(0)】
  • 零基础学AI大模型之SpringAI