代码编织梦想

package com.hspedu.draw.tankgame;

import javax.swing.*;
import java.awt.*;

//坦克大战的绘图区
public class MyPanel extends JPanel {
    //定义我的坦克
    Hero hero = null;

    public MyPanel() {
        hero = new Hero(100, 100);//初始化自己的坦克
    }

    @Override
    public void paint(Graphics g) {
        super.paint(g);
        g.fillRect(0, 0, 1000, 750);//填充矩形,默认黑色
        //画出坦克-封装方法

        drawTank(hero.getX(), hero.getY(), g, 0, 0);

    }


    //编写方法,画出坦克

    /**
     * @param x      坦克的左上角x坐标
     * @param y      坦克的左上角y坐标
     * @param g      画笔
     * @param direct 坦克方向(上下左右)
     * @param type   坦克类型
     */
    public void drawTank(int x, int y, Graphics g, int direct, int type) {
        //根据不同类型的坦克,设置不同颜色
        switch (type) {
            case 0: //我们的坦克
                g.setColor(Color.cyan);
                break;
            case 1: //敌人的坦克
                g.setColor(Color.yellow);
                break;
        }
        // 根据坦克方向,来绘制坦克
        switch (direct) {
            case 0://表示向上
                g.fill3DRect(x, y, 10, 60, false);//画出坦克左边轮子
                g.fill3DRect(x + 30, y, 10, 60, false);//画出坦克右边轮子
                g.fill3DRect(x + 10, y + 10, 20, 40, false);//画出坦克盖子
                g.fillOval(x + 10, y + 20, 20, 20);//画出坦克圆盖
                g.drawLine(x+20,y +30,x+20,y);//画出坦克炮筒
                break;
            default:
                System.out.println("暂时没有处理");
        }
    }
}
package com.hspedu.draw.tankgame;

import javax.swing.*;

public class HspTankGame01 extends JFrame {

    //定义MyPanel
    MyPanel 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);
    }
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_72040135/article/details/129827653

基于Java的坦克大战游戏的设计与实现-爱代码爱编程

游戏由服务器端和客户端两部分组成。 在服务器端,ServerModel类主要用来创建主机,ServerView类主要负责服务器端图形界面的面板信息的设置,ServerControler类处理来自服务器视图框架的输入,包括创立通信与帮助信息等,enemy类主要负责敌方坦克的创建,player类主要用来设置玩家的得分及其显示位置等信息,drawingPane

Java实现一个简易联网坦克对战小游戏-爱代码爱编程

今天跟大家分享Java实现一个简易联网坦克对战小游戏的知识。 1 Java实现一个简易联网坦克对战小游戏 介绍 通过本项目能够更直观地理解应用层和运输层网络协议, 以及继承封装多态的运用. 网络部分是本文叙述的重点, 你将看到如何使用Java建立TCP和UDP连接并交换报文, 你还将看到如何自己定义一个简单的应用层协议来让自己应用进行网络通信. 本

人工智能 java 坦克机器人系列: 强化学习_Java坦克机器人系列强化学习-爱代码爱编程

《Java坦克机器人系列强化学习》由会员分享,可在线阅读,更多相关《Java坦克机器人系列强化学习(13页珍藏版)》请在人人文库网上搜索。 1、Java 坦克机器人系列 强化学习人工智能Java坦克机器人系列:强化学习文档选项img,8,1/img,16,16/url=javascript:print()打印本页/url);/-url=javascr

一个java程序员需要的技能_一个Java程序员应该掌握的10项技能-爱代码爱编程

一个Java程序员应该掌握的10项技能 1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。 2、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、 HtmlConverter、jar、 java、javac、javadoc、java

Java实现基础坦克大战(含源码)-爱代码爱编程

1. 成果演示 成果演示视频 2. 实现了哪些功能? 按键WDSA是己方坦克方向键,J键负责发射子弹。己方一次最多可以发射5颗子弹。子弹走到边界或者击中敌方坦克时,生命周期结束。当我方子弹击中敌方或者敌人子弹打中我方时,会有爆炸效果敌人坦克随机移动,随机发射子弹。坦克与坦克的位置不能重合,且不能移动到边界之外我方击杀敌人数量动态更新在界面右上角游戏关

JAVA实现 坦克大战理解OOP思想-爱代码爱编程

JAVA绘图坐标系 坐标体系-介绍: 下图说明了java坐标系。坐标原点位于左上角,以像素为单位。在java坐标系中,第一个不足x坐标,表示当前位置为水平方向,距离坐标原点x个像素,第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素: 绘图还必须要搞清一个非常重要的概念-像素,一个像素等于多少厘米?这是不同的概念

java坦克大战summary_minersheep_va的博客-爱代码爱编程

(由于作者本人水平有限,如有错误还请大家指出) 画我方坦克 :JFrame是画框,Panel是画板,paint(Graphics g)是画笔。 JFrame中设置的大小是包括画板和窗口共同的大小 TankGame的构造器中初始化MyPanel,MyPanel的构造器中初始化Hero,一环扣一环 何时调用paint方法: 组件第一

java设计模式(二)创建型设计模式_长安不及十里的博客-爱代码爱编程

文章目录 三 创建型设计模式3.1 单例设计模式3.1.1 饿汉式(线程安全)3.1.2 懒汉式(线程不安全)3.1.3 优缺点3.1.4 补充3.1.5 框架中的使用3.1.4.1 Spring中的使用3.1.4.

java游戏开发 —— 坦克大战-爱代码爱编程

引言: 坦克大战也是小时一个比较经典的游戏了,我在网上也是参考了韩顺平老师写的坦克大战,并做了一下完善,编写出来作为儿时的回忆吧! 思路: 创建主窗口,加载菜单及游戏面板。 在游戏面板中初始化各种参数,并建立各种功能

18-爱代码爱编程

题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据保证整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 自定义评测: 评测系统的输入如下(你设计的程序不适用此输入):

sprient性能压测-爱代码爱编程

实现流程 pppoe流程: 数据库插入基础信息business_broadband,dhcp_pool,user,vni_business,vni_forward重启网元读取数据库配置接入网元建立vxlan隧道建立用户侧