什么是二维数组?

数组当中放的还是数组

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启动的更多相关文章

  1. Java第十二次作业:什么是一维数组?什么是对象数组?吃金币游戏2.0版 新增炸弹功能 新增游戏倒计时功能 新增胜利失败检测功能 使用如鹏游戏引擎制作窗体 一维数组设置金币

    什么是数组? 数组的定义:是用统一的名字代表这批数据,用序号来区分各个数据.数组是无序的数据元素按有序的下标组成的集合,分配固定空间大小的一种容器. 如何理解:其实就是一个同时放很多数据的变量. a= ...

  2. ramdisk配置、解压、创建rootfs、启动简单分析

    关键词:ramdisk.rdint..init.ramfs.__initramfs_start.__initramfs_size.rootfs.ramfs.populate_rootfs().gzip ...

  3. tomcat双击startup.bat启动时闪退

    tomcat之前用的好好地没有问题,今天重启一下就发现双击startup.bat一闪而过,接着就没有任何动静了,tomcat无法启动啦? 于是网上搜了一堆tomcat闪退的解决办法,其中有说是没有读取 ...

  4. 双击startup.bat启动tomcat时闪退原因及解决方案

    在启动免安装tomcat时,很容易遇到双击startup.bat,启动窗口闪退而tomcat服务未启动的状况. 具体原因:tomcat在启动时,需要读取环境变量和配置信息,如果缺少Java环境,即缺少 ...

  5. tomcat的war由于损坏不能解压导致的服务不能启动

    问题描述: Tomcat启动,提示异常,服务自动释放! INFO: Starting Servlet Engine: Apache Tomcat/ Sep , :: PM org.apache.cat ...

  6. MySQL Server 5.7解压版缺少文件无法启动

    如题: 一般认为5.7中mysql目录下 缺少data/mysql/目录,导致无法启动: 解决方案: 重新安装5.6即可: 1.删除5.7中安装的服务: 到mysql\bin目录下运行:mysqld ...

  7. jmeter解压后启动jmeter.bat报错:Not able to find java executable or version

    错误详情: 错误解决方法: 修改环境变量配置将%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;移动到%SystemRoot%\system32;%SystemRoot%;%Sy ...

  8. 免解压版的Mysql的启动脚本,并且执行导入(windows)

    @echo off rem ################### set MYSQL_VERSION=mysql-5.5.32-win32 set LOCK=wot.lock rem ####### ...

  9. linux运维中的命令梳理(二)

    回想起来,从事linux运维工作已近5年之久了,日常工作中会用到很多常规命令,之前简单罗列了一些命令:http://www.cnblogs.com/kevingrace/p/5985486.html今 ...

随机推荐

  1. atcoder057D(组合数模板)

    题目链接:http://abc057.contest.atcoder.jp/tasks/abc057_d 题意:给出n个数,可以选择x~y个数,使其平均值最大,求其最大平均数以及选择方案数. 思路:只 ...

  2. ZK的选举算法

    一.前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举. 二.Leader选举 2.1 Leader选举概 ...

  3. Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined) C

    Misha and Vanya have played several table tennis sets. Each set consists of several serves, each ser ...

  4. Unity小知识记录

    //判断运行的平台 Application.platform == RuntimePlatform.Android EditorPrefs 编辑器储存数据 [AddComponentMenu(&quo ...

  5. linux学习-Linux系统启动过程

    linux系统启动过程 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导. 运行init. 系统初始化. 建立终端 . 用户登录系统. 内核引导 电源开机后,首 ...

  6. Android studio 断点调试

          最近进行业务测试,总是被测试环境不稳定或者测试数据错误困扰,一有问题就去找开发,自己都觉得很烦,所以就自己学着调试起来,这样以后遇到问题就可以自己定位的更深入了.   1.确保连接设备且进 ...

  7. vue对象和视图

    1 Vue框架 1. vue 与 jQuery 区别 jQuery 仍然是操作DOM的思想, 主要jQuery 用来写页面特效 Vue是前端框架(MVVM) ,对项目进行分层. 处理数据 2 前端框架 ...

  8. 洛谷 P1902 刺杀大使

    刺杀大使 一道并不难的二分题,竟让我交了上20次,诶,果然还是我太弱了. 看完题目就基本想到要怎么做了: 只需要对最小伤害代价进行二分即可,check()函数里用搜索判断是否可以到达最后一行,这里的c ...

  9. P3375 【模板】KMP字符串匹配(全程注释,简单易懂)

    题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组next.如果你不知道这是什么意思也不要问,去百度搜[ ...

  10. nagios的一些东西

    make install 用来安装nagios的主程序,cgi和html文件 make install-init 在/etc/rc.d/init.d目录下创建nagios启动脚本 make insta ...