第一关效果图:

目录

判断是否为第一关

绘制第一关的场景

绘制地面(for循环)

绘制砖块

绘制水管

生成Obstatic列表的getter方法

绘制障碍物


判断是否为第一关

if(sort == 1){
}

在上面有定义变量sort

绘制第一关的场景

绘制地面(for循环)

//绘制第一关的地面,上地面type=1,下地面type=2for (int i = 0;i < 27;i++) {obstacleList.add(new Obstacle(i*30,420,1,this));}for (int j = 0;j <= 120;j += 30) {for (int i = 0;i < 27;i++) {obstacleList.add(new Obstacle(i*30,570-j,2,this));}}

窗口大小为 800*600

地面方块的大小为30*30

所以上地面需循环27次才能达到效果

下地面,双层for循环,需要铺满y轴从450-600的画面

注:坐标以左上角为原点,横轴为x轴,纵轴为y轴

相比于上面的代码,我更喜欢下面的表达方式

for (int j = 0;j <= 4;j ++) {for (int i = 0;i < 27;i++) {obstacleList.add(new Obstacle(i*30,570-j*30,2,this));}}

绘制砖块

坐标如下:

A(120,300)(150,300)

B(300,300)(330,300)

C(360,300)(390,300)

D(420,300)(450,300)

E(480,300)(510,300)

F(540,300)(570,300)

G(420,240)(450,240)

         //绘制砖块Afor (int i = 120;i <= 150;i += 30) {obstacleList.add(new Obstacle(i,300,7,this));}//绘制砖块B-Ffor (int i = 300;i <= 570;i += 30) {if (i == 360 || i == 390 || i == 480 || i == 510 || i == 540) {obstacleList.add(new Obstacle(i,300,7,this));} else {obstacleList.add(new Obstacle(i,300,0,this));}}//绘制砖块Gfor (int i = 420;i <= 450;i += 30) {obstacleList.add(new Obstacle(i,240,7,this));}

绘制水管

for (int i = 360;i <= 600;i += 25) {if (i == 360) {obstacleList.add(new Obstacle(620,i,3,this));obstacleList.add(new Obstacle(645,i,4,this));}else {obstacleList.add(new Obstacle(620,i,5,this));obstacleList.add(new Obstacle(645,i,6,this));}}

生成Obstatic列表的getter方法

public List<Obstacle> getObstacleList() {return obstacleList;}

绘制障碍物

在myFrame中绘制障碍物

 //绘制障碍物for (Obstacle ob : nowBg.getObstacleList()) {graphics.drawImage(ob.getShow(),ob.getX(),ob.getY(),this);}

注:本文仅作为学习笔记,参考的视频链接

09_超级玛丽--第一关的设计_尚学堂_哔哩哔哩_bilibili

java小游戏超级玛丽:05.第一关的设计相关推荐

  1. java小游戏-超级玛丽

    java小游戏-java小游戏-超级玛丽 1 创建窗口 2 创建并完成常量类 3 创建背景类 4 绘制背景类 5 创建障碍物 6 第一关的设计 7 第二关的设计 8 第三关的设计 9 创建马里奥类 1 ...

  2. java小游戏超级玛丽:06.第二关的设计

     第二关预览图: 判断是否为第二关 if (sort == 2) {} 砖块位置图: 砖块坐标: A(240,390) B(270,360) C(300,330) D(270,360) E(300,3 ...

  3. java小游戏超级玛丽:07.第三关的设计

    第三关预览图  砖块位置图:  砖块坐标: A(290,390) B(320,360) C(350,330) D(320,390) E(350,480) F(350,390) G(380,300) H ...

  4. 送给自己人生的第一份生日礼物——Java小游戏!

    摘要:本人是广东石油化工学院的一名大一学生,因对手机开发有浓厚兴趣,故趁暑假空闲时间自学了Java基础知识. 刚好今天是我二十周岁的的生日,想想也不容易,走过了二十个年头,却没送给自己任何礼物,所以今 ...

  5. 【Java】寒假答辩作品:Java小游戏

    文章目录 java入门小游戏[test] 游戏界面 前言 (可直接跳到程序介绍) 前期入门小项目 前期收获 后期自创关卡 熄灯问题拓展 新游戏拓展 实现切换关卡切换音乐 后续 java入门小游戏[te ...

  6. 各种经典java小游戏_Java是这个世界上最好的语言!

    为什么? 请看TIOBE最新发布的编程语言排行榜: TIOBE开发语言排行榜每月更新一次,其结果可以用来检阅开发者的编程技能能否跟上趋势,或是否有必要作出战略改变,以及什么编程语言是应该及时掌握的. ...

  7. 《Java小游戏实现》:坦克大战

    <Java小游戏实现>:坦克大战 前面写了一个简单的聊天小程序,今天开始就写一个坦克大战的游戏,算是对Java相关小知识点的一个应用. 这个游戏的完成,我们也是分步完成,逐步累加,一个一个 ...

  8. java小游戏-java小游戏-大鱼吃小鱼

    java小游戏-java小游戏-大鱼吃小鱼 1 创建窗口 2 添加背景图 3 启动封面 4 启动页面的点击事件 5 游戏开始时的背景添加 6 双缓存解决闪屏问题 7 地方第一条小鱼的添加 8 敌方左方 ...

  9. java小游戏——飞翔的小鸟(java初学作品)

    注:学习了java基础后,做出来的一个小作品,可以用来巩固学习 概述: 飞翔的小鸟能够作为Java基础的收官之作,包涵了Java很多的基础知识,在学习完Java基础后,尝试编写一些东西,能够起到很好的 ...

最新文章

  1. Ubuntu16.04 配置记录(持续更新)
  2. 简析 Google Gadget 的数据丢失原因
  3. Happy Holidays and Season's Greetings Everyone!
  4. python oa系统_用python把C#操作OA的例子重写了一下
  5. python能不能用c打开文件_C/C++/Python等 使用二进制模式打开文件与不使用二进制模式的区别...
  6. UE4版本和vs版本的对应关系
  7. (38)FPGA原语设计(BUFH)
  8. python编程可以做什么菜_Python 编程! 我是菜菜菜鸟 大家帮帮忙
  9. Atitit webclient httpclient技术总结 RestTemplate Atitit CateIT重要技术httpclient iduah2 impt 体系树路径:CS
  10. 数据运营平台-数据采集
  11. ubuntu 扫描局域网ip
  12. 牛顿法详解(海森矩阵如何使用)
  13. 关于表单流程设计器 以及 问卷调查生成器的开发准备
  14. 关于a:hover span和a span:hover的区别
  15. HCIE-Routing Switching V3.0 资料分享
  16. 《Improving Cross-lingual Text Classification with Zero-shot Instance-Weighting》论文笔记
  17. 安装与测试Hypopg(适用于pg9.0版本以上)
  18. XML 中大于等于小于等于的写法
  19. 手把手教你线程池配合CompletableFuture实现图片下载并压缩
  20. 正方教务系统连接服务器失败,模拟登陆正方教务系统,重定向一直解决不了〉...

热门文章

  1. CSS拾遗+技巧集合
  2. axios - http请求库
  3. Windows 7 无法登陆网银
  4. tinyxml2注意事项
  5. 虚拟机全屏,安装VMware Tools显示灰色解决办法
  6. android获取uevent实例,9.2.1 Netlink和Uevent介绍
  7. 2023年“华数杯”国际大学生数学建模A题完整思路
  8. 安装 timescaledb 使用navcat连接 创建 hypertable
  9. n918st能刷Android5吗?,获取中兴N918st (V5S 双4G)ROOT权限教程,新手必看
  10. Web音频API:制作自己的Web合成器