Megadex functionality implemented. Little details still have to be
added, but retrieving from the database is successful.
BIN
Megamon-core/assets/Megamon/2.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
Megamon-core/assets/Megamon/2_back.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
Megamon-core/assets/Megamon/2_icon.png
Normal file
After Width: | Height: | Size: 602 B |
BIN
Megamon-core/assets/Megamon/3.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
Megamon-core/assets/Megamon/3_back.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
Megamon-core/assets/Megamon/3_icon.png
Normal file
After Width: | Height: | Size: 499 B |
BIN
Megamon-core/assets/Megamon/4.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
Megamon-core/assets/Megamon/4_back.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
Megamon-core/assets/Megamon/4_icon.png
Normal file
After Width: | Height: | Size: 713 B |
BIN
Megamon-core/assets/Megamon/5.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
Megamon-core/assets/Megamon/5_back.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
Megamon-core/assets/Megamon/5_icon.png
Normal file
After Width: | Height: | Size: 563 B |
BIN
Megamon-core/assets/Megamon/6.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
Megamon-core/assets/Megamon/6_back.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
Megamon-core/assets/Megamon/6_icon.png
Normal file
After Width: | Height: | Size: 408 B |
BIN
Megamon-core/assets/interface/healthbar_horizontal.png
Normal file
After Width: | Height: | Size: 259 B |
BIN
Megamon-core/assets/interface/megadex.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
Megamon-core/assets/interface/tiledbackground.png
Normal file
After Width: | Height: | Size: 228 B |
@ -36,6 +36,7 @@ import sig.megamon.creature.CreatureMoveLinker;
|
|||||||
import sig.megamon.creature.CreatureType;
|
import sig.megamon.creature.CreatureType;
|
||||||
import sig.megamon.creature.ExperienceRate;
|
import sig.megamon.creature.ExperienceRate;
|
||||||
import sig.megamon.menu.DialogBox;
|
import sig.megamon.menu.DialogBox;
|
||||||
|
import sig.megamon.menu.MegadexMenu;
|
||||||
import sig.megamon.menu.MegamonPartyScreen;
|
import sig.megamon.menu.MegamonPartyScreen;
|
||||||
import sig.megamon.menu.StartMenuBox;
|
import sig.megamon.menu.StartMenuBox;
|
||||||
import sig.megamon.ref.Ref;
|
import sig.megamon.ref.Ref;
|
||||||
@ -52,7 +53,8 @@ public class Megamon extends ApplicationAdapter implements ApplicationListener{
|
|||||||
public static DialogBox messagebox;
|
public static DialogBox messagebox;
|
||||||
public static StartMenuBox startmenubox;
|
public static StartMenuBox startmenubox;
|
||||||
public static MegamonPartyScreen partyscreen;
|
public static MegamonPartyScreen partyscreen;
|
||||||
public static Texture healthbar;
|
public static MegadexMenu megadexscreen;
|
||||||
|
public static Texture healthbar,healthbar_horizontal;
|
||||||
//AssetManager assets;
|
//AssetManager assets;
|
||||||
//TiledMap map;
|
//TiledMap map;
|
||||||
static OrthographicCamera camera;
|
static OrthographicCamera camera;
|
||||||
@ -71,12 +73,14 @@ public class Megamon extends ApplicationAdapter implements ApplicationListener{
|
|||||||
final public static int MOVEUPKEY = Keys.UP;
|
final public static int MOVEUPKEY = Keys.UP;
|
||||||
final public static int MOVEDOWNKEY = Keys.DOWN;
|
final public static int MOVEDOWNKEY = Keys.DOWN;
|
||||||
final public static int MENUKEY = Keys.ENTER;
|
final public static int MENUKEY = Keys.ENTER;
|
||||||
|
public final static int CURSORDELAYTIMER = 5;
|
||||||
public static List<MegamonCreature> megamonDatabase = new ArrayList<MegamonCreature>();
|
public static List<MegamonCreature> megamonDatabase = new ArrayList<MegamonCreature>();
|
||||||
public static HashMap<String,CreatureMove> moveDatabase = new HashMap<String,CreatureMove>();
|
public static HashMap<String,CreatureMove> moveDatabase = new HashMap<String,CreatureMove>();
|
||||||
//public static List<Object> objects = new ArrayList<Object>();
|
//public static List<Object> objects = new ArrayList<Object>();
|
||||||
public static Room currentLevel;
|
public static Room currentLevel;
|
||||||
public static HashMap<String,RoomRef> doorDatabase = new HashMap<String,RoomRef>();
|
public static HashMap<String,RoomRef> doorDatabase = new HashMap<String,RoomRef>();
|
||||||
public static HashMap<String,SignRef> infoDatabase = new HashMap<String,SignRef>();
|
public static HashMap<String,SignRef> infoDatabase = new HashMap<String,SignRef>();
|
||||||
|
//Point2D.Double background_offset = new Point2D.Double(0, 0);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void create() {
|
public void create() {
|
||||||
@ -84,6 +88,9 @@ public class Megamon extends ApplicationAdapter implements ApplicationListener{
|
|||||||
font = new BitmapFont(Gdx.files.internal("fonts/AgencyFB.fnt"));
|
font = new BitmapFont(Gdx.files.internal("fonts/AgencyFB.fnt"));
|
||||||
mainP = new Player(new Point2D.Double(1,1),"megamon_icon64.png");
|
mainP = new Player(new Point2D.Double(1,1),"megamon_icon64.png");
|
||||||
healthbar = new Texture("interface/healthbar.png");
|
healthbar = new Texture("interface/healthbar.png");
|
||||||
|
healthbar_horizontal = new Texture("interface/healthbar_horizontal.png");
|
||||||
|
//Gdx.graphics.setUndecorated(false);
|
||||||
|
//Gdx.graphics.setResizable(false);
|
||||||
//assets = new AssetManager();
|
//assets = new AssetManager();
|
||||||
|
|
||||||
/*assets.setLoader(TiledMap.class, new TmxMapLoader(new InternalFileHandleResolver()));
|
/*assets.setLoader(TiledMap.class, new TmxMapLoader(new InternalFileHandleResolver()));
|
||||||
@ -100,28 +107,26 @@ public class Megamon extends ApplicationAdapter implements ApplicationListener{
|
|||||||
Database.SetupInfoDatabase();
|
Database.SetupInfoDatabase();
|
||||||
Database.SetupMoveDatabase();
|
Database.SetupMoveDatabase();
|
||||||
Database.SetupMegamonDatabase();
|
Database.SetupMegamonDatabase();
|
||||||
|
Database.SetupEvolutionDatabase();
|
||||||
currentLevel = new Room(mainP.position,"Test Map");
|
currentLevel = new Room(mainP.position,"Test Map");
|
||||||
|
|
||||||
MegamonPet testPet = new MegamonPet("Test Name",
|
MegamonPet testPet = new MegamonPet("Test Name",
|
||||||
new MegamonCreature("test_mini_sprite.png","test_sprite.png","test_sprite.png",
|
megamonDatabase.get(2),
|
||||||
"Test Creature", "This is for testing purposes only.", 14, 60, CreatureType.NORMAL,
|
|
||||||
40,60,30,30,50,55,30,ExperienceRate.MEDIUM_FAST,new CreatureMoveLinker[]{}),
|
|
||||||
100);
|
100);
|
||||||
MegamonPet testPet2 = new MegamonPet("Test Name",
|
MegamonPet testPet2 = new MegamonPet("Test Name",
|
||||||
new MegamonCreature("test_mini_sprite.png","test_sprite.png","test_sprite.png",
|
megamonDatabase.get(5),
|
||||||
"Test Creature", "This is for testing purposes only.", 14, 60, CreatureType.NORMAL,
|
|
||||||
40,60,30,30,50,55,30,ExperienceRate.MEDIUM_FAST,new CreatureMoveLinker[]{}),
|
|
||||||
100);
|
100);
|
||||||
MegamonPet testPet3 = new MegamonPet("Test Name",
|
MegamonPet testPet3 = new MegamonPet("Test Name",
|
||||||
new MegamonCreature("test_mini_sprite.png","test_sprite.png","test_sprite.png",
|
megamonDatabase.get(0),
|
||||||
"Test Creature", "This is for testing purposes only.", 14, 60, CreatureType.NORMAL,
|
|
||||||
40,60,30,30,50,55,30,ExperienceRate.MEDIUM_FAST,new CreatureMoveLinker[]{}),
|
|
||||||
100);
|
100);
|
||||||
MegamonPet testPet4 = new MegamonPet("Test Name",
|
MegamonPet testPet4 = new MegamonPet("Test Name",
|
||||||
new MegamonCreature("test_mini_sprite.png","test_sprite.png","test_sprite.png",
|
megamonDatabase.get(3),
|
||||||
"Test Creature", "This is for testing purposes only.", 14, 60, CreatureType.NORMAL,
|
|
||||||
40,60,30,30,50,55,30,ExperienceRate.MEDIUM_FAST,new CreatureMoveLinker[]{}),
|
|
||||||
100);
|
100);
|
||||||
|
megamonDatabase.get(2).setSeen(true);
|
||||||
|
megamonDatabase.get(2).setCaught(true);
|
||||||
|
megamonDatabase.get(5).setSeen(true);
|
||||||
|
megamonDatabase.get(0).setSeen(true);
|
||||||
|
megamonDatabase.get(102).setSeen(true);
|
||||||
testPet.setHP((int)(Math.random()*testPet.getMaxHP()));
|
testPet.setHP((int)(Math.random()*testPet.getMaxHP()));
|
||||||
testPet2.setHP((int)(Math.random()*testPet2.getMaxHP()));
|
testPet2.setHP((int)(Math.random()*testPet2.getMaxHP()));
|
||||||
testPet3.setHP((int)(Math.random()*testPet3.getMaxHP()));
|
testPet3.setHP((int)(Math.random()*testPet3.getMaxHP()));
|
||||||
@ -144,6 +149,9 @@ public class Megamon extends ApplicationAdapter implements ApplicationListener{
|
|||||||
Gdx.graphics.set
|
Gdx.graphics.set
|
||||||
//Potential resizing code.
|
//Potential resizing code.
|
||||||
}*/
|
}*/
|
||||||
|
if (megadexscreen!=null) {
|
||||||
|
megadexscreen.run();
|
||||||
|
} else
|
||||||
if (partyscreen!=null) {
|
if (partyscreen!=null) {
|
||||||
partyscreen.run();
|
partyscreen.run();
|
||||||
} else
|
} else
|
||||||
@ -178,6 +186,10 @@ public class Megamon extends ApplicationAdapter implements ApplicationListener{
|
|||||||
batch.begin();
|
batch.begin();
|
||||||
//batch.draw(img, 0, 0);
|
//batch.draw(img, 0, 0);
|
||||||
|
|
||||||
|
if (megadexscreen!=null) {
|
||||||
|
megadexscreen.draw(batch);
|
||||||
|
}
|
||||||
|
else
|
||||||
if (partyscreen!=null) {
|
if (partyscreen!=null) {
|
||||||
partyscreen.draw(batch);
|
partyscreen.draw(batch);
|
||||||
}
|
}
|
||||||
@ -199,6 +211,8 @@ public class Megamon extends ApplicationAdapter implements ApplicationListener{
|
|||||||
}
|
}
|
||||||
//GlyphLayout size = font.draw(batch, "Test Text", 0, 32);
|
//GlyphLayout size = font.draw(batch, "Test Text", 0, 32);
|
||||||
//font.draw(batch, "Test Text", Megamon.WINDOW_WIDTH-size.width, 128-size.height);
|
//font.draw(batch, "Test Text", Megamon.WINDOW_WIDTH-size.width, 128-size.height);
|
||||||
|
/*DrawUtils.drawTiledImage(batch, healthbar, background_offset);
|
||||||
|
background_offset.setLocation(background_offset.x+0.4, background_offset.y+0.2);*/
|
||||||
batch.end();
|
batch.end();
|
||||||
framesPassed++;
|
framesPassed++;
|
||||||
if (lastCheck.getTime().getSeconds()!=Calendar.getInstance().getTime().getSeconds()) {
|
if (lastCheck.getTime().getSeconds()!=Calendar.getInstance().getTime().getSeconds()) {
|
||||||
@ -208,10 +222,15 @@ public class Megamon extends ApplicationAdapter implements ApplicationListener{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resize(int width, int height) {
|
||||||
|
//Gdx.graphics.setWindowedMode(width, (int)(width*((float)Megamon.WINDOW_HEIGHT)/Megamon.WINDOW_WIDTH));
|
||||||
|
//System.out.println("Resized: "+width+","+height);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dispose () {
|
public void dispose () {
|
||||||
batch.dispose();
|
batch.dispose();
|
||||||
img.dispose();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
@ -29,8 +29,9 @@ public class MegamonCreature {
|
|||||||
final int base_exp;
|
final int base_exp;
|
||||||
final ExperienceRate exp_rate;
|
final ExperienceRate exp_rate;
|
||||||
final List<CreatureMoveLinker> moveset;
|
final List<CreatureMoveLinker> moveset;
|
||||||
final List<Evolution> evolution_rules;
|
List<Evolution> evolution_rules;
|
||||||
boolean seenByPlayer=false;
|
boolean seenByPlayer=false;
|
||||||
|
boolean caughtByPlayer=false;
|
||||||
|
|
||||||
public MegamonCreature(String mini_icon, String sprite, String back_sprite,
|
public MegamonCreature(String mini_icon, String sprite, String back_sprite,
|
||||||
String name, String bio, int size, float weight, CreatureType type1,
|
String name, String bio, int size, float weight, CreatureType type1,
|
||||||
@ -49,6 +50,14 @@ public class MegamonCreature {
|
|||||||
this(mini_icon,sprite,back_sprite,name,bio,size, weight,type1,CreatureType.NONE,base_hp,base_atk,base_def,base_spc,base_spd,catch_rate,base_exp,exp_rate,evolution_rules,moveset);
|
this(mini_icon,sprite,back_sprite,name,bio,size, weight,type1,CreatureType.NONE,base_hp,base_atk,base_def,base_spc,base_spd,catch_rate,base_exp,exp_rate,evolution_rules,moveset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MegamonCreature(String mini_icon, String sprite, String back_sprite,
|
||||||
|
String name, String bio, int size, float weight, CreatureType type1,
|
||||||
|
CreatureType type2, int base_hp, int base_atk, int base_def, int base_spc, int base_spd,
|
||||||
|
int catch_rate, int base_exp, ExperienceRate exp_rate,
|
||||||
|
CreatureMoveLinker...moveset) {
|
||||||
|
this(mini_icon,sprite,back_sprite,name,bio,size, weight,type1,type2,base_hp,base_atk,base_def,base_spc,base_spd,catch_rate,base_exp,exp_rate,new ArrayList<Evolution>(),moveset);
|
||||||
|
}
|
||||||
|
|
||||||
public MegamonCreature(String mini_icon, String sprite, String back_sprite,
|
public MegamonCreature(String mini_icon, String sprite, String back_sprite,
|
||||||
String name, String bio, int size, float weight, CreatureType type1,
|
String name, String bio, int size, float weight, CreatureType type1,
|
||||||
CreatureType type2,
|
CreatureType type2,
|
||||||
@ -77,6 +86,10 @@ public class MegamonCreature {
|
|||||||
this.seenByPlayer=seenByPlayer;
|
this.seenByPlayer=seenByPlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setCaught(boolean caughtByPlayer) {
|
||||||
|
this.caughtByPlayer=caughtByPlayer;
|
||||||
|
}
|
||||||
|
|
||||||
public SpriteCollection getSprites() {
|
public SpriteCollection getSprites() {
|
||||||
return sprites;
|
return sprites;
|
||||||
}
|
}
|
||||||
@ -136,11 +149,18 @@ public class MegamonCreature {
|
|||||||
public boolean isSeenByPlayer() {
|
public boolean isSeenByPlayer() {
|
||||||
return seenByPlayer;
|
return seenByPlayer;
|
||||||
}
|
}
|
||||||
|
public boolean isCaughtByPlayer() {
|
||||||
|
return caughtByPlayer;
|
||||||
|
}
|
||||||
|
|
||||||
public List<Evolution> getEvolutionRules() {
|
public List<Evolution> getEvolutionRules() {
|
||||||
return evolution_rules;
|
return evolution_rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setEvolutionRules(List<Evolution> rules) {
|
||||||
|
this.evolution_rules = rules;
|
||||||
|
}
|
||||||
|
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuilder sb = new StringBuilder(this.getClass().getSimpleName()+"(");
|
StringBuilder sb = new StringBuilder(this.getClass().getSimpleName()+"(");
|
||||||
boolean first=true;
|
boolean first=true;
|
||||||
|
@ -1,11 +1,18 @@
|
|||||||
package sig.megamon.creature;
|
package sig.megamon.creature;
|
||||||
|
|
||||||
|
import sig.megamon.Megamon;
|
||||||
|
|
||||||
public class CreatureMoveLinker {
|
public class CreatureMoveLinker {
|
||||||
CreatureMove move;
|
CreatureMove move;
|
||||||
int lvLearned=0;
|
int lvLearned=0;
|
||||||
|
|
||||||
public CreatureMoveLinker(CreatureMove move, int lvLearnedAt) {
|
public CreatureMoveLinker(String moveKeyName, int lvLearnedAt) {
|
||||||
this.move=move;
|
if (Megamon.moveDatabase.containsKey(moveKeyName)) {
|
||||||
|
this.move = Megamon.moveDatabase.get(moveKeyName);
|
||||||
|
} else {
|
||||||
|
System.out.println("WARNING! Move \""+moveKeyName+"\" does not exist! Adding default move.");
|
||||||
|
this.move = Megamon.moveDatabase.get("M.Buster");
|
||||||
|
}
|
||||||
this.lvLearned=lvLearnedAt;
|
this.lvLearned=lvLearnedAt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
69
Megamon-core/src/sig/megamon/menu/ColorCycler.java
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
package sig.megamon.menu;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
|
||||||
|
public class ColorCycler {
|
||||||
|
double r = 0;
|
||||||
|
double g = 0;
|
||||||
|
double b = 0;
|
||||||
|
double cyclespd = 0;
|
||||||
|
int stage = 1; //1 = Green+, 2 = Red-, 3 = Blue+, 4 = Green-, 5 = Red+, 6 = Blue-
|
||||||
|
|
||||||
|
public ColorCycler(Color startingColor, double cyclespd) {
|
||||||
|
this.r = startingColor.r;
|
||||||
|
this.g = startingColor.g;
|
||||||
|
this.b = startingColor.b;
|
||||||
|
this.cyclespd=cyclespd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
switch (stage) {
|
||||||
|
case 1:{
|
||||||
|
if (g<255) {
|
||||||
|
g=Math.min(255, g+cyclespd);
|
||||||
|
} else {
|
||||||
|
stage++;
|
||||||
|
}
|
||||||
|
}break;
|
||||||
|
case 2:{
|
||||||
|
if (r>0) {
|
||||||
|
r=Math.max(0, r-cyclespd);
|
||||||
|
} else {
|
||||||
|
stage++;
|
||||||
|
}
|
||||||
|
}break;
|
||||||
|
case 3:{
|
||||||
|
if (b<255) {
|
||||||
|
b=Math.min(255, b+cyclespd);
|
||||||
|
} else {
|
||||||
|
stage++;
|
||||||
|
}
|
||||||
|
}break;
|
||||||
|
case 4:{
|
||||||
|
if (g>0) {
|
||||||
|
g=Math.max(0, g-cyclespd);
|
||||||
|
} else {
|
||||||
|
stage++;
|
||||||
|
}
|
||||||
|
}break;
|
||||||
|
case 5:{
|
||||||
|
if (r<255) {
|
||||||
|
r=Math.min(255, r+cyclespd);
|
||||||
|
} else {
|
||||||
|
stage++;
|
||||||
|
}
|
||||||
|
}break;
|
||||||
|
case 6:{
|
||||||
|
if (b>0) {
|
||||||
|
b=Math.max(0, b-cyclespd);
|
||||||
|
} else {
|
||||||
|
stage=1;
|
||||||
|
}
|
||||||
|
}break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color getCycleColor() {
|
||||||
|
return new Color((float)(r/255),(float)(g/255),(float)(b/255),1f);
|
||||||
|
}
|
||||||
|
}
|
49
Megamon-core/src/sig/megamon/menu/FancyBackground.java
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
package sig.megamon.menu;
|
||||||
|
|
||||||
|
import java.awt.geom.Point2D;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
|
|
||||||
|
import sig.megamon.utils.DrawUtils;
|
||||||
|
|
||||||
|
public class FancyBackground {
|
||||||
|
Point2D.Double offset = new Point2D.Double(0, 0);
|
||||||
|
Point2D.Double scrollspd = new Point2D.Double(0, 0);
|
||||||
|
Texture scrollbackground;
|
||||||
|
ColorCycler cycler;
|
||||||
|
Color color;
|
||||||
|
|
||||||
|
public FancyBackground(Texture background, Point2D.Double scrollspd, boolean cycleColors) {
|
||||||
|
this.scrollbackground=background;
|
||||||
|
this.scrollspd=scrollspd;
|
||||||
|
if (cycleColors) {
|
||||||
|
cycler = new ColorCycler(new Color(1,0,0,1),10);
|
||||||
|
} else {
|
||||||
|
color = new Color(0,0,0.5f,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FancyBackground(Texture background, Point2D.Double scrollspd, Color staticColor) {
|
||||||
|
this(background,scrollspd,false);
|
||||||
|
this.color = staticColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
if (cycler!=null) {
|
||||||
|
cycler.run();
|
||||||
|
}
|
||||||
|
offset.setLocation(offset.x+scrollspd.x, offset.y+scrollspd.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void draw(SpriteBatch batch) {
|
||||||
|
if (cycler!=null) {
|
||||||
|
batch.setColor(cycler.getCycleColor());
|
||||||
|
} else {
|
||||||
|
batch.setColor(color);
|
||||||
|
}
|
||||||
|
DrawUtils.drawTiledImage(batch, scrollbackground, offset);
|
||||||
|
batch.setColor(new Color(1,1,1,1));
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,257 @@
|
|||||||
package sig.megamon.menu;
|
package sig.megamon.menu;
|
||||||
|
|
||||||
public class MegadexMenu {
|
import java.awt.geom.Point2D;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
|
import com.badlogic.gdx.utils.Align;
|
||||||
|
|
||||||
|
import sig.megamon.*;
|
||||||
|
|
||||||
|
public class MegadexMenu {
|
||||||
|
static FancyBackground background = new FancyBackground(new Texture("interface/tiledbackground.png"),new Point2D.Double(0.4, 0.2),true);
|
||||||
|
static Texture menu = new Texture("interface/megadex.png");
|
||||||
|
final static int TOTALMEGAMON = 151;
|
||||||
|
int selection = 0;
|
||||||
|
int offset_displayed_selection = 0; //The top most selection that is visible.
|
||||||
|
int largestNumberSeen = 0;
|
||||||
|
boolean released=true;
|
||||||
|
int delaytimer = Megamon.CURSORDELAYTIMER*3;
|
||||||
|
final int fontheight = 36;
|
||||||
|
final int smallfontheight = 20;
|
||||||
|
final int boxheight = 458;
|
||||||
|
int lastkey = 0;
|
||||||
|
int hpval=0;
|
||||||
|
int atkval=0;
|
||||||
|
int defval=0;
|
||||||
|
int spcval=0;
|
||||||
|
int spdval=0;
|
||||||
|
final static int ticktime=2;
|
||||||
|
int changedelay=ticktime;
|
||||||
|
|
||||||
|
public MegadexMenu() {
|
||||||
|
largestNumberSeen = calculateLargestNumberSeen();
|
||||||
|
}
|
||||||
|
|
||||||
|
private int calculateLargestNumberSeen() {
|
||||||
|
for (int i=Megamon.megamonDatabase.size()-1;i>0;i--) {
|
||||||
|
if (Megamon.megamonDatabase.get(i).isSeenByPlayer()) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
background.run();
|
||||||
|
if (Gdx.input.isKeyJustPressed(Megamon.CANCELKEY) ||
|
||||||
|
Gdx.input.isKeyJustPressed(Megamon.MENUKEY)) {
|
||||||
|
Megamon.megadexscreen=null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int keycheck = Megamon.MOVEDOWNKEY;
|
||||||
|
if (Gdx.input.isKeyJustPressed(keycheck)) {
|
||||||
|
released=false;
|
||||||
|
lastkey = keycheck;
|
||||||
|
MoveDown();
|
||||||
|
}
|
||||||
|
if (lastkey == keycheck) {
|
||||||
|
if (Gdx.input.isKeyPressed(keycheck) && !released) {
|
||||||
|
if (delaytimer--<=0) {
|
||||||
|
MoveDown();
|
||||||
|
delaytimer = Megamon.CURSORDELAYTIMER;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
if (!Gdx.input.isKeyPressed(keycheck) && !released) {
|
||||||
|
delaytimer = Megamon.CURSORDELAYTIMER*3;
|
||||||
|
released=true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
keycheck = Megamon.MOVEUPKEY;
|
||||||
|
if (Gdx.input.isKeyJustPressed(keycheck)) {
|
||||||
|
released=false;
|
||||||
|
lastkey = keycheck;
|
||||||
|
MoveUp();
|
||||||
|
}
|
||||||
|
if (lastkey == keycheck) {
|
||||||
|
if (Gdx.input.isKeyPressed(keycheck) && !released) {
|
||||||
|
if (delaytimer--<=0) {
|
||||||
|
MoveUp();
|
||||||
|
delaytimer = Megamon.CURSORDELAYTIMER;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
if (!Gdx.input.isKeyPressed(keycheck) && !released) {
|
||||||
|
delaytimer = Megamon.CURSORDELAYTIMER*3;
|
||||||
|
released=true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
keycheck = Megamon.MOVERIGHTKEY;
|
||||||
|
if (Gdx.input.isKeyJustPressed(keycheck)) {
|
||||||
|
released=false;
|
||||||
|
lastkey = keycheck;
|
||||||
|
MoveRight();
|
||||||
|
}
|
||||||
|
if (lastkey == keycheck) {
|
||||||
|
if (Gdx.input.isKeyPressed(keycheck) && !released) {
|
||||||
|
if (delaytimer--<=0) {
|
||||||
|
MoveRight();
|
||||||
|
delaytimer = Megamon.CURSORDELAYTIMER;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
if (!Gdx.input.isKeyPressed(keycheck) && !released) {
|
||||||
|
delaytimer = Megamon.CURSORDELAYTIMER*3;
|
||||||
|
released=true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
keycheck = Megamon.MOVELEFTKEY;
|
||||||
|
if (Gdx.input.isKeyJustPressed(keycheck)) {
|
||||||
|
released=false;
|
||||||
|
lastkey = keycheck;
|
||||||
|
MoveLeft();
|
||||||
|
}
|
||||||
|
if (lastkey == keycheck) {
|
||||||
|
if (Gdx.input.isKeyPressed(keycheck) && !released) {
|
||||||
|
if (delaytimer--<=0) {
|
||||||
|
MoveLeft();
|
||||||
|
delaytimer = Megamon.CURSORDELAYTIMER;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
if (!Gdx.input.isKeyPressed(keycheck) && !released) {
|
||||||
|
delaytimer = Megamon.CURSORDELAYTIMER*3;
|
||||||
|
released=true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (changedelay>0) {
|
||||||
|
changedelay--;
|
||||||
|
if (changedelay==0) {
|
||||||
|
changedelay = ticktime;
|
||||||
|
UpdateValues(Megamon.megamonDatabase.get(selection));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateValues(MegamonCreature mon) {
|
||||||
|
hpval+=(mon.getHP()>hpval)?1:(mon.getHP()<hpval)?-1:0;
|
||||||
|
atkval+=(mon.getATK()>atkval)?1:(mon.getATK()<atkval)?-1:0;
|
||||||
|
defval+=(mon.getDEF()>defval)?1:(mon.getDEF()<defval)?-1:0;
|
||||||
|
spcval+=(mon.getSPC()>spcval)?1:(mon.getSPC()<spcval)?-1:0;
|
||||||
|
spdval+=(mon.getSPD()>spdval)?1:(mon.getSPD()<spdval)?-1:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MoveRight() {
|
||||||
|
selection = Math.min(selection+(boxheight/fontheight), largestNumberSeen);
|
||||||
|
MenuFollowsCursor();
|
||||||
|
}
|
||||||
|
private void MoveLeft() {
|
||||||
|
selection = Math.max(selection-(boxheight/fontheight), 0);
|
||||||
|
MenuFollowsCursor();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MoveDown() {
|
||||||
|
if (selection<largestNumberSeen) {
|
||||||
|
selection++;
|
||||||
|
MenuFollowsCursor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void MoveUp() {
|
||||||
|
if (selection>0) {
|
||||||
|
selection--;
|
||||||
|
MenuFollowsCursor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MenuFollowsCursor() {
|
||||||
|
if (selection<offset_displayed_selection) {
|
||||||
|
offset_displayed_selection = selection;
|
||||||
|
}
|
||||||
|
if (selection - offset_displayed_selection>=(boxheight/fontheight)) {
|
||||||
|
offset_displayed_selection = selection - (boxheight/fontheight) + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void draw(SpriteBatch batch) {
|
||||||
|
background.draw(batch);
|
||||||
|
batch.draw(menu, 0, 0);
|
||||||
|
|
||||||
|
DrawMegamonMenu(batch);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DrawMegamonMenu(SpriteBatch batch) {
|
||||||
|
//First usable pixel: (12,12)
|
||||||
|
for (int i=0;i<boxheight/fontheight;i++) {
|
||||||
|
if (i+offset_displayed_selection<largestNumberSeen+1) {
|
||||||
|
MegamonCreature megamon = Megamon.megamonDatabase.get(offset_displayed_selection+i);
|
||||||
|
Megamon.font.setColor(new Color(1.0f,0.5f,0.5f,0.9f));
|
||||||
|
Megamon.font.draw(batch, Integer.toString(i+offset_displayed_selection+1), 20+16, Megamon.WINDOW_HEIGHT-fontheight-12-(i*fontheight)+fontheight/2, 10, Align.center, false);
|
||||||
|
if (megamon.isCaughtByPlayer()) {
|
||||||
|
Megamon.font.setColor(new Color(0.7f,1.0f,0.7f,1.0f));
|
||||||
|
} else {
|
||||||
|
Megamon.font.setColor(new Color(0.7f,0.7f,0.7f,1.0f));
|
||||||
|
}
|
||||||
|
String namedisplay = " "+(megamon.isSeenByPlayer()?megamon.getName():createTwitchyName());
|
||||||
|
Megamon.font.draw(batch, namedisplay, 32+16, Megamon.WINDOW_HEIGHT-fontheight-12-(i*fontheight)+fontheight/2, 0, namedisplay.length(), 256, Align.left, false, "...");
|
||||||
|
Megamon.font.setColor(Color.WHITE);
|
||||||
|
if (i+offset_displayed_selection == selection) {
|
||||||
|
Megamon.font.setColor(new Color(0.8f,0.8f,1f,0.9f));
|
||||||
|
Megamon.font.draw(batch, ">", 16, Megamon.WINDOW_HEIGHT-fontheight-12-(i*fontheight)+fontheight/2, 10, Align.left, false);
|
||||||
|
Megamon.font.setColor(Color.WHITE);
|
||||||
|
batch.draw(StartMenuBox.startmenu_highlight,16, Megamon.WINDOW_HEIGHT-fontheight-12-(i*fontheight)+fontheight/2-StartMenuBox.startmenu_highlight.getHeight()*2, StartMenuBox.startmenu_highlight.getWidth(),StartMenuBox.startmenu_highlight.getHeight()*3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Image box: (332,120)
|
||||||
|
* Stats: (462,120)
|
||||||
|
* Bio: (332,150)
|
||||||
|
* Map: (332,468)
|
||||||
|
*/
|
||||||
|
MegamonCreature mon = Megamon.megamonDatabase.get(selection);
|
||||||
|
boolean seen = mon.isSeenByPlayer();
|
||||||
|
if (seen) {
|
||||||
|
Texture monImage = mon.getSprites().getSprite();
|
||||||
|
batch.draw(monImage, 332, Megamon.WINDOW_HEIGHT-120, 110, 110);
|
||||||
|
|
||||||
|
int i=1;
|
||||||
|
DialogBox.messageboxfont.draw(batch, "HP", 472, Megamon.WINDOW_HEIGHT-(i++*smallfontheight), 16, Align.center, false);
|
||||||
|
DialogBox.messageboxfont.draw(batch, "ATK", 472, Megamon.WINDOW_HEIGHT-(i++*smallfontheight), 16, Align.center, false);
|
||||||
|
DialogBox.messageboxfont.draw(batch, "DEF", 472, Megamon.WINDOW_HEIGHT-(i++*smallfontheight), 16, Align.center, false);
|
||||||
|
DialogBox.messageboxfont.draw(batch, "SPC", 472, Megamon.WINDOW_HEIGHT-(i++*smallfontheight), 16, Align.center, false);
|
||||||
|
DialogBox.messageboxfont.draw(batch, "SPD", 472, Megamon.WINDOW_HEIGHT-(i++*smallfontheight), 16, Align.center, false);
|
||||||
|
i=1;
|
||||||
|
/*batch.draw(Megamon.healthbar, 500, Megamon.WINDOW_HEIGHT-(i++*smallfontheight), 0, 0, Megamon.healthbar.getWidth(), Megamon.healthbar.getHeight()-(int)((1-(mon.getHP()/600f))*Megamon.healthbar.getHeight()), 1, 1, 270, 0, 0, Megamon.healthbar.getWidth(), Megamon.healthbar.getHeight()-(int)((1-(mon.getHP()/600f))*Megamon.healthbar.getHeight()), false, false);
|
||||||
|
batch.draw(Megamon.healthbar, 500, Megamon.WINDOW_HEIGHT-(i++*smallfontheight), 0, 0, Megamon.healthbar.getWidth(), Megamon.healthbar.getHeight()-(int)((1-(mon.getATK()/600f))*Megamon.healthbar.getHeight()), 1, 1, 270, 0, 0, Megamon.healthbar.getWidth(), Megamon.healthbar.getHeight()-(int)((1-(mon.getATK()/600f))*Megamon.healthbar.getHeight()), false, false);
|
||||||
|
batch.draw(Megamon.healthbar, 500, Megamon.WINDOW_HEIGHT-(i++*smallfontheight), 0, 0, Megamon.healthbar.getWidth(), Megamon.healthbar.getHeight()-(int)((1-(mon.getDEF()/600f))*Megamon.healthbar.getHeight()), 1, 1, 270, 0, 0, Megamon.healthbar.getWidth(), Megamon.healthbar.getHeight()-(int)((1-(mon.getDEF()/600f))*Megamon.healthbar.getHeight()), false, false);
|
||||||
|
batch.draw(Megamon.healthbar, 500, Megamon.WINDOW_HEIGHT-(i++*smallfontheight), 0, 0, Megamon.healthbar.getWidth(), Megamon.healthbar.getHeight()-(int)((1-(mon.getSPC()/600f))*Megamon.healthbar.getHeight()), 1, 1, 270, 0, 0, Megamon.healthbar.getWidth(), Megamon.healthbar.getHeight()-(int)((1-(mon.getSPC()/600f))*Megamon.healthbar.getHeight()), false, false);
|
||||||
|
batch.draw(Megamon.healthbar, 500, Megamon.WINDOW_HEIGHT-(i++*smallfontheight), 0, 0, Megamon.healthbar.getWidth(), Megamon.healthbar.getHeight()-(int)((1-(mon.getSPD()/600f))*Megamon.healthbar.getHeight()), 1, 1, 270, 0, 0, Megamon.healthbar.getWidth(), Megamon.healthbar.getHeight()-(int)((1-(mon.getSPD()/600f))*Megamon.healthbar.getHeight()), false, false);*/
|
||||||
|
if (mon.getHP()>=100) {batch.setColor(new Color(1f,0.7f,0.7f,1f));} else {batch.setColor(Color.WHITE);}
|
||||||
|
batch.draw(Megamon.healthbar_horizontal, 500, Megamon.WINDOW_HEIGHT-(i++*smallfontheight)+1-Megamon.healthbar_horizontal.getHeight(),0,0,(int)((hpval/200f)*Megamon.healthbar_horizontal.getWidth()*2),Megamon.healthbar_horizontal.getHeight());
|
||||||
|
if (mon.getATK()>=100) {batch.setColor(new Color(1f,0.7f,0.7f,1f));} else {batch.setColor(Color.WHITE);}
|
||||||
|
batch.draw(Megamon.healthbar_horizontal, 500, Megamon.WINDOW_HEIGHT-(i++*smallfontheight)+1-Megamon.healthbar_horizontal.getHeight(),0,0,(int)((atkval/200f)*Megamon.healthbar_horizontal.getWidth()*2),Megamon.healthbar_horizontal.getHeight());
|
||||||
|
if (mon.getDEF()>=100) {batch.setColor(new Color(1f,0.7f,0.7f,1f));} else {batch.setColor(Color.WHITE);}
|
||||||
|
batch.draw(Megamon.healthbar_horizontal, 500, Megamon.WINDOW_HEIGHT-(i++*smallfontheight)+1-Megamon.healthbar_horizontal.getHeight(),0,0,(int)((defval/200f)*Megamon.healthbar_horizontal.getWidth()*2),Megamon.healthbar_horizontal.getHeight());
|
||||||
|
if (mon.getSPC()>=100) {batch.setColor(new Color(1f,0.7f,0.7f,1f));} else {batch.setColor(Color.WHITE);}
|
||||||
|
batch.draw(Megamon.healthbar_horizontal, 500, Megamon.WINDOW_HEIGHT-(i++*smallfontheight)+1-Megamon.healthbar_horizontal.getHeight(),0,0,(int)((spcval/200f)*Megamon.healthbar_horizontal.getWidth()*2),Megamon.healthbar_horizontal.getHeight());
|
||||||
|
if (mon.getSPD()>=100) {batch.setColor(new Color(1f,0.7f,0.7f,1f));} else {batch.setColor(Color.WHITE);}
|
||||||
|
batch.draw(Megamon.healthbar_horizontal, 500, Megamon.WINDOW_HEIGHT-(i++*smallfontheight)+1-Megamon.healthbar_horizontal.getHeight(),0,0,(int)((spdval/200f)*Megamon.healthbar_horizontal.getWidth()*2),Megamon.healthbar_horizontal.getHeight());
|
||||||
|
batch.setColor(Color.WHITE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String createTwitchyName() {
|
||||||
|
StringBuilder sb = new StringBuilder("");
|
||||||
|
for (int i=0;i<8;i++) {
|
||||||
|
if (Math.random()<=0.01) {
|
||||||
|
Character c = (char)(Character.getNumericValue('A')+(int)(Math.random()*26));
|
||||||
|
if (Math.random()<=0.5) {
|
||||||
|
c = (char)(Character.getNumericValue('a')+(int)(Math.random()*26));
|
||||||
|
}
|
||||||
|
sb.append(c);
|
||||||
|
} else {
|
||||||
|
sb.append("-");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -74,13 +74,13 @@ public class MegamonPartyScreen {
|
|||||||
WINDOW_MARGIN+((i%3)*MEGAMON_SLOT_SPACING)+4,(int)(Megamon.WINDOW_HEIGHT/(i>2?1.9:1.1)-64));
|
WINDOW_MARGIN+((i%3)*MEGAMON_SLOT_SPACING)+4,(int)(Megamon.WINDOW_HEIGHT/(i>2?1.9:1.1)-64));
|
||||||
Megamon.font.draw(batch, "Lv",
|
Megamon.font.draw(batch, "Lv",
|
||||||
WINDOW_MARGIN+((i%3)*MEGAMON_SLOT_SPACING),(int)(Megamon.WINDOW_HEIGHT/(i>2?1.9:1.1))-
|
WINDOW_MARGIN+((i%3)*MEGAMON_SLOT_SPACING),(int)(Megamon.WINDOW_HEIGHT/(i>2?1.9:1.1))-
|
||||||
mp.getCreature().getSprites().getMiniIcon().getHeight()*2-40);
|
16*2-40);
|
||||||
DialogBox.messageboxfont.draw(batch, Integer.toString(mp.getLevel()),
|
DialogBox.messageboxfont.draw(batch, Integer.toString(mp.getLevel()),
|
||||||
WINDOW_MARGIN+((i%3)*MEGAMON_SLOT_SPACING),(int)(Megamon.WINDOW_HEIGHT/(i>2?1.9:1.1))-
|
WINDOW_MARGIN+((i%3)*MEGAMON_SLOT_SPACING),(int)(Megamon.WINDOW_HEIGHT/(i>2?1.9:1.1))-
|
||||||
mp.getCreature().getSprites().getMiniIcon().getHeight()*2-72,24,Align.center,false);
|
16*2-72,24,Align.center,false);
|
||||||
DialogBox.messageboxfont.draw(batch, mp.getHP()+"/"+mp.getMaxHP(),
|
DialogBox.messageboxfont.draw(batch, mp.getHP()+"/"+mp.getMaxHP(),
|
||||||
WINDOW_MARGIN+((i%3)*MEGAMON_SLOT_SPACING),(int)(Megamon.WINDOW_HEIGHT/(i>2?1.9:1.1))-
|
WINDOW_MARGIN+((i%3)*MEGAMON_SLOT_SPACING),(int)(Megamon.WINDOW_HEIGHT/(i>2?1.9:1.1))-
|
||||||
mp.getCreature().getSprites().getMiniIcon().getHeight()*2-96,24,Align.center,false);
|
16*2-96,24,Align.center,false);
|
||||||
if ((float)mp.getHP()/mp.getMaxHP()<0.3) {
|
if ((float)mp.getHP()/mp.getMaxHP()<0.3) {
|
||||||
batch.setColor(Color.RED);
|
batch.setColor(Color.RED);
|
||||||
}
|
}
|
||||||
@ -92,7 +92,7 @@ public class MegamonPartyScreen {
|
|||||||
batch.setColor(Color.WHITE);
|
batch.setColor(Color.WHITE);
|
||||||
Megamon.font.draw(batch, mp.getNickname(),
|
Megamon.font.draw(batch, mp.getNickname(),
|
||||||
WINDOW_MARGIN+((i%3)*MEGAMON_SLOT_SPACING)-24,(int)(Megamon.WINDOW_HEIGHT/(i>2?1.9:1.1)-
|
WINDOW_MARGIN+((i%3)*MEGAMON_SLOT_SPACING)-24,(int)(Megamon.WINDOW_HEIGHT/(i>2?1.9:1.1)-
|
||||||
mp.getCreature().getSprites().getMiniIcon().getHeight()*2-120),0,mp.getNickname().length(),100,Align.center,true,"...");
|
16*2-120),0,mp.getNickname().length(),100,Align.center,true,"...");
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ public class StartMenuBox {
|
|||||||
static Texture startmenu_background = new Texture("startmenu_box_middle.png");
|
static Texture startmenu_background = new Texture("startmenu_box_middle.png");
|
||||||
static Texture startmenu_background_bottom = new Texture("startmenu_box_bottom.png");
|
static Texture startmenu_background_bottom = new Texture("startmenu_box_bottom.png");
|
||||||
static Texture startmenu_background_top = new Texture("startmenu_box.png");
|
static Texture startmenu_background_top = new Texture("startmenu_box.png");
|
||||||
static Texture startmenu_highlight = new Texture("startmenu_highlight.png");
|
public static Texture startmenu_highlight = new Texture("startmenu_highlight.png");
|
||||||
int selection=0;
|
int selection=0;
|
||||||
MenuItem[] menuitems = MenuItem.values();
|
MenuItem[] menuitems = MenuItem.values();
|
||||||
int menuitem_spacing = 28;
|
int menuitem_spacing = 28;
|
||||||
@ -33,6 +33,7 @@ public class StartMenuBox {
|
|||||||
if (Gdx.input.isKeyJustPressed(Megamon.ACTIONKEY)) {
|
if (Gdx.input.isKeyJustPressed(Megamon.ACTIONKEY)) {
|
||||||
switch (menuitems[selection]) {
|
switch (menuitems[selection]) {
|
||||||
case MEGADEX:
|
case MEGADEX:
|
||||||
|
Megamon.megadexscreen = new MegadexMenu();
|
||||||
break;
|
break;
|
||||||
case MEGAMON:
|
case MEGAMON:
|
||||||
Megamon.partyscreen = new MegamonPartyScreen();
|
Megamon.partyscreen = new MegamonPartyScreen();
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package sig.megamon.utils;
|
package sig.megamon.utils;
|
||||||
|
|
||||||
|
import java.awt.geom.Point2D;
|
||||||
|
import java.awt.geom.Point2D.Double;
|
||||||
|
|
||||||
import com.badlogic.gdx.graphics.Color;
|
import com.badlogic.gdx.graphics.Color;
|
||||||
import com.badlogic.gdx.graphics.Texture;
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
@ -12,4 +15,17 @@ public class DrawUtils {
|
|||||||
batch.draw(tex, x, y);
|
batch.draw(tex, x, y);
|
||||||
batch.setColor(new Color(1,1,1,1));
|
batch.setColor(new Color(1,1,1,1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void drawTiledImage(SpriteBatch batch, Texture image, Point2D.Double offset) {
|
||||||
|
int tileAmtX = (int)Math.ceil((double)Megamon.WINDOW_WIDTH/image.getWidth());
|
||||||
|
int tileAmtY = (int)Math.ceil((double)Megamon.WINDOW_HEIGHT/image.getHeight());
|
||||||
|
//int calls = 0;
|
||||||
|
for (int j=-1;j<tileAmtY+2;j++) {
|
||||||
|
for (int i=-1;i<tileAmtX+2;i++) {
|
||||||
|
//calls++;
|
||||||
|
batch.draw(image, (int)((offset.x%image.getWidth())+(i*image.getWidth())), (int)((offset.y%image.getHeight())+(j*image.getHeight())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//System.out.println("Draw "+calls+" times.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|