1.复习GUI后,第一天实现的效果

2. 项目实现思路

基本的窗口界面实现就不讲了,源码都看得懂的,这里只说其中比较重要的几个功能的实现。

  • 面板的绘制(所有图形的绘制)

    首先,需要在GamePanel中重写PaintComponent方法,该方法有一个画笔参数,之后所有图形都是在这个方法中进行绘制的;

        // 绘制面板,游戏中所有东西都用这支画笔
    @Override
    protected void paintComponent(Graphics g) {
    super.paintComponent(g);//清屏
    //积分板
    g.setColor(Color.orange);
    g.setFont(new Font("黑体", Font.PLAIN, 25));
    g.drawString("得分:" + score, 75, 55);
    g.drawString("生命:" + blood, 300, 55);
    g.drawString("时间:" + time, 650, 55);
    GameData.player.paintIcon(this, g, playerX, playerY);
    }
  • 战机的左右移动

    1.首先,分析功能需求:战机每隔1秒移动一段距离,当碰到窗口边缘时反向移动。

    2.为了实现每隔1秒执行方法,我引入了计时器来绑定事件刷新(即:每隔150毫秒执行一次监听事件)

    //定时器,每隔一秒执行一次actionPerformed()事件监听,this实现了监听方法
    Timer timer = new Timer(150, this);//100毫秒=1秒

    3.在实现的监听方法中,编写左右移动的逻辑

        // 事件监听
    // 每隔一秒刷新一次
    @Override
    public void actionPerformed(ActionEvent e) {
    if ("R".equals(fx)){
    playerX += 15;
    }else if ("L".equals(fx)){
    playerX -= 15;
    }
    // 边界判断
    if (playerX>=875){
    fx="L";
    }else if (playerX<=25){
    fx="R";
    }
    repaint();//重绘
    //开启定时器
    timer.start();
    }

    4.注意点:

    ​ 4.1在每次执行方法完后记得重绘并开启计时器

        repaint();//重绘
    //开启定时器
    timer.start();

    ​ *4.2 初次创建时也要开启计时器

        public GamePanel() {
    this.setBackground(new Color(94, 63, 107));
    //开启定时器,让飞船一秒刷新一次
    timer.start();
    }

3.总结

好了,今天就做了这么多,还有很多重要功能没有实现,比如,计分板数据更新、射击敌机等。明天先把socket聊天室的界面实现,结合昨天实现的多线程多客户端功能,实现完整聊天室基本功能应该没问题。有空的话继续实现该项目后续功能。加油!!!

太空大战-GUI实现(1)的更多相关文章

  1. 用Html5结合Qt制作一款本地化EXE游戏-太空大战(Space War)

    本次来说一说如何利用lufylegend.js引擎制作一款html5游戏后将其通过Qt转换成EXE程序.步骤其实非常简单,接下来就一步步地做一下解释和说明. 首先我们来开发一个有点类似于太空大战的游戏 ...

  2. Python+Pygame开发太空大战/飞机大战完整游戏项目(附源代码)

    项目名称:太空大战 开发环境:Python3.6.4 第三方库:Pygame1.9.6 代码编辑器:Sublime Text 先来看一下游戏画面吧!  游戏画面动态且丰富哦!   需求分析 利用Pyt ...

  3. threejs和3d各种效果的学习

    写给即将开始threejs学习的自己,各种尝试,各种记忆.不要怕,灰色的年华终会过去. 一个技术学习的快慢,以及你的深刻程度,还有你的以后遇到这个东西的时候的反应速度,很大程度上,取决于你的博客的深刻 ...

  4. 剖析虚幻渲染体系(14)- 延展篇:现代渲染引擎演变史Part 1(萌芽期)

    目录 14.1 本篇概述 14.1.1 游戏引擎简介 14.1.2 游戏引擎模块 14.1.3 游戏引擎列表 14.1.3.1 Unreal Engine 14.1.3.2 Unity 14.1.3. ...

  5. 【unity3d游戏开发脚本笔记之一:坐标系选择对物体运动的影响】

    时间:2016年9月24日17:38:21   作者:yexiaopeng 博客园     在unity3d的世界中,其坐标系可分为四种,世界坐标系-WorldSpace   本地坐标系-LocalS ...

  6. Right Column - 右侧栏目

    function share(sType){ var sName = "Yorhom\'s Game Box"; var title='Yorhom\'s Game Box', _ ...

  7. ActionScript通用开发框架

    ActionScript 3(简称as)自2006年诞生以来,出现了一大批很优秀框架.就我的知识领域,运用包括pureMVC.pushButton Engine(组件框架).Robotlegs.Ash ...

  8. 传智播客C/C++学员荣膺微软&Cocos 2d-x黑客松最佳创新奖

     6月30日,历时32小时的微软开放技术Cocos 2d-x 编程黑客松在北京望京微软大厦成功落下帷幕,这是微软开放技术首次联合Cocos 2d-x 在中国举办黑客松.此次活动共有包括传智播客C/ ...

  9. 关于AR,你想要的全在这儿了

    定义 增强现实(Augmented Reality,简称AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动.这种技术估计由19 ...

随机推荐

  1. odoo12里定时任务

    以odoo12为例: 1. 定义定时任务属性 <record id="ir_cron_submit_auto_action" model="ir.cron" ...

  2. Python - if 条件控制

    注意 本篇图片素材都来自慕课网,因为素材过于优秀,直接拿过来了,加水印只是为了防止整篇文章被搬 前言 程序并非是一成不变的向下执行,有的时候也要根据条件的不同选择不一样的代码,这个时候便用到了分支结构 ...

  3. PS Lite 笔记

    本文讲解的 PS Lite 源码版本限定如下: GitHub: https://github.com/dmlc/ps-lite/tree/master Commit: f45e2e78a7430be0 ...

  4. netty系列之:netty架构概述

    目录 简介 netty架构图 丰富的Buffer数据机构 零拷贝 统一的API 事件驱动 其他优秀的特性 总结 简介 Netty为什么这么优秀,它在JDK本身的NIO基础上又做了什么改进呢?它的架构和 ...

  5. noip模拟测试16

    这次考试,难度还是不小的,先说一下考试过程,首先看一遍题,觉得开题顺序1 3 2, 然后我就先打了第一题,我当时可能是受到之前做题的限制了,觉得他只能每次走一 格,也就是一个单位长度,但是实际上,他甚 ...

  6. 攻防世界Web区部分题解

    攻防世界Web区部分题解   前言:PHP序列化就是把代码中所有的 对象 , 类 , 数组 , 变量 , 匿名函数等全部转换为一个字符串 , 提供给用户传输和存储 . 而反序列化就是把字符串重新转换为 ...

  7. 深入理解jvm-2Edition-类文件结构

    概述: 规范而独立的类文件结构以及只与类文件关联的虚拟机为Java实现了平台无关性,甚至还带来了一些语言无关性. 只要将源代码编译为Class文件规定的格式,JVM就可以执行. JVM的指令描述能力比 ...

  8. K8s 部署 Gitlab

    K8s 版本:1.20.6 这里使用的镜像不是官方的,而是 Gitlab 容器化中使用非常多的一个第三方镜像:sameersbn/gitlab,基本上和官方保持同步更新.地址:http://www.d ...

  9. Elasticsearch BM25相关度算法超详细解释

    Photo by Pixabay from Pexels 前言:日常在使用Elasticsearch的搜索业务中多少会出现几次 "为什么这个Doc分数要比那个要稍微低一点?".&q ...

  10. noip模拟12[简单的区间·简单的玄学·简单的填数]

    noip模拟12 solutions 这次考试靠的还是比较好的,但是还是有不好的地方, 为啥嘞??因为我觉得我排列组合好像白学了诶,文化课都忘记了 正难则反!!!!!!!! 害没关系啦,一共拿到了\( ...