h
This commit is contained in:
parent
1bb4756930
commit
d558b4dc39
@ -230,9 +230,9 @@ public class AssetManager {
|
|||||||
//techCenter.rocketTankResearched_enemy = true;
|
//techCenter.rocketTankResearched_enemy = true;
|
||||||
|
|
||||||
//}else {
|
//}else {
|
||||||
heavyTank l = new heavyTank(new vector(j*0.25f+ 1.125f,-0.3f, 22.125f - i*0.25f), 90, 1);
|
//heavyTank l = new heavyTank(new vector(j*0.25f+ 1.125f,-0.3f, 22.125f - i*0.25f), 90, 1);
|
||||||
|
|
||||||
addHeavyTank(l);
|
//addHeavyTank(l);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
|
||||||
@ -245,13 +245,13 @@ public class AssetManager {
|
|||||||
//harvester l = new harvester(new vector(i*0.25f+ 1.125f,-0.3f, 17.375f - 0.25f*j), 90, 0);
|
//harvester l = new harvester(new vector(i*0.25f+ 1.125f,-0.3f, 17.375f - 0.25f*j), 90, 0);
|
||||||
//addHarvester(l);
|
//addHarvester(l);
|
||||||
//l.hasMultiShotUpgrade = true;
|
//l.hasMultiShotUpgrade = true;
|
||||||
lightTank l = new lightTank(new vector(i*0.25f + 1.125f,-0.3f, 0.5f + 18.625f + j*0.25f), 90, 0);
|
//lightTank l = new lightTank(new vector(i*0.25f + 1.125f,-0.3f, 0.5f + 18.625f + j*0.25f), 90, 0);
|
||||||
|
|
||||||
//l.attackRange = 1.99f;
|
//l.attackRange = 1.99f;
|
||||||
|
|
||||||
//lightTank.tileCheckList_player = lightTank.generateTileCheckList(6);
|
//lightTank.tileCheckList_player = lightTank.generateTileCheckList(6);
|
||||||
|
|
||||||
addLightTank(l);
|
//addLightTank(l);
|
||||||
//if(j == 0 && i == 0)
|
//if(j == 0 && i == 0)
|
||||||
//addMissileTurret(new missileTurret(i*0.25f -0.125f + 1, -0.65f, 0.25f + 17.125f + j*0.25f, 0));
|
//addMissileTurret(new missileTurret(i*0.25f -0.125f + 1, -0.65f, 0.25f + 17.125f + j*0.25f, 0));
|
||||||
|
|
||||||
|
@ -144,12 +144,7 @@ public class camera{
|
|||||||
position.add(-view_Direction.x*3, 0 , -view_Direction.z*3);
|
position.add(-view_Direction.x*3, 0 , -view_Direction.z*3);
|
||||||
|
|
||||||
|
|
||||||
MOVE_LEFT = false;
|
|
||||||
MOVE_RIGHT = false;
|
|
||||||
MOVE_UP = false;
|
|
||||||
MOVE_DOWN = false;
|
|
||||||
TURN_LEFT = false;
|
|
||||||
TURN_RIGHT = false;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,8 +15,8 @@ import gui.*;
|
|||||||
|
|
||||||
public class mainThread extends JFrame implements KeyListener, ActionListener, MouseMotionListener, MouseListener, FocusListener{
|
public class mainThread extends JFrame implements KeyListener, ActionListener, MouseMotionListener, MouseListener, FocusListener{
|
||||||
|
|
||||||
public static int[] screen;
|
public static int[] screen, bufferScreen;
|
||||||
public static int[] screen2;
|
public static int[] screen2, buffer2Screen;
|
||||||
public static int[] zBuffer;
|
public static int[] zBuffer;
|
||||||
public static int[] zBuffer2;
|
public static int[] zBuffer2;
|
||||||
public static BufferedImage doubleBuffer;
|
public static BufferedImage doubleBuffer;
|
||||||
@ -39,6 +39,7 @@ public class mainThread extends JFrame implements KeyListener, ActionListener, M
|
|||||||
public static playerCommander pc;
|
public static playerCommander pc;
|
||||||
public static enemyCommander ec;
|
public static enemyCommander ec;
|
||||||
public static AssetManager theAssetManager;
|
public static AssetManager theAssetManager;
|
||||||
|
public static gameCursor theGameCursor;
|
||||||
public static grid gridMap;
|
public static grid gridMap;
|
||||||
public static postProcessingThread PPT;
|
public static postProcessingThread PPT;
|
||||||
public static Object PPT_Lock;
|
public static Object PPT_Lock;
|
||||||
@ -59,7 +60,8 @@ public class mainThread extends JFrame implements KeyListener, ActionListener, M
|
|||||||
public static final int endGameMenu = 3;
|
public static final int endGameMenu = 3;
|
||||||
|
|
||||||
public static String timeString;
|
public static String timeString;
|
||||||
public static boolean fogOfWarDisabled = false;
|
public static boolean fogOfWarDisabled;
|
||||||
|
|
||||||
|
|
||||||
public mainThread(){
|
public mainThread(){
|
||||||
setTitle("Battle Tank 3");
|
setTitle("Battle Tank 3");
|
||||||
@ -75,14 +77,28 @@ public class mainThread extends JFrame implements KeyListener, ActionListener, M
|
|||||||
setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);
|
setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);
|
||||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
|
||||||
|
//hide mouse cursor
|
||||||
|
// Transparent 16 x 16 pixel cursor image.
|
||||||
|
BufferedImage cursorImg = new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB);
|
||||||
|
|
||||||
|
// Create a new blank cursor.
|
||||||
|
Cursor blankCursor = Toolkit.getDefaultToolkit().createCustomCursor(
|
||||||
|
cursorImg, new Point(0, 0), "blank cursor");
|
||||||
|
|
||||||
|
// Set the blank cursor to the JFrame.
|
||||||
|
this.getContentPane().setCursor(blankCursor);
|
||||||
|
|
||||||
|
|
||||||
//create screen buffer
|
//create screen buffer
|
||||||
doubleBuffer = new BufferedImage(768, 512, BufferedImage.TYPE_INT_RGB);
|
doubleBuffer = new BufferedImage(768, 512, BufferedImage.TYPE_INT_RGB);
|
||||||
DataBuffer dest = doubleBuffer.getRaster().getDataBuffer();
|
DataBuffer dest = doubleBuffer.getRaster().getDataBuffer();
|
||||||
screen = ((DataBufferInt)dest).getData();
|
screen = ((DataBufferInt)dest).getData();
|
||||||
|
bufferScreen = screen;
|
||||||
|
|
||||||
doubleBuffer2 = new BufferedImage(768, 512, BufferedImage.TYPE_INT_RGB);
|
doubleBuffer2 = new BufferedImage(768, 512, BufferedImage.TYPE_INT_RGB);
|
||||||
DataBuffer dest2 = doubleBuffer2.getRaster().getDataBuffer();
|
DataBuffer dest2 = doubleBuffer2.getRaster().getDataBuffer();
|
||||||
screen2 = ((DataBufferInt)dest2).getData();
|
screen2 = ((DataBufferInt)dest2).getData();
|
||||||
|
buffer2Screen = screen2;
|
||||||
|
|
||||||
//create depth buffer
|
//create depth buffer
|
||||||
zBuffer = new int[393216];
|
zBuffer = new int[393216];
|
||||||
@ -172,6 +188,9 @@ public class mainThread extends JFrame implements KeyListener, ActionListener, M
|
|||||||
|
|
||||||
theAssetManager = new AssetManager();
|
theAssetManager = new AssetManager();
|
||||||
theAssetManager.init();
|
theAssetManager.init();
|
||||||
|
|
||||||
|
theGameCursor = new gameCursor();
|
||||||
|
theGameCursor.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
frameIndex++;
|
frameIndex++;
|
||||||
@ -229,12 +248,19 @@ public class mainThread extends JFrame implements KeyListener, ActionListener, M
|
|||||||
|
|
||||||
if(frameIndex %2 == 0 && frameIndex > 3){
|
if(frameIndex %2 == 0 && frameIndex > 3){
|
||||||
bf = doubleBuffer;
|
bf = doubleBuffer;
|
||||||
paintComponent(panel.getGraphics());
|
//draw mouse cursor
|
||||||
|
theGameCursor.updateAndDraw(bufferScreen);
|
||||||
|
|
||||||
|
|
||||||
}else if(frameIndex != 1 && frameIndex > 3){
|
}else if(frameIndex != 1 && frameIndex > 3){
|
||||||
bf = doubleBuffer2;
|
bf = doubleBuffer2;
|
||||||
paintComponent(panel.getGraphics());
|
//draw mouse cursor
|
||||||
|
theGameCursor.updateAndDraw(buffer2Screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(frameIndex > 3)
|
||||||
|
paintComponent(panel.getGraphics());
|
||||||
|
|
||||||
swapResources();
|
swapResources();
|
||||||
|
|
||||||
//maintain a constant frame rate
|
//maintain a constant frame rate
|
||||||
@ -247,7 +273,7 @@ public class mainThread extends JFrame implements KeyListener, ActionListener, M
|
|||||||
public void paintComponent(Graphics g){
|
public void paintComponent(Graphics g){
|
||||||
|
|
||||||
//copy the pixel information to the video memory
|
//copy the pixel information to the video memory
|
||||||
Graphics2D g2 =(Graphics2D)bf.getGraphics(); //(Graphics2D)g;
|
//Graphics2D g2 =(Graphics2D)bf.getGraphics(); //(Graphics2D)g;
|
||||||
|
|
||||||
//display polygon count and frame rate
|
//display polygon count and frame rate
|
||||||
//g2.setColor(Color.WHITE);
|
//g2.setColor(Color.WHITE);
|
||||||
|
@ -726,6 +726,7 @@ public class postProcessingThread implements Runnable{
|
|||||||
//draw mini map
|
//draw mini map
|
||||||
theMiniMap.draw(currentScreen, minimapBitmap, unitsForMiniMap, unitsForMiniMapCount);
|
theMiniMap.draw(currentScreen, minimapBitmap, unitsForMiniMap, unitsForMiniMapCount);
|
||||||
theSideBar.draw(currentScreen, sideBarInfo);
|
theSideBar.draw(currentScreen, sideBarInfo);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
1
gui/.gitignore
vendored
1
gui/.gitignore
vendored
@ -8,3 +8,4 @@
|
|||||||
/gameMenu.class
|
/gameMenu.class
|
||||||
/button.class
|
/button.class
|
||||||
/textRenderer.class
|
/textRenderer.class
|
||||||
|
/gameCursor.class
|
||||||
|
@ -9,7 +9,6 @@ import core.mainThread;
|
|||||||
import core.postProcessingThread;
|
import core.postProcessingThread;
|
||||||
|
|
||||||
public class SideBar {
|
public class SideBar {
|
||||||
public String imageFolder = "";
|
|
||||||
|
|
||||||
public int[][] iconImages;
|
public int[][] iconImages;
|
||||||
public int[][] iconImages_dark;
|
public int[][] iconImages_dark;
|
||||||
@ -630,7 +629,7 @@ public class SideBar {
|
|||||||
public void loadTexture(String imgName, int[] buffer, int width, int height, int[] buffer_dark){
|
public void loadTexture(String imgName, int[] buffer, int width, int height, int[] buffer_dark){
|
||||||
Image img = null;
|
Image img = null;
|
||||||
try{
|
try{
|
||||||
img = ImageIO.read(getClass().getResource(imageFolder + imgName));
|
img = ImageIO.read(getClass().getResource(imgName));
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
158
gui/gameCursor.java
Normal file
158
gui/gameCursor.java
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
package gui;
|
||||||
|
|
||||||
|
import java.awt.Image;
|
||||||
|
import java.awt.image.PixelGrabber;
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
|
|
||||||
|
import core.camera;
|
||||||
|
import core.mainThread;
|
||||||
|
|
||||||
|
public class gameCursor {
|
||||||
|
|
||||||
|
public int[][] arrowIcons;
|
||||||
|
public int[] cursorIcon;
|
||||||
|
public int[] screen;
|
||||||
|
|
||||||
|
public void init() {
|
||||||
|
|
||||||
|
String folder = "../images/";
|
||||||
|
|
||||||
|
arrowIcons = new int[8][24*24];
|
||||||
|
for(int i = 0; i < 8; i++) {
|
||||||
|
loadTexture(folder + "arrow"+i+".png", arrowIcons[i], 24,24);
|
||||||
|
}
|
||||||
|
|
||||||
|
cursorIcon = new int[24*24];
|
||||||
|
loadTexture(folder + "cursor.png", cursorIcon, 24,24);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateAndDraw(int[] screen) {
|
||||||
|
this.screen = screen;
|
||||||
|
int mouseX = inputHandler.mouse_x;
|
||||||
|
int mouseY = inputHandler.mouse_y;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(!mainThread.gamePaused && mainThread.gameStarted) {
|
||||||
|
|
||||||
|
//draw arrow icons if the player is scrolling the screen with the mouse
|
||||||
|
int cursorX = 0;
|
||||||
|
int cursorY = 0;
|
||||||
|
if(camera.MOVE_DOWN && !camera.MOVE_LEFT && ! camera.MOVE_RIGHT) {
|
||||||
|
drawIcon(arrowIcons[1], mouseX-12,489);
|
||||||
|
}else if(camera.MOVE_UP && !camera.MOVE_LEFT && ! camera.MOVE_RIGHT) {
|
||||||
|
drawIcon(arrowIcons[3], mouseX-12,0);
|
||||||
|
}else if(camera.MOVE_LEFT && !camera.MOVE_UP && ! camera.MOVE_DOWN) {
|
||||||
|
drawIcon(arrowIcons[2], 0,mouseY-12);
|
||||||
|
}else if(camera.MOVE_RIGHT && !camera.MOVE_UP && ! camera.MOVE_DOWN) {
|
||||||
|
drawIcon(arrowIcons[0], 745,mouseY-12);
|
||||||
|
}else if(camera.MOVE_RIGHT && camera.MOVE_UP) {
|
||||||
|
if(mouseY> 768 - mouseX) {
|
||||||
|
cursorX = 747;
|
||||||
|
cursorY = mouseY-12;
|
||||||
|
}else {
|
||||||
|
cursorX = mouseX-12;
|
||||||
|
cursorY = -3;
|
||||||
|
}
|
||||||
|
if(cursorX > 747)
|
||||||
|
cursorX = 747;
|
||||||
|
if(cursorY < -3)
|
||||||
|
cursorY = -3;
|
||||||
|
drawIcon(arrowIcons[4], cursorX, cursorY);
|
||||||
|
}else if(camera.MOVE_LEFT && camera.MOVE_UP) {
|
||||||
|
if(mouseY > mouseX) {
|
||||||
|
cursorX = -3;
|
||||||
|
cursorY = mouseY-12;
|
||||||
|
}else {
|
||||||
|
cursorX = mouseX - 12;
|
||||||
|
cursorY = -3;
|
||||||
|
}
|
||||||
|
if(cursorX < -3)
|
||||||
|
cursorX = -3;
|
||||||
|
if(cursorY < -3)
|
||||||
|
cursorY = -3;
|
||||||
|
drawIcon(arrowIcons[7], cursorX, cursorY);
|
||||||
|
}else if(camera.MOVE_LEFT && camera.MOVE_DOWN) {
|
||||||
|
if(512 - mouseY > mouseX) {
|
||||||
|
cursorX = -3;
|
||||||
|
cursorY = mouseY-12;
|
||||||
|
}else {
|
||||||
|
cursorX = mouseX-12;
|
||||||
|
cursorY = 491;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cursorX < -3)
|
||||||
|
cursorX = -3;
|
||||||
|
if(cursorY > 491)
|
||||||
|
cursorY = 491;
|
||||||
|
drawIcon(arrowIcons[6], cursorX, cursorY);
|
||||||
|
}else if(camera.MOVE_RIGHT && camera.MOVE_DOWN) {
|
||||||
|
if(512 - mouseY > 768 -mouseX) {
|
||||||
|
cursorX = 747;
|
||||||
|
cursorY = mouseY-12;
|
||||||
|
}else {
|
||||||
|
cursorX = mouseX-12;
|
||||||
|
cursorY = 491;
|
||||||
|
}
|
||||||
|
if(cursorX >747)
|
||||||
|
cursorX = 747;
|
||||||
|
if(cursorY > 491)
|
||||||
|
cursorY = 491;
|
||||||
|
|
||||||
|
drawIcon(arrowIcons[5], cursorX, cursorY);
|
||||||
|
}else {
|
||||||
|
|
||||||
|
//draw default icon
|
||||||
|
|
||||||
|
drawIcon(cursorIcon, mouseX, mouseY);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
//draw default icon
|
||||||
|
|
||||||
|
drawIcon(cursorIcon, mouseX, mouseY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loadTexture(String imgName, int[] buffer, int width, int height){
|
||||||
|
Image img = null;
|
||||||
|
try{
|
||||||
|
img = ImageIO.read(getClass().getResource(imgName));
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PixelGrabber pg = new PixelGrabber(img, 0, 0, width, height, buffer, 0, width);
|
||||||
|
try {
|
||||||
|
pg.grabPixels();
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawIcon(int[] icon, int xPos, int yPos) {
|
||||||
|
for(int i = 0; i < 24; i++) {
|
||||||
|
for(int j = 0; j < 24; j++) {
|
||||||
|
int x = xPos + j;
|
||||||
|
int y = yPos + i;
|
||||||
|
|
||||||
|
if(x < 0 || x >= 768)
|
||||||
|
continue;
|
||||||
|
if(y < 0 || y >= 512)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
int color = icon[j+i*24];
|
||||||
|
|
||||||
|
int blue = color&0xff;
|
||||||
|
int red = (color&0xff0000) >> 16;
|
||||||
|
if(red < 100 && blue > 100)
|
||||||
|
continue;
|
||||||
|
screen[x + y*768] = color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -169,6 +169,13 @@ public class inputHandler {
|
|||||||
|
|
||||||
//handle input when game is running
|
//handle input when game is running
|
||||||
if(!mainThread.gamePaused && mainThread.gameStarted){
|
if(!mainThread.gamePaused && mainThread.gameStarted){
|
||||||
|
camera.MOVE_LEFT = false;
|
||||||
|
camera.MOVE_RIGHT = false;
|
||||||
|
camera.MOVE_UP = false;
|
||||||
|
camera.MOVE_DOWN = false;
|
||||||
|
camera.TURN_LEFT = false;
|
||||||
|
camera.TURN_RIGHT = false;
|
||||||
|
|
||||||
if(!mainThread.pc.isSelectingUnit){
|
if(!mainThread.pc.isSelectingUnit){
|
||||||
mouse_x0 = mouse_x;
|
mouse_x0 = mouse_x;
|
||||||
mouse_y0 = mouse_y;
|
mouse_y0 = mouse_y;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user