初步设计代码如下:
使用判断精灵头脚与每个数组中图片墙上下左右分别判断
如精灵的右侧与墙的左侧判断大小,同时判断精灵的头部是否被遮挡,精灵的脚部是否被遮挡
依次再判断向左的情况,向上的情况,向下的情况
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++; } } } // 女精灵

本文讨论了在迷宫游戏中,如何设计精灵移动的碰撞检测机制,以确保它们在遇到墙壁时不会穿墙而过。初步方案涉及比较精灵与墙的位置,判断头部和脚部是否被遮挡,并分别处理向左、向上、向下的移动情况。此外,还提出了简化思路,采用距离判定的方式来实现更高效的碰撞检测。
最低0.47元/天 解锁文章
3344

被折叠的 条评论
为什么被折叠?



