02. 坦克大战项目-准备工作和绘制坦克

这篇具有很好参考价值的文章主要介绍了02. 坦克大战项目-准备工作和绘制坦克。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

02. 坦克大战项目-准备工作和绘制坦克

01. 准备工作

1. 首先我们要创建四个类

1. Tank类

介绍:Tank 类主要用来表示坦克的基本属性和行为

public class Tank {
    private int x;//坦克的横坐标
    private int 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;
    }

    public Tank(int x, int y) {
        this.x = x;
        this.y = y;

    }
}
2. Hero类

介绍:Hero 类:
继承自 Tank 类,表示游戏中的主角坦克。
通过 super(x, y) 调用父类构造方法,初始化主角坦克的位置。

public class Hero extends Tank{
    public Hero(int x, int y) {
        super(x, y);
    }
}
3. MyPanel类

介绍:MyPanel类:
继承自 JPanel,用于绘制游戏的绘图区域。
包含一个名为 heroHero 对象,表示游戏中的主角坦克。
在构造方法中初始化主角坦克的位置。
重写了 paint 方法,用于绘制游戏区域。当前代码中只是填充了一个黑色矩形,表示游戏区域。

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);//填充矩形,默认黑色
    }
}
4. YzjTankGame01类

介绍:YzjTankGame01 类:
继承自 JFrame,表示游戏的主窗口。
包含一个名为 mpMyPanel 对象,用于绘制游戏的绘图区域。
在构造方法中初始化 MyPanel 对象,并将其添加到主窗口中。设置了主窗口的大小、关闭操作,并显示主窗口。

import javax.swing.*;

public class YzjTankGame01 extends JFrame {
    //定义MyPanel
    MyPanel mp = null;
    public static void main(String[] args) {
        YzjTankGame01 yzjTankGame01 = new YzjTankGame01();
    }
    public YzjTankGame01() {
        mp = new MyPanel();
        this.add(mp);//把面板(就是游戏的绘图区域)
        this.setSize(1000, 750);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
}

02. 绘制坦克

1. 思路

  1. 对于坦克的绘制首先我们要有一个思路
  2. 采用两个相同的矩形作为坦克侧面,一个矩形和一个圆和一条线作为坦克的主体

2.开始绘制

package com.yzjedu.tankgame;

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

/**
 * 4.0 坦克大战的绘图区域
 **/
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("其他暂时不做处理");
        }
    }
}

这样我们一个基础的坦克就完成了,后续章节进入进一步的完善
02. 坦克大战项目-准备工作和绘制坦克,java,开发语言文章来源地址https://www.toymoban.com/news/detail-815315.html

到了这里,关于02. 坦克大战项目-准备工作和绘制坦克的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习 Python 之 Pygame 开发坦克大战(二)

    坦克大战游戏包含很多个物体,现在要对这些物体进行总结 类名 包含的操作 包含的属性 敌方坦克类 射击,移动,显示 生命,速度,伤害,方向,类型 我方坦克类 射击,移动,显示 生命,速度,伤害,方向,装甲,等级 子弹类 移动,显示 方向,伤害,发射源,速度 墙壁

    2024年02月02日
    浏览(52)
  • 学习 Python 之 Pygame 开发坦克大战(一)

    Pygame是一组Python用于编写视频游戏的模块。Pygame在优秀的SDL库上添加了功能。可以让我们使用python语言创建功能齐全的游戏和多媒体程序,并且Pygame是高度可移植的,几乎可以在所有平台和操作系统上运行。 官方文档 函数名称 作用 返回值 pygame.display.init() 初始化展示模块

    2024年02月02日
    浏览(49)
  • python项目分享 - 坦克大战小游戏设计与实现 (源码)

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 python小游戏毕设 坦克大战小游戏设计与实现 (源码) 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:4分 项目获取:

    2024年02月01日
    浏览(54)
  • python项目分享 坦克大战小游戏设计与实现 (源码)

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 python小游戏毕设 坦克大战小游戏设计与实现 (源码) 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:4分 项目获取:

    2024年01月25日
    浏览(56)
  • 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

    主要内容: 1.Unity3D引擎中的基础设置。 2.2D场景的搭建,预制体制作。 3.2D动画的制作。 4.图片图集的有关知识。 5.碰撞器,触发器,碰撞检测与触发检测。 6.2D游戏渲染的一些知识。 7.敌人AI的编写。 8.UGUI有关内容,场景切换等。 所需资源包链接:https://pan.baidu.com/s/199wuwM

    2024年02月06日
    浏览(64)
  • JavaWeb课程设计项目实战(03)——开发准备工作

    本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 在正式进入项目开发之前请先完成以下准备工作。 请创建数据库和表并完成数据初始化工作。 请在MySQL数据库中创建名为studentinformationmanagement的库。 在本项目中有以下两张表: 1、用户表 2、学生表 用户表详情

    2024年02月15日
    浏览(44)
  • 微信小游戏开发之坦克大战(比羊了个羊还好玩系列)

    现在很多公司开始使用游戏化的方式去做产品,让产品呈现给用户时更好玩,以达到增加用户粘性,提升DAU的效果。 同时随着硬件与底层系统的发展,用户的终端对动画的表现能力也越来越强,很多APP以引导用户互动的方式开发业务,所以开发互动类业务将成为前端工程师的

    2024年02月09日
    浏览(50)
  • 基于java的坦克大战游戏的设计与实现--毕业论文--【毕业论文】

    种类 收录专辑链接 技术 毕业论文 基于jsp的企业员工信息管理系统的设计与实现–【毕业论文】 ★★★✰✰ 毕业设计 基于jsp的企业员工信息管理系统的设计与实现–源代码–【课程设计】 JAVAWEB 课程设计 详细解读java的俄罗斯方块游戏的源代码–【课程设计】 JAVA 毕业论文

    2024年02月15日
    浏览(47)
  • UE4运用C++和框架开发坦克大战教程笔记(十五)(第46~48集)

    逻辑和批量加载同类 UObject 资源的逻辑差不多。区别在 DealClassKindLoadStack() 内,如果已经有资源率先加载完成了,那后续资源加载的途中我们想让已经加载好的资源执行额外的处理逻辑(比如让它每帧生成),我们就需要补充额外的判断条件,即判断其是否第一次生成完毕。

    2024年01月25日
    浏览(51)
  • UE4运用C++和框架开发坦克大战教程笔记(十二)(第37~39集)

    由于梁迪老师是写 Unity 游戏出身的,所以即便 UE4 有自带的 TimeManager 这样的延时系统,老师还是重新写了一个符合 Unity 开发习惯的延时系统。 在 DDTypes 里定义延时任务结构体,以及它要用到的一个委托。 DDTypes.h 我们依旧将延时系统放在 DDMessage 这里。 协程系统和延时系统

    2024年02月02日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包