Implement tile highlighting based on level renderer view
Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com> Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
95a923fad3
commit
bdc22767f5
@ -6,6 +6,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import sig.engine.Panel;
|
import sig.engine.Panel;
|
||||||
|
import sig.engine.Point;
|
||||||
import sig.map.Maps;
|
import sig.map.Maps;
|
||||||
import sig.objects.LevelRenderer;
|
import sig.objects.LevelRenderer;
|
||||||
import sig.objects.Player;
|
import sig.objects.Player;
|
||||||
@ -24,6 +25,10 @@ public class RabiClone{
|
|||||||
|
|
||||||
public static int BASE_WIDTH=512;
|
public static int BASE_WIDTH=512;
|
||||||
public static int BASE_HEIGHT=288;
|
public static int BASE_HEIGHT=288;
|
||||||
|
public static int SIZE_MULTIPLIER=1;
|
||||||
|
public static Point MOUSE_POS;
|
||||||
|
|
||||||
|
public static LevelRenderer level_renderer;
|
||||||
|
|
||||||
public static Maps CURRENT_MAP = Maps.WORLD1;
|
public static Maps CURRENT_MAP = Maps.WORLD1;
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
@ -35,6 +40,8 @@ public class RabiClone{
|
|||||||
|
|
||||||
p = new Panel(f);
|
p = new Panel(f);
|
||||||
|
|
||||||
|
MOUSE_POS=p.mousePos;
|
||||||
|
|
||||||
p.init();
|
p.init();
|
||||||
|
|
||||||
f.add(p);
|
f.add(p);
|
||||||
@ -43,7 +50,7 @@ public class RabiClone{
|
|||||||
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
f.setVisible(true);
|
f.setVisible(true);
|
||||||
|
|
||||||
OBJ.add(new LevelRenderer(p));
|
OBJ.add(level_renderer = new LevelRenderer(p));
|
||||||
OBJ.add(new Player(p));
|
OBJ.add(new Player(p));
|
||||||
|
|
||||||
p.render();
|
p.render();
|
||||||
@ -63,10 +70,9 @@ public class RabiClone{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
private static void ChooseBestRatio() {
|
private static void ChooseBestRatio() {
|
||||||
int multiplier=1;
|
while (f.getWidth()*(SIZE_MULTIPLIER+1)<Toolkit.getDefaultToolkit().getScreenSize().getWidth()) {
|
||||||
while (f.getWidth()*(multiplier+1)<Toolkit.getDefaultToolkit().getScreenSize().getWidth()) {
|
SIZE_MULTIPLIER++;
|
||||||
multiplier++;
|
|
||||||
}
|
}
|
||||||
f.setSize(f.getWidth()*multiplier,(int)((f.getWidth()*multiplier)/1.77777777778d));
|
f.setSize(f.getWidth()*SIZE_MULTIPLIER,(int)((f.getWidth()*SIZE_MULTIPLIER)/1.77777777778d));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
|
import java.awt.event.MouseMotionListener;
|
||||||
|
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
@ -19,6 +20,7 @@ import java.awt.event.KeyListener;
|
|||||||
|
|
||||||
import sig.DrawLoop;
|
import sig.DrawLoop;
|
||||||
import sig.RabiClone;
|
import sig.RabiClone;
|
||||||
|
import sig.map.Tile;
|
||||||
|
|
||||||
public class Panel extends JPanel implements Runnable,KeyListener {
|
public class Panel extends JPanel implements Runnable,KeyListener {
|
||||||
JFrame window;
|
JFrame window;
|
||||||
@ -41,7 +43,8 @@ public class Panel extends JPanel implements Runnable,KeyListener {
|
|||||||
boolean mouseHeld=false;
|
boolean mouseHeld=false;
|
||||||
public double nanaX = 0;
|
public double nanaX = 0;
|
||||||
public double nanaY = 0;
|
public double nanaY = 0;
|
||||||
java.awt.Point mousePos=new java.awt.Point(0,0);
|
public Point mousePos=new Point(0,0);
|
||||||
|
public Point highlightedSquare = new Point(0,0);
|
||||||
public HashMap<Integer,Boolean> KEYS = new HashMap<>();
|
public HashMap<Integer,Boolean> KEYS = new HashMap<>();
|
||||||
|
|
||||||
public Panel(JFrame f) {
|
public Panel(JFrame f) {
|
||||||
@ -52,16 +55,14 @@ public class Panel extends JPanel implements Runnable,KeyListener {
|
|||||||
this.addMouseListener(new MouseInputListener(){
|
this.addMouseListener(new MouseInputListener(){
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked(MouseEvent e) {
|
public void mouseClicked(MouseEvent e) {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mousePressed(MouseEvent e) {
|
public void mousePressed(MouseEvent e) {
|
||||||
mouseHeld=true;
|
mouseHeld=true;
|
||||||
mousePos=e.getPoint();
|
mousePos.set(e.getX()/RabiClone.SIZE_MULTIPLIER,e.getY()/RabiClone.SIZE_MULTIPLIER);
|
||||||
System.out.println(e.getX()+","+e.getY());
|
//System.out.println(e.getX()+","+e.getY());
|
||||||
System.out.println(MouseData());
|
//System.out.println(MouseData());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String MouseData() {
|
private String MouseData() {
|
||||||
@ -71,14 +72,12 @@ public class Panel extends JPanel implements Runnable,KeyListener {
|
|||||||
@Override
|
@Override
|
||||||
public void mouseReleased(MouseEvent e) {
|
public void mouseReleased(MouseEvent e) {
|
||||||
mouseHeld=false;
|
mouseHeld=false;
|
||||||
mousePos=e.getPoint();
|
mousePos.set(e.getX()/RabiClone.SIZE_MULTIPLIER,e.getY()/RabiClone.SIZE_MULTIPLIER);
|
||||||
System.out.println(MouseData());
|
//System.out.println(MouseData());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseEntered(MouseEvent e) {
|
public void mouseEntered(MouseEvent e) {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -87,18 +86,34 @@ public class Panel extends JPanel implements Runnable,KeyListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseDragged(MouseEvent e) {
|
public void mouseDragged(MouseEvent e) {
|
||||||
mousePos=e.getPoint();
|
|
||||||
System.out.println(MouseData());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseMoved(MouseEvent e) {
|
public void mouseMoved(MouseEvent e) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.addMouseMotionListener(new MouseMotionListener(){
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseDragged(MouseEvent e) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseMoved(MouseEvent e) {
|
||||||
|
mousePos.set(e.getX()/RabiClone.SIZE_MULTIPLIER,e.getY()/RabiClone.SIZE_MULTIPLIER);
|
||||||
|
UpdateHighlightedSquare();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void UpdateHighlightedSquare() {
|
||||||
|
RabiClone.p.highlightedSquare.setX((int)((RabiClone.level_renderer.getX()+RabiClone.MOUSE_POS.getX())/Tile.TILE_WIDTH));
|
||||||
|
RabiClone.p.highlightedSquare.setY((int)((RabiClone.level_renderer.getY()+RabiClone.MOUSE_POS.getY())/Tile.TILE_HEIGHT));
|
||||||
|
//System.out.println(RabiClone.p.highlightedSquare);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Best Color model available for current screen.
|
* Get Best Color model available for current screen.
|
||||||
* @return color model
|
* @return color model
|
||||||
|
@ -25,6 +25,14 @@ public class Point {
|
|||||||
this.y = y;
|
this.y = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void set(int x,int y) {
|
||||||
|
setX(x);setY(y);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void update(int x,int y) {
|
||||||
|
set(x,y);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Point(" + x + "," + y + ")";
|
return "Point(" + x + "," + y + ")";
|
||||||
|
@ -32,6 +32,9 @@ public class LevelRenderer extends Object{
|
|||||||
public void draw(int[] p) {
|
public void draw(int[] p) {
|
||||||
for (int y=(int)(0+this.getY()/Tile.TILE_HEIGHT);y<(int)(RabiClone.BASE_HEIGHT/Tile.TILE_HEIGHT+this.getY()/Tile.TILE_HEIGHT+1);y++) {
|
for (int y=(int)(0+this.getY()/Tile.TILE_HEIGHT);y<(int)(RabiClone.BASE_HEIGHT/Tile.TILE_HEIGHT+this.getY()/Tile.TILE_HEIGHT+1);y++) {
|
||||||
for (int x=(int)(0+this.getX()/Tile.TILE_WIDTH);x<(int)(RabiClone.BASE_WIDTH/Tile.TILE_WIDTH+this.getX()/Tile.TILE_WIDTH+1);x++) {
|
for (int x=(int)(0+this.getX()/Tile.TILE_WIDTH);x<(int)(RabiClone.BASE_WIDTH/Tile.TILE_WIDTH+this.getX()/Tile.TILE_WIDTH+1);x++) {
|
||||||
|
if (x==RabiClone.p.highlightedSquare.getX()&&y==RabiClone.p.highlightedSquare.getY()) {
|
||||||
|
DrawTile(x*Tile.TILE_WIDTH-this.getX(),y*Tile.TILE_HEIGHT-this.getY(),Tile.WALL);
|
||||||
|
}
|
||||||
if (RabiClone.CURRENT_MAP.getTile(x,y)!=Tile.VOID) {
|
if (RabiClone.CURRENT_MAP.getTile(x,y)!=Tile.VOID) {
|
||||||
DrawTile(x*Tile.TILE_WIDTH-this.getX(),y*Tile.TILE_HEIGHT-this.getY(),RabiClone.CURRENT_MAP.getTile(x,y));
|
DrawTile(x*Tile.TILE_WIDTH-this.getX(),y*Tile.TILE_HEIGHT-this.getY(),RabiClone.CURRENT_MAP.getTile(x,y));
|
||||||
//System.out.println((x*Tile.TILE_WIDTH+(this.getX()%Tile.TILE_WIDTH) )+","+(y*Tile.TILE_HEIGHT+(this.getY()%Tile.TILE_HEIGHT)));
|
//System.out.println((x*Tile.TILE_WIDTH+(this.getX()%Tile.TILE_WIDTH) )+","+(y*Tile.TILE_HEIGHT+(this.getY()%Tile.TILE_HEIGHT)));
|
||||||
|
@ -4,7 +4,6 @@ import sig.RabiClone;
|
|||||||
import sig.engine.Object;
|
import sig.engine.Object;
|
||||||
import sig.engine.Panel;
|
import sig.engine.Panel;
|
||||||
import sig.engine.Sprite;
|
import sig.engine.Sprite;
|
||||||
import java.awt.event.KeyEvent;
|
|
||||||
|
|
||||||
public class Player extends Object{
|
public class Player extends Object{
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user