mirror of
https://github.com/jneug/zeichenmaschine.git
synced 2026-04-14 06:33:34 +02:00
154 lines
3.8 KiB
Java
154 lines
3.8 KiB
Java
import schule.ngb.zm.ImageLayer;
|
|
import schule.ngb.zm.Spielemaschine;
|
|
import schule.ngb.zm.util.FontLoader;
|
|
|
|
import java.awt.Font;
|
|
import java.lang.reflect.InvocationTargetException;
|
|
|
|
public class HehomonGame extends Spielemaschine {
|
|
|
|
public static void main( String[] args ) {
|
|
new HehomonGame();
|
|
}
|
|
|
|
|
|
private Hehomon attacker, defender;
|
|
|
|
private Hitpoints hpAttacker, hpDefender;
|
|
|
|
private Display display;
|
|
|
|
private Menu menu;
|
|
|
|
private boolean idle = true;
|
|
|
|
private static final Class[] HEHOMONS = new Class[]{
|
|
Alligung.class, Salamanyte.class, Gardon.class, Mantairy.class, Shigong.class, Toxo.class, Wokachu.class
|
|
};
|
|
|
|
public HehomonGame() {
|
|
super(960, 642, "ZM: Hehomon");
|
|
//setFullscreen(true);
|
|
}
|
|
|
|
private Hehomon newHehomon() {
|
|
try {
|
|
Class<Hehomon> clazz = (Class<Hehomon>) choice(HEHOMONS);
|
|
return clazz.getConstructor().newInstance();
|
|
} catch( NoSuchMethodException | InstantiationException |
|
|
IllegalAccessException | InvocationTargetException ex ) {
|
|
exit();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void setup() {
|
|
Font font = FontLoader.loadFont("fonts/FredokaOne-Regular.ttf" );
|
|
|
|
ImageLayer bg = new ImageLayer("images/hintergrund.jpg");
|
|
canvas.addLayer(1, bg);
|
|
|
|
|
|
|
|
attacker = newHehomon();
|
|
attacker.moveTo(width * .25, 250);
|
|
attacker.flip(LEFT);
|
|
defender = newHehomon();
|
|
defender.moveTo(width * .75, 250);
|
|
|
|
hpAttacker = new Hitpoints(attacker);
|
|
hpDefender = new Hitpoints(defender);
|
|
|
|
display = new Display(500, 500);
|
|
display.alignTo(SOUTHEAST, -50.0);
|
|
|
|
menu = new Menu(attacker);
|
|
menu.getWidth();
|
|
menu.alignTo(SOUTHWEST, -50.0);
|
|
|
|
add(attacker, defender);
|
|
add(hpAttacker, hpDefender);
|
|
add(display, menu);
|
|
}
|
|
|
|
public void keyPressed() {
|
|
if( !idle ) {
|
|
return;
|
|
}
|
|
|
|
idle = false;
|
|
if( keyCode == KEY_A ) {
|
|
display.setText(attacker.getName() + " benutzt " + attacker.getNameAngr1() + "!");
|
|
delay(500);
|
|
attacker.angriff1(defender);
|
|
} else if( keyCode == KEY_S ) {
|
|
display.setText(attacker.getName() + " benutzt " + attacker.getNameAngr2() + "!");
|
|
delay(500);
|
|
attacker.angriff2(defender);
|
|
} else if( keyCode == KEY_D ) {
|
|
display.setText(attacker.getName() + " benutzt " + attacker.getNameVert1() + "!");
|
|
delay(500);
|
|
attacker.verteidigung1(defender);
|
|
} else if( keyCode == KEY_F ) {
|
|
display.setText(attacker.getName() + " benutzt " + attacker.getNameVert2() + "!");
|
|
delay(500);
|
|
attacker.verteidigung2(defender);
|
|
}
|
|
|
|
delay(500);
|
|
pruefeSiegbedingung();
|
|
verteidigerAmZug();
|
|
display.setText(attacker.getName() + " ist am Zug.");
|
|
idle = true;
|
|
}
|
|
|
|
private void verteidigerAmZug() {
|
|
int zufall = random(1, 4);
|
|
switch( zufall ) {
|
|
case 1:
|
|
display.setText(defender.getName() + " benutzt " + defender.getNameAngr1() + "!");
|
|
delay(500);
|
|
defender.angriff1(attacker);
|
|
break;
|
|
case 2:
|
|
display.setText(defender.getName() + " benutzt " + defender.getNameAngr2() + "!");
|
|
delay(500);
|
|
defender.angriff2(attacker);
|
|
break;
|
|
case 3:
|
|
display.setText(defender.getName() + " benutzt " + defender.getNameVert1() + "!");
|
|
delay(500);
|
|
defender.verteidigung1(attacker);
|
|
break;
|
|
case 4:
|
|
display.setText(defender.getName() + " benutzt " + defender.getNameVert2() + "!");
|
|
delay(500);
|
|
defender.verteidigung2(attacker);
|
|
break;
|
|
}
|
|
|
|
delay(500);
|
|
pruefeSiegbedingung();
|
|
}
|
|
|
|
private void pruefeSiegbedingung() {
|
|
if( defender.getLp() <= 0 || true ) {
|
|
//view.angreiferGewinnt();
|
|
display.setText(attacker.getName() + " gewinnt!");
|
|
} else if( attacker.getLp() <= 0 ) {
|
|
//view.verteidigerGewinnt();
|
|
display.setText(defender.getName() + " gewinnt!");
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void fullscreenChanged() {
|
|
if( defender != null ) {
|
|
defender.moveTo(width * .75, 250);
|
|
hpDefender.moveTo(width * .75, defender.getAbsAnchorPoint(DOWN).y + 50);
|
|
}
|
|
}
|
|
|
|
}
|