什么是二维数组?二维遍历?Java二维数组制作图片迷宫 使用如鹏游戏引擎制作窗口界面 附带压缩包下载,解压后双击start.bat启动
什么是二维数组?
数组当中放的还是数组
int [][] arr=new int[3][2];
有3个小箱子,每个箱子2个格子。
看结果?
int [][] arr=new int[3][2];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[0][0]);
System.out.println(arr.length]);
System.out.println(arr[1].length);
再看结果?
int [][] arr=new int[3][];
System.out.println(arr);
System.out.println(arr[0]);//什么结果?还是哈希值吗?
System.out.println(arr[0][0]);//这个是什么结果?
二维数组的遍历?
程序源码如下:
package com.swift; import java.awt.Point;
import java.awt.event.KeyEvent; import com.rupeng.game.GameCore; public class GameOfShuzu implements Runnable{ public static void main(String[] args) {
GameCore.start(new GameOfShuzu());
} @Override
public void run() {
GameCore.setGameSize(760, 570);
GameCore.setGameTitle("图片迷宫游戏—二维数组制作");
GameCore.loadBgView("bg.png");
//二维数组赋值15行15列,每张图片宽度50*36
int[][] arr = {{3,0,0,0,1,1,0,0,2,2,3,0,0,0,1},
{0,0,0,0,4,1,0,0,0,2,0,0,0,0,1},
{0,3,0,0,0,0,0,0,0,0,0,3,3,0,1},
{0,3,0,0,0,0,0,0,0,2,0,0,3,0,0},
{0,0,0,0,0,1,0,0,0,2,0,0,0,0,1},
{4,4,0,0,1,1,0,0,0,0,4,4,0,0,1},
{0,0,0,0,0,4,4,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,2,0,0,1},
{0,0,0,0,1,0,0,0,0,2,2,0,0,0,1},
{0,4,4,0,1,0,0,0,0,0,4,4,0,0,1},
{0,0,0,0,0,4,4,0,0,3,0,0,0,0,0},
{1,1,2,0,0,0,0,1,0,0,0,4,0,0,0},
{0,4,0,0,0,1,0,0,0,0,0,2,0,0,1},
{0,0,3,0,1,0,0,0,2,2,0,0,0,2,0}};
//二维数组遍历查看每个元素的值
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
System.out.print(i+"行"+j+"列 "+arr[i][j]+" | ");
}
System.out.println();
}
//计数器
int num=0;
//根据元素的值在游戏窗口中生成图片墙
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
if(arr[i][j]==1) {
GameCore.createImage(num);
GameCore.setImageSource(num, "1.png");
GameCore.setImagePosition(num, j*50, i*36);
num++;
}
if(arr[i][j]==2) {
GameCore.createImage(num);
GameCore.setImageSource(num, "2.png");
GameCore.setImagePosition(num, j*50, i*36);
num++;
}
if(arr[i][j]==3) {
GameCore.createImage(num);
GameCore.setImageSource(num, "3.png");
GameCore.setImagePosition(num, j*50, i*36);
num++;
}
if(arr[i][j]==4) {
GameCore.createImage(num);
GameCore.setImageSource(num, "4.png");
GameCore.setImagePosition(num, j*50, i*36);
num++;
}
}
System.out.println();
} // 女精灵
int spriteGirl = 0;
GameCore.createSprite(spriteGirl, "butterfly");
GameCore.playSpriteAnimate(spriteGirl, "fly", true);
GameCore.setSpritePosition(spriteGirl, 100, 20); for (;;) { int codeNum = GameCore.getPressedKeyCode();
Point position = GameCore.getSpritePosition(spriteGirl); if (codeNum == KeyEvent.VK_UP || codeNum == KeyEvent.VK_W) {
if (position.y > 30) {
System.out.println("up");
GameCore.setSpritePosition(spriteGirl, position.x, --position.y);
GameCore.pause(11);
}
} if (codeNum == KeyEvent.VK_DOWN || codeNum == KeyEvent.VK_S) {
if (position.y < 550) {
System.out.println("down");
GameCore.setSpritePosition(spriteGirl, position.x, ++position.y);
GameCore.pause(11);
}
}
if (codeNum == KeyEvent.VK_LEFT || codeNum == KeyEvent.VK_A) {
if (position.x > 0) {
System.out.println("left");
GameCore.setSpriteFlipX(spriteGirl, true);
GameCore.setSpritePosition(spriteGirl, --position.x, position.y);
GameCore.pause(2);
}
}
if (codeNum == KeyEvent.VK_RIGHT || codeNum == KeyEvent.VK_D) {
if (position.x < 730) {
System.out.println("right");
GameCore.setSpriteFlipX(spriteGirl, false);
GameCore.setSpritePosition(spriteGirl, ++position.x, position.y);
GameCore.pause(1);
}
}
} } }
画面效果如图:

压缩包及相关素材下载地址:
https://pan.baidu.com/s/1hrC3TtU
什么是二维数组?二维遍历?Java二维数组制作图片迷宫 使用如鹏游戏引擎制作窗口界面 附带压缩包下载,解压后双击start.bat启动的更多相关文章
- Java第十二次作业:什么是一维数组?什么是对象数组?吃金币游戏2.0版 新增炸弹功能 新增游戏倒计时功能 新增胜利失败检测功能 使用如鹏游戏引擎制作窗体 一维数组设置金币
什么是数组? 数组的定义:是用统一的名字代表这批数据,用序号来区分各个数据.数组是无序的数据元素按有序的下标组成的集合,分配固定空间大小的一种容器. 如何理解:其实就是一个同时放很多数据的变量. a= ...
- ramdisk配置、解压、创建rootfs、启动简单分析
关键词:ramdisk.rdint..init.ramfs.__initramfs_start.__initramfs_size.rootfs.ramfs.populate_rootfs().gzip ...
- tomcat双击startup.bat启动时闪退
tomcat之前用的好好地没有问题,今天重启一下就发现双击startup.bat一闪而过,接着就没有任何动静了,tomcat无法启动啦? 于是网上搜了一堆tomcat闪退的解决办法,其中有说是没有读取 ...
- 双击startup.bat启动tomcat时闪退原因及解决方案
在启动免安装tomcat时,很容易遇到双击startup.bat,启动窗口闪退而tomcat服务未启动的状况. 具体原因:tomcat在启动时,需要读取环境变量和配置信息,如果缺少Java环境,即缺少 ...
- tomcat的war由于损坏不能解压导致的服务不能启动
问题描述: Tomcat启动,提示异常,服务自动释放! INFO: Starting Servlet Engine: Apache Tomcat/ Sep , :: PM org.apache.cat ...
- MySQL Server 5.7解压版缺少文件无法启动
如题: 一般认为5.7中mysql目录下 缺少data/mysql/目录,导致无法启动: 解决方案: 重新安装5.6即可: 1.删除5.7中安装的服务: 到mysql\bin目录下运行:mysqld ...
- jmeter解压后启动jmeter.bat报错:Not able to find java executable or version
错误详情: 错误解决方法: 修改环境变量配置将%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;移动到%SystemRoot%\system32;%SystemRoot%;%Sy ...
- 免解压版的Mysql的启动脚本,并且执行导入(windows)
@echo off rem ################### set MYSQL_VERSION=mysql-5.5.32-win32 set LOCK=wot.lock rem ####### ...
- linux运维中的命令梳理(二)
回想起来,从事linux运维工作已近5年之久了,日常工作中会用到很多常规命令,之前简单罗列了一些命令:http://www.cnblogs.com/kevingrace/p/5985486.html今 ...
随机推荐
- SpringBoot 2.0 整合sharding-jdbc中间件,实现数据分库分表
一.水平分割 1.水平分库 1).概念: 以字段为依据,按照一定策略,将一个库中的数据拆分到多个库中. 2).结果 每个库的结构都一样:数据都不一样: 所有库的并集是全量数据: 2.水平分表 1).概 ...
- PUSH 和 远程推送
1. UIApplacation向 APNS 注册 push notification 服务 (1) 应用程序要支持推送服务, 在网页里面配置 http://developer.apple.com/ ...
- Tomcat 连接池调优
性能较好的Tomcat 配置文件内容 <Context> <Resource name="jdbc/pgsql" type="javax.sql.Dat ...
- Tyvj1474 打鼹鼠
Description 在这个“打鼹鼠”的游戏中,鼹鼠会不时地从洞中钻出来,不过不会从洞口钻进去(鼹鼠真胆大……).洞口都在一个大小为n(n<=1024)的正方形中.这个正方形在一个平面直角坐标 ...
- [题解](最短路)luogu_P5122 Fine Dining
首先理解这里的美味值相当于给你更多时间让你经过这个草垛的, 也就是在经过草垛时可以给你的时间减少w[i],这样能否比最短路不慢 然而我们并不容易知道怎么走才是最好的,所以要想办法避免找这个方案 我们新 ...
- Vue初始化
Vue上面的函数怎么来的 vue的打包路径 在web中使用的vue打包路径: npm run build 打包生成vue.js 下面是依次引入: src/platforms/web/entry-run ...
- IIS+PHP访问量大时内存爆满等性能问题解决方案
如今还是有许多人在用老掉牙的 IIS6 + PHP.本文解决方法适用于使用 FastCGI 运行 PHP 的用户. 问题原因: 你可以试一试,你在 VPS 上用 IIS6 安装 FastCGI 跑 P ...
- .Net应用导入、导出Excel文件
本次阐述的导入和导出都围绕此Demo进行
- C#oracle备份和还原
最近公司的oracle备份工具不好使了,原来是公司的人用VB写的,由于我是主攻C#的,所以想着自己来写一个C#版本的oracle备份和还原工具. 一开始,我按照原来的设计思路来进行编写,想在pluss ...
- WebForm随笔
一般处理程序中获取页面所传的值:int id = Convert.ToInt32(context.Request["id"]); 后台获取页面所传的值:int id = Conve ...