初步设计代码如下:
使用判断精灵头脚与每个数组中图片墙上下左右分别判断
如精灵的右侧与墙的左侧判断大小,同时判断精灵的头部是否被遮挡,精灵的脚部是否被遮挡
依次再判断向左的情况,向上的情况,向下的情况
package com.swift; import java.awt.Dimension; import java.awt.Point; import java.awt.event.KeyEvent; import com.rupeng.game.GameCore; public class Migong implements Runnable{ public static void main(String[] args) { GameCore.start(new Migong()); } @Override public void run() { GameCore.setGameSize(805, 590); GameCore.setGameTitle("图片迷宫游戏—二维数组制作"); GameCore.loadBgView("bg.png"); //二维数组赋值10行10列,每张图片宽度80*56 int[][] arr = { {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,0,0,0,0,0,0}, { 0,0,0,0,0,1,0,0,0,0}, { 4,4,0,0,0,0,0,0,0,0}, { 0,0,0,0,0,0,4,0,0,0}, { 1,1,2,0,0,0,0,1,0,0}, { 0,4,0,0,0,1,0,0,0,0}, { 0,0,1,0,1,0,0,0,2,2}}; //计数器 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*80, i*56); num++; } if(arr[i][j]==2) { GameCore.createImage(num); GameCore.setImageSource(num, "2.png"); GameCore.setImagePosition(num, j*80, i*56); num++; } if(arr[i][j]==4) { GameCore.createImage(num); GameCore.setImageSource(num, "4.png"); GameCore.setImagePosition(num, j*80, i*56); num++; } } } // 女精灵