Java LWJGL 2D瓦片游戏使用超过50MB的内存一秒
所以我是一个相对较新的编程人员,我正在尝试使用LWJGL制作2D游戏。我已经用数组列表中的瓷砖制作了一个背景图,然后更新必要的东西,比如播放器等,然后将它们绘制到屏幕上,并更新屏幕。我见过其他人这样做很好,但每当我这样做的时候,它几乎每秒都会消耗100 mb的内存,如果游戏运行30秒或更少,就会导致我的电脑冻结。我不确定是绘图导致了内存使用还是其他原因,我已经检查过确保没有代码在我不知道的情况下运行,如果有人告诉我是什么问题,那就太好了。我已经提供了我的游戏中使用的主要类,总共有10个,但我只显示了3个,因为我认为这足以得到我的观点。我知道有些代码可能看起来更好,但正如我所说,我对所有这些都是新手。谢谢大家! 引导类 公共类引导{Java LWJGL 2D瓦片游戏使用超过50MB的内存一秒,java,2d,lwjgl,tile,Java,2d,Lwjgl,Tile,所以我是一个相对较新的编程人员,我正在尝试使用LWJGL制作2D游戏。我已经用数组列表中的瓷砖制作了一个背景图,然后更新必要的东西,比如播放器等,然后将它们绘制到屏幕上,并更新屏幕。我见过其他人这样做很好,但每当我这样做的时候,它几乎每秒都会消耗100 mb的内存,如果游戏运行30秒或更少,就会导致我的电脑冻结。我不确定是绘图导致了内存使用还是其他原因,我已经检查过确保没有代码在我不知道的情况下运行,如果有人告诉我是什么问题,那就太好了。我已经提供了我的游戏中使用的主要类,总共有10个,但我只显
public Boot() {
beginSession();
tile menu = new tile(0, 0, 1024, 1024, TileType.Menu);
tile outline = new tile(0, 0, 395, 96, TileType.Outline);
Display.sync(60);
while (!Display.isCloseRequested()) {
System.out.println("MENU");
menu.Draw();
if (Display.isCloseRequested()) {
Display.destroy();
}
if (Mouse.getX() > 380 && Mouse.getX() < 650 && Mouse.getY() < 320 && Mouse.getY() > 250) {
outline.setX(322);
outline.setY(305);
outline.Draw();
}
if (Mouse.isButtonDown(0) && Mouse.getX() > 380 && Mouse.getX() < 650 && Mouse.getY() < 320 && Mouse.getY() > 250) {
new Play();
}
if (Mouse.getX() > 340 && Mouse.getX() < 700 && Mouse.getY() < 210 && Mouse.getY() > 130) {
outline.setX(322);
outline.setY(425);
outline.Draw();
}
if (Mouse.isButtonDown(0) && Mouse.getX() > 340 && Mouse.getX() < 700 && Mouse.getY() < 210 && Mouse.getY() > 130) {
new About();
}
Display.update();
}
}
public static void main(String[] args) {
new Boot();
}
public Boot(){
beginSession();
平铺菜单=新平铺(0,0,1024,1024,TileType.menu);
瓷砖轮廓=新瓷砖(0,0,395,96,TileType.outline);
显示同步(60);
而(!Display.isCloseRequested()){
System.out.println(“菜单”);
menu.Draw();
if(Display.isCloseRequested()){
Display.destroy();
}
if(Mouse.getX()>380&&Mouse.getX()<650&&Mouse.getY()<320&&Mouse.getY()>250){
大纲.setX(322);
大纲:塞蒂(305);
outline.Draw();
}
if(Mouse.isButtonDown(0)和&Mouse.getX()>380和&Mouse.getX()<650和&Mouse.getY()<320和&Mouse.getY()>250){
新剧();
}
if(Mouse.getX()>340&&Mouse.getX()<700&&Mouse.getY()<210&&Mouse.getY()>130){
大纲.setX(322);
大纲:塞蒂(425);
outline.Draw();
}
if(Mouse.isButtonDown(0)和&Mouse.getX()>340和&Mouse.getX()<700和&Mouse.getY()<210和&Mouse.getY()>130){
关于()的新信息;
}
Display.update();
}
}
公共静态void main(字符串[]args){
新启动();
}
}
游戏课`
公演{
public Play() {
//@formatter:off
//MAPS//
int[][] map0 = {
{ 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 0, 6, 6, 6, 6, 6, 0, 6, 6, 6, 0, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, };
int[][] map1 = {
{ 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6 },
{ 0, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6 }, };
int[][] map2 = {
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 0, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 0, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 0 }, };
int[][] map3 = {
{ 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 0, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 }, };
//MAP FOUR//
int[][] map3left1 = {
{ 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 0, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 }, };
//MAP FIVE//
int[][] map3left2 = {
{ 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 0, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 }, };
//MAP SIX//
int[][] map3left3 = {
{ 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 0, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 }, };
//@formatter:on
TileGrid grid0 = new TileGrid(map0);
TileGrid grid1 = new TileGrid(map1);
TileGrid grid2 = new TileGrid(map2);
TileGrid grid3 = new TileGrid(map3);
TileGrid grid3left1 = new TileGrid(map3left1);
TileGrid grid3left2 = new TileGrid(map3left2);
TileGrid grid3left3 = new TileGrid(map3left3);
// ALL TILES IN GAME THAT ARE ALWAYS NEEDED GO HERE//
Asteriod a = new Asteriod(quickLoad("asteriodfour"), -100, 0, grid0, 64, 64, 10, 100);
Lander l = new Lander(quickLoad("LunarLander"), grid0.getTile(7, 0), grid0, 240, 228, 0, 0);
Wave wave = new Wave(15, a);
Astronaut player = new Astronaut(quickLoad("astronaut"), l.getX(), 310, 256, 256);
// LADNING THE LANDER//
while (l.isLanded() == false) {
Display.sync(60);
gridType = 3;
if (Display.isCloseRequested()) {
Display.destroy();
}
switch (l.getMapType()) {
case 0:
grid0.Draw();
break;
case 1:
grid1.Draw();
break;
case 2:
grid2.Draw();
break;
case 3:
grid3.Draw();
break;
}
l.Draw();
l.UpdateLander();
if (l.isLanded() == false && l.isFirst()) {
wave.UpdateAsteroid();
} else {
wave.getAsteriodList().clear();
}
if (wave.getColY() > 390 && l.getMapType() == 3) {
wave.getAsteriodList().clear();
}
if (l.getX() - wave.getColX() < 35 && wave.getColX() - l.getX() < 95 && l.getY() - wave.getColY() < 35 && wave.getColY() - l.getY() < 200) {
wave.explodeAsteroid();
l.takeDamage();
}
Display.update();
}
onMoon = true;
// PLAYER EVERYTHING//
while (onMoon == true) {
Display.sync(60);
if (Display.isCloseRequested()) {
Display.destroy();
}
if (player.getX() < 5 && gridType == 3) {
gridType = 4;
player.setX(1000);
}
switch (gridType) {
case 3:
grid3.Draw();
l.Draw();
l.UpdateLander();
break;
case 4 :
grid3left1.Draw();
}
player.Draw();
player.UpdateAstronaut();
if (player.isLeft() == true) {
player.setTexture(quickLoad("astronaut"));
} else {
player.setTexture(quickLoad("astronautRight"));
}
Display.update();
}
}
publicplay(){
//@格式化程序:关闭
//地图//
int[]map0={
{ 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 0, 6, 6, 6, 6, 6, 0, 6, 6, 6, 0, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, };
int[]map1={
{ 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6 },
{ 0, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6 }, };
int[]map2={
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 0, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 0, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 0 }, };
int[]map3={
{ 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 0, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 }, };
//地图四//
int[]map3left1={
{ 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 0, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 },
{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 }, };
//地图五//
int[]map3left2={
{ 6, 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 0, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 0
public Lander(Texture texture, tile startTile, TileGrid grid, int width, int height, float speed, int angle) {
this.texture = texture;
this.x = startTile.getX();
this.y = startTile.getY();
this.width = width;
this.height = height;
this.angle = angle;
}
public void Draw() {
drawQuadTexRotate(texture, x, y, width, height, angle);
}
//UPDATES LANDER//
public void UpdateLander() {
tile forceField = new tile(685, 510, 256, 32, TileType.ForceField);
tile forceFieldOff = new tile(745, offY, 64, 32, TileType.Off);
tile forceFieldOn = new tile(755, onY, 32, 32, TileType.On);
tile battery = new tile(13 * 64, 8 * 64, 96, 96, TileType.Battery8);
tile outOfFuel = new tile(820, 480, outOfFuelX, 32, TileType.OutOfFuel);
forceField.Draw();
forceFieldOn.Draw();
forceFieldOff.Draw();
battery.setTexture(quickLoad(percentage()));
outOfFuel.Draw();
battery.Draw();
screenMove();
landerHealth();
if (landed == false)
y = (float) (y + 1.4);
if (canMove == true) {
if (Keyboard.isKeyDown(Keyboard.KEY_A)) {
x -= 1;
if (angle > -35) {
angle -= 0.2;
}
fuelUsed += 0.1;
if (fuelUsed > 70) {
fuelLeft -= 1;
fuelUsed = 0;
}
}
if (Keyboard.isKeyDown(Keyboard.KEY_W)) {
y -= 0.6;
fuelUsed += 0.1;
if (fuelUsed > 70) {
fuelLeft -= 1;
fuelUsed = 0;
}
}
if (Keyboard.isKeyDown(Keyboard.KEY_D)) {
if (angle < 25) {
angle += 0.2;
}
x += 1;
fuelUsed += 0.1;
if (fuelUsed > 70) {
fuelLeft -= 1;
fuelUsed = 0;
}
}
if (fuelLeft < 0.1) {
outOfFuelX = 170;
canMove = false;
}
}
}
//LANDER HEALTH ONLY RAN WHEN UPDATED//
public void landerHealth() {
tile h = new tile(680, 540, 180, 96, TileType.Health100);
if (health < 90 && health > 80) {
h.setTexture(quickLoad("health90"));
h.Draw();
}
if (health < 80 && health > 70) {
h.setTexture(quickLoad("health80"));
h.Draw();
}
if (health < 70 && health > 60) {
h.setTexture(quickLoad("health70"));
h.Draw();
}
if (health < 60 && health > 50) {
h.setTexture(quickLoad("health60"));
h.Draw();
}
if (health < 50 && health > 40) {
h.setTexture(quickLoad("health50"));
h.Draw();
}
if (health < 40 && health > 30) {
h.setTexture(quickLoad("health40"));
h.Draw();
}
if (health < 30 && health > 20) {
h.setTexture(quickLoad("health30"));
h.Draw();
}
if (health < 20 && health > 10) {
h.setTexture(quickLoad("health20"));
h.Draw();
}
if (health < 10 && health > 0) {
h.setTexture(quickLoad("health10"));
h.Draw();
}
if (health <= 0) {
h.setTexture(quickLoad("health0"));
h.Draw();
landerExplode();
canMove = false;
}
h.Draw();
}
//SCREEN MOVE ONLY RAN WHEN UPDATED//
public void screenMove() {
System.out.println("SCREEN MOVE");
if (landed == false) {
if (y > 500 && mapType < 3) {
mapType++;
y -= 650;
}
if (mapType == 3) {
if (y < 230 && y > 226 && angle < 4 && angle > -4) {
canMove = false;
landed = true;
eX2 = x - 15;
eY2 = y - 15;
offY = 2000;
onY = 540;
}
if (y > 234 && (angle > 4 || angle < -4)) {
landerExplode();
}
}
}
}
//ONLY RAN WHEN UPDATED, DEATH SCREEN NEEDED//
public void landerExplode() {
if (landerExplodeCounter < 850) {
if (first) {
eX1 = x;
eX2 = x - 15;
eX3 = x;
eY1 = y;
eY2 = y - 15;
eY3 = y;
x = 2000;
first = false;
}
System.out.println("EX");
landerExplodeCounter++;
tile landerp1 = new tile(x, y, 240, 228, TileType.LanderPart1);
tile landerp2 = new tile(x, y, 240, 228, TileType.LanderPart2);
tile landerp3 = new tile(x, y, 240, 228, TileType.LanderPart3);
landerp1.setX(eX1 -= 0.7);
landerp1.setY(eY1 -= 0.4);
landerp2.setX(eX2 += 0.5);
landerp2.setY(eY2 -= 0.2);
landerp3.setX(eX3 -= 0.1);
landerp3.setY(eY3 += 0.8);
landerp1.Draw();
landerp2.Draw();
landerp3.Draw();
}
}
//ONLY RAN WHEN UPDATED//
public void takeDamage() {
System.out.println("TAKE DAMAGE");
if (landed == false) {
health = (float) (health - 5.5);
System.out.println(health);
}
}
//ONLY RAN WHEN UPDATED//
private String percentage() {
System.out.println("PERCENTAGE");
String name = "Battery";
switch (fuelLeft) {
case 8:
name = name + "8";
break;
case 7:
name = name + "7";
break;
case 6:
name = name + "6";
break;
case 5:
name = name + "5";
break;
case 4:
name = name + "4";
break;
case 3:
name = name + "3";
break;
case 2:
name = name + "2";
break;
case 1:
name = name + "1";
break;
case 0:
name = name + "0";
break;
}
return name;
}