java小游戏超级玛丽:05.第一关的设计
第一关效果图:
目录
判断是否为第一关
绘制第一关的场景
绘制地面(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.第一关的设计相关推荐
- java小游戏-超级玛丽
java小游戏-java小游戏-超级玛丽 1 创建窗口 2 创建并完成常量类 3 创建背景类 4 绘制背景类 5 创建障碍物 6 第一关的设计 7 第二关的设计 8 第三关的设计 9 创建马里奥类 1 ...
- java小游戏超级玛丽:06.第二关的设计
第二关预览图: 判断是否为第二关 if (sort == 2) {} 砖块位置图: 砖块坐标: A(240,390) B(270,360) C(300,330) D(270,360) E(300,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 ...
- 送给自己人生的第一份生日礼物——Java小游戏!
摘要:本人是广东石油化工学院的一名大一学生,因对手机开发有浓厚兴趣,故趁暑假空闲时间自学了Java基础知识. 刚好今天是我二十周岁的的生日,想想也不容易,走过了二十个年头,却没送给自己任何礼物,所以今 ...
- 【Java】寒假答辩作品:Java小游戏
文章目录 java入门小游戏[test] 游戏界面 前言 (可直接跳到程序介绍) 前期入门小项目 前期收获 后期自创关卡 熄灯问题拓展 新游戏拓展 实现切换关卡切换音乐 后续 java入门小游戏[te ...
- 各种经典java小游戏_Java是这个世界上最好的语言!
为什么? 请看TIOBE最新发布的编程语言排行榜: TIOBE开发语言排行榜每月更新一次,其结果可以用来检阅开发者的编程技能能否跟上趋势,或是否有必要作出战略改变,以及什么编程语言是应该及时掌握的. ...
- 《Java小游戏实现》:坦克大战
<Java小游戏实现>:坦克大战 前面写了一个简单的聊天小程序,今天开始就写一个坦克大战的游戏,算是对Java相关小知识点的一个应用. 这个游戏的完成,我们也是分步完成,逐步累加,一个一个 ...
- java小游戏-java小游戏-大鱼吃小鱼
java小游戏-java小游戏-大鱼吃小鱼 1 创建窗口 2 添加背景图 3 启动封面 4 启动页面的点击事件 5 游戏开始时的背景添加 6 双缓存解决闪屏问题 7 地方第一条小鱼的添加 8 敌方左方 ...
- java小游戏——飞翔的小鸟(java初学作品)
注:学习了java基础后,做出来的一个小作品,可以用来巩固学习 概述: 飞翔的小鸟能够作为Java基础的收官之作,包涵了Java很多的基础知识,在学习完Java基础后,尝试编写一些东西,能够起到很好的 ...
最新文章
- Ubuntu16.04 配置记录(持续更新)
- 简析 Google Gadget 的数据丢失原因
- Happy Holidays and Season's Greetings Everyone!
- python oa系统_用python把C#操作OA的例子重写了一下
- python能不能用c打开文件_C/C++/Python等 使用二进制模式打开文件与不使用二进制模式的区别...
- UE4版本和vs版本的对应关系
- (38)FPGA原语设计(BUFH)
- python编程可以做什么菜_Python 编程! 我是菜菜菜鸟 大家帮帮忙
- Atitit webclient httpclient技术总结 RestTemplate Atitit CateIT重要技术httpclient iduah2 impt 体系树路径:CS
- 数据运营平台-数据采集
- ubuntu 扫描局域网ip
- 牛顿法详解(海森矩阵如何使用)
- 关于表单流程设计器 以及 问卷调查生成器的开发准备
- 关于a:hover span和a span:hover的区别
- HCIE-Routing Switching V3.0 资料分享
- 《Improving Cross-lingual Text Classification with Zero-shot Instance-Weighting》论文笔记
- 安装与测试Hypopg(适用于pg9.0版本以上)
- XML 中大于等于小于等于的写法
- 手把手教你线程池配合CompletableFuture实现图片下载并压缩
- 正方教务系统连接服务器失败,模拟登陆正方教务系统,重定向一直解决不了〉...
热门文章
- CSS拾遗+技巧集合
- axios - http请求库
- Windows 7 无法登陆网银
- tinyxml2注意事项
- 虚拟机全屏,安装VMware Tools显示灰色解决办法
- android获取uevent实例,9.2.1 Netlink和Uevent介绍
- 2023年“华数杯”国际大学生数学建模A题完整思路
- 安装 timescaledb 使用navcat连接 创建 hypertable
- n918st能刷Android5吗?,获取中兴N918st (V5S 双4G)ROOT权限教程,新手必看
- Web音频API:制作自己的Web合成器