GitHub地址:https://github.com/WingedCat/AirWar

欢迎界面效果:

//取得开始背景Image beginBg = GameImage.getImage("resources/startbg1.jpg");public void paint(Graphics g){g.drawImage(beginBg, 0, 0, null);}

正常情况下,刚刚进入游戏时来到欢迎界面,稍等片刻就开始游戏了。所有的图案都要在paint()中进行绘制,如果不进行处理,显然会一直出现欢迎界面。
修改代码:

//新增变量begin,标志这是刚刚开始游戏
boolean begin = true;
public void paint(Graphics g){if(begin){g.drawImage(beginBg, 0, 0, null);try {Thread.sleep(3000);begin = false;} catch (InterruptedException e) {e.printStackTrace();}}}

这样开始的欢迎界面就会在显示3秒后消失:

绘制游戏背景图

static int yPos = -646;//如果设置为0,则图片最顶端在窗体上向下滚动就没有了
//yPos = 窗体的高度 - 图片的高度//取得游戏背景Image gameBg = GameImage.getImage("resources/background1.bmp");public void paint(Graphics g){if(begin){g.drawImage(beginBg, 0, 0, null);try {Thread.sleep(3000);begin = false;} catch (InterruptedException e) {e.printStackTrace();}}g.drawImage(gameBg, 0, yPos, null);}

虽然通过上面的代码实现了游戏背景的显示,但是背景是静态的,显示不出飞机在向前飞。
为了使图片进行滚动,我们应该修改yPos的值。

static class BgThread extends Thread{//创建BgThread类,专门用于改名yPos使背景图片滚动@Overridepublic void run() {while(true){if(yPos==764){yPos = -646;}else{if(begin==false)//如果不进行判断,那么在开始界面时yPos就已经改变了,这显然不行yPos += 2;}try {Thread.sleep(50);//滚动速度的设定} catch (InterruptedException e) {e.printStackTrace();}}}}

好消息是我们实现了背景图的滚动,不好的是,当一张图片结束时就没有了。

解决方案是使用两张图片进行交替:
使用两个变量记录位置:

public static int yPos = -1*(gameBg.getHeight(null)-Constant.GAME_HEIGHT)+1;public static int yPos2 = yPos - gameBg.getHeight(null);
//在第一个图片后面紧接着画一张图片
g.drawImage(gameBg, 0, yPos, null);
g.drawImage(gameBg, 0, yPos2, null);//两张图片交替

完善BgThread内部类:

static class BgThread extends Thread{//创建BgThread类,专门用于改名yPos使背景图片滚动@Overridepublic void run() {while(true){if(yPos>=Constant.GAME_HEIGHT){//交替yPos = yPos2 -gameBg.getHeight(null);}else{if(yPos2>=Constant.GAME_HEIGHT){//交替yPos2 = yPos - gameBg.getHeight(null);}else{if(begin==false){//真正进入游戏才开始滚动yPos += 2;yPos2 +=2;}}}try {Thread.sleep(50);//滚动速度的设定} catch (InterruptedException e) {e.printStackTrace();}}}}

如此处理在一张图片过后会有另外一张图片接上,从而实现了无限滚动:

一、实现欢迎界面和游戏背景图的滚动(雷霆战机)相关推荐

  1. 搭建直播平台前端界面初步切图

    搭建直播平台前端界面初步切图 我们先来看下初步的成果图 首页 直播房间页 搭建直播平台前端界面初步切图帅气的小伙伴们,有发现什么共同的特点了吗? 没错,就是它们的头部导航栏都是一样的,而vue中一个很 ...

  2. 移动APP界面设计切图指南

    移动APP切图信息图:iOS界面设计切图指南 http://blog.163.com/conghui1986@126/blog/static/5647097520146311247618/ Andro ...

  3. 仿QQ个人信息详情界面中背景图的下拉扩展放大功能

    一般一些项目中都少不了一些头部背景图,但是如果背景图静态的现实并不能呈现出与用户操作的交互感,所以要想办法让背景图动起来,qq的一些交互感我很喜欢,比如他的个人详情界面的背景图就是可以下拉扩展,并在扩 ...

  4. python打开交互界面设计_老司机必备——用PyQt做一个有交互界面的妹子图爬虫...

    内容简介:老司机必备--用PyQt做一个有交互界面的妹子图爬虫 代码飙车,指日可待.今天的课程教大家结合PyQt和 Python 爬虫技术,做一个带有交互界面的妹子图网站爬虫程序. 一.实验简介 1. ...

  5. iOS界面设计切图小结

    iOS界面设计切图小结 APR 12TH, 2013 1.基本尺寸 (1)界面 实际设计时按: iPhone4.4s:640px*960px iPhone5: 640px*1136px iPad:15 ...

  6. Flash游戏背景的循环滚动实现

    Flash游戏背景的循环滚动实现    by:童年 我们在做flash游戏的时候有时候要用到背景滚屏技术,今天在天地会看到一个兄弟问这方面的问题,咱们就来探讨下怎么循环滚动背景图片吧. 首先我们需要一 ...

  7. html多张图片无缝滚动播放,jQuery实现的多张图无缝滚动效果【测试可用】

    本文实例讲述了jQuery实现的多张图无缝滚动效果.分享给大家供大家参考,具体如下: slider *{ padding: 0; margin: 0; } li{ list-style-type: n ...

  8. 轮播图自动滚动 无缝连接 js

    轮播图自动滚动 无缝连接 <!DOCTYPE html> <html lang="en"> <head><meta charset=&qu ...

  9. qpython3可视图形界面_PySide——Python图形化界面入门教程(三)

    PySide--Python图形化界面入门教程(三) --使用内建新号和槽 --Using Built-In Signals and Slots 上一个教程中,我们学习了如何创建和建立交互widget ...

最新文章

  1. 在有赞工作两年半的感受
  2. ajax post forbidden,POST方法总是返回403 Forbidden
  3. Cisco路由器——Console线的接法
  4. SublimeText2 快捷键
  5. C#LeetCode刷题之#819-最常见的单词(Most Common Word)
  6. Eclipse EGit插件安装使用记录
  7. 作为一个程序员,hibernate和jdbc 有什么不一样的点,你知道吗
  8. MYSQL多线程插入操作
  9. 论文页眉奇偶页不同怎么设置_什么!论文排版这么简单的吗?!
  10. 筛选索引--filter indexs
  11. php常用函数最全总结
  12. 软件测试之软件测试方法
  13. 1 如何制定购车计划
  14. [经典进程同步问题]哲学家思考
  15. 极简「Oauth2.0」微信网页授权教程
  16. oracle 导入攻略,oracle10g下expdp自动导出并上传全攻略
  17. WHQL徽标认证申请流程
  18. 如何配置一台以机器学习、深度学习为用途的工作站?
  19. 108页《SpringBoot 学习笔记完整教程》PDF附下载
  20. 万字夜里爆肝,熬夜倾情奉献 Hive最最基础应用

热门文章

  1. python原神抽卡模拟
  2. 北京计算机研究生学校排行榜,计算机考研学校的前几个排名
  3. 银行放水的那些事---必须懂的经济常识
  4. 智能合约:从 Python 调用智能合约
  5. Mysql源码学习——八度空间
  6. 大专计算机考研跨专业选哪个,2018专科生考研:你该选什么专业
  7. Android 通过JNI实现守护进程
  8. 如何选择防御DOSS攻击的产品?
  9. matlab调整legend大小,【MATLAB】调整legend的大小位置
  10. 报错 | Failed to load resource: the server responded with a status of 403 (Forbidden)