Привет всем! Начал пытаться сделать игру на джава с использованием движка JGame. Я подготовился, сделал уровень по тайлам и настало время столкновений. Сколько я не бился, но столкновение и остановка перед тайлами сделать не получилось. Игра с видом сверху, полный код под спойлером. Задача: сделать нормальное хождение и "скольжение" между стен (чтобы не останавливался). Конечно же, чтобы ещё он и не проходил сквозь. Всем кто поможет обязательно + поставлю Делаю через checkBGCollision();
Code
package bw;
import jgame.*; import jgame.platform.*;
public class Main extends JGEngine{ public static void main(String[] args) { new Main(new JGPoint(640,480)); } public Main(){ initEngineApplet(); } public Main(JGPoint size){ initEngine(size.x, size.y); } public void initCanvas(){ setCanvasSettings(20, 15, 16, 16, JGColor.yellow, JGColor.yellow, null); } public void doFrame(){ moveObjects(); } public void initGame(){ setFrameRate(35, 2); defineMedia("bw.tbl"); setBGImage("background"); setTiles(1, 1, new String[] { "#####", "####.", "###..", "##...", "#...." });
setTileSettings("#",2,0);
new Plr(200,200,2); } class Plr extends JGObject{ Plr(double x, double y, double speed){ super("plr", false,x,y,1,"player",0,0,speed,speed,-1); } public void move(){ setDir(0, 0); if (getKey(KeyUp)){ ydir = -1; } if (getKey(KeyDown)){ ydir = 1; } if (getKey(KeyLeft)){ xdir = -1; } if (getKey(KeyRight)){ xdir = 1; } } } class Enemy extends JGObject{ Enemy(double x, double y, double speed){ super("enemy", false, x, y, 2, "enemy",0,0,speed,speed,-1); } } }