From 1e5987f391cb14de4f265c81892489e17461b882 Mon Sep 17 00:00:00 2001 From: JulienRo Date: Tue, 26 Jul 2016 09:17:21 +0200 Subject: [PATCH] Add files via upload --- Bildbutton.java | 142 ++++++++++++++++++++++++++++++++++++++ Button.java | 79 ++++------------------ ButtonEvent.java | 2 +- GeneralMap.java | 154 +++++++++--------------------------------- InputDialogWorld.java | 2 +- Map_World.java | 1 - Player.java | 67 +++++++----------- Start_Load.java | 13 ++-- 8 files changed, 218 insertions(+), 242 deletions(-) create mode 100644 Bildbutton.java diff --git a/Bildbutton.java b/Bildbutton.java new file mode 100644 index 0000000..024ccb5 --- /dev/null +++ b/Bildbutton.java @@ -0,0 +1,142 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) +import java.awt.Color; +import java.awt.Graphics2D; + +/** + Diese Klasse stellt einen Button dar. + Als funktionelles Vorbild dafür hält der Button aus dem .NET-Framework für UWP-Apps dar. + + @author Felix Stupp + @version 20.05.2016 +*/ +public class Bildbutton extends GUI_Interface { + + private boolean autoSize = false; + protected GreenfootImage picture = new GreenfootImage(1,1); + + private ButtonEvent handler; + + /** + Erstellt einen Button mit dem gegebenen Text und der zugehörigen Textgröße. + @param txt Der Text, den der Button darstellen soll. + @param size Die Textgröße, in der der Button den Text darstellen soll. + */ + public Bildbutton(GreenfootImage pict) { + picture = pict; + redrawInternal(); + } + /** + Erstellt einen Button mit dem gegebenen Objekt als Event-Handler. + @param h Der Handler mit dem Interface ButtonEvent implementiert. + */ + public Bildbutton(ButtonEvent h) { + handler = h; + redrawInternal(); + } + /** + Erstellt einen Button mit dem gegebenen Text, der zugehörigen Textgröße und dem gegebenen Objekt als Event-Handler. + @param txt Der Text, den der Button darstellen soll. + @param size Die Textgröße, in der der Button den Text darstellen soll. + @param h Der Handler mit dem Interface ButtonEvent implementiert. + */ + public Bildbutton(GreenfootImage pict, ButtonEvent h) { + picture = pict; + handler = h; + redrawInternal(); + } + + /** + Fragt ab, ob ein Klick auf den Button gekommen ist. + Wird intern von Greenfoot benötigt. + */ + public void act() { + if(Greenfoot.mouseClicked(this) && handler != this) { + handler.buttonClicked(this); + } + } + + /** + Gibt zurück, ob die Größe des Buttons von dem Text bestimmt werden soll. + @return Wert der AutoSize-Eigenschaft + */ + public boolean getAutoSize() { + return autoSize; + } + /** + Legt fest, ob die Größe des Buttons von dem Text bestimmt werden soll. + Wird der Wert auf TRUE geändert, erfolgt automatisch ein Redraw des Objekts. + @param b Der neue Wert der AutoSize-Eigenschaft. + */ + public void setAutoSize(boolean b) { + autoSize = b; + if(autoSize) { + redraw(); + } + } + + /** + Gibt den aktuellen Text zurück. + @return Der aktuelle Text + */ + public GreenfootImage getPicture() { + return picture; + } + /** + Setzt den darzustellenden Text auf den neuen Wert. + @param s Der neue Text + @return Gibt an, ob sich der Text geändert hat. Bei TRUE erfolgte bereits ein Redraw. + */ + public boolean setPicture(GreenfootImage s) { + if(picture != s) { + picture = s; + redraw(); + return true; + } + return false; + } + + /** + Gibt den aktuellen EventHandler des Buttons zurück. + @return Der Handler als ButtonEvent + */ + public ButtonEvent getHandler() { + return handler; + } + /** + Setzt den EventHandler auf ein neues Objekt. + @param h Der Handler mit implementiertem ButtonEvent-Interface + */ + public void setHandler(ButtonEvent h) { + handler = h; + } + /** + Entfernt den aktuellen EventHandler, um die Ausführung zukünftiger Events zu verhindern. + */ + public void removeHandler() { + handler = null; + } + + protected void redrawInternal() { + GreenfootImage tI = picture; + if(autoSize) { + sx = tI.getWidth() + (6 * 2) + 4; + sy = tI.getHeight() + (6 * 2) + 4; + } + GreenfootImage all = new GreenfootImage(sx,sy); + Color trans = new Color(0,0,0,0); + all.setColor(trans); + all.fill(); + Graphics2D g = all.getAwtImage().createGraphics(); + g.setColor(backC); + g.fillRoundRect(0,0,sx,sy,24,24); + all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); + setImage(all); + } + + /** + Zeichnet das GreenfootImage des Buttons erneut und zeigt es an. + */ + public void redraw() { + redrawInternal(); + } +} diff --git a/Button.java b/Button.java index ac8a972..166b5b5 100644 --- a/Button.java +++ b/Button.java @@ -9,20 +9,18 @@ import java.awt.Graphics2D; @author Felix Stupp @version 20.05.2016 */ -public class Button extends GUI_Interface { +public class Button extends Bildbutton { - private boolean autoSize = false; private int textSize = 32; // as default text size private String text = ""; - private ButtonEvent handler; - /** Erstellt einen Button mit dem gegebenen Text und der zugehörigen Textgröße. @param txt Der Text, den der Button darstellen soll. @param size Die Textgröße, in der der Button den Text darstellen soll. */ public Button(String txt, int size) { + super(new GreenfootImage(txt,size,Color.WHITE,Color.BLACK)); text = txt; textSize = size; redraw(); @@ -32,7 +30,7 @@ public class Button extends GUI_Interface { @param h Der Handler mit dem Interface ButtonEvent implementiert. */ public Button(ButtonEvent h) { - handler = h; + super(h); redraw(); } /** @@ -42,41 +40,12 @@ public class Button extends GUI_Interface { @param h Der Handler mit dem Interface ButtonEvent implementiert. */ public Button(String txt, int size, ButtonEvent h) { + super(new GreenfootImage(txt,size,Color.WHITE,Color.BLACK),h); text = txt; textSize = size; - handler = h; redraw(); } - /** - Fragt ab, ob ein Klick auf den Button gekommen ist. - Wird intern von Greenfoot benötigt. - */ - public void act() { - if(Greenfoot.mouseClicked(this) && handler != this) { - handler.buttonClicked(this); - } - } - - /** - Gibt zurück, ob die Größe des Buttons von dem Text bestimmt werden soll. - @return Wert der AutoSize-Eigenschaft - */ - public boolean getAutoSize() { - return autoSize; - } - /** - Legt fest, ob die Größe des Buttons von dem Text bestimmt werden soll. - Wird der Wert auf TRUE geändert, erfolgt automatisch ein Redraw des Objekts. - @param b Der neue Wert der AutoSize-Eigenschaft. - */ - public void setAutoSize(boolean b) { - autoSize = b; - if(autoSize) { - redraw(); - } - } - /** Gibt die aktelle Textgröße zurück. @return Aktuelle Textgröße @@ -119,44 +88,20 @@ public class Button extends GUI_Interface { return false; } - /** - Gibt den aktuellen EventHandler des Buttons zurück. - @return Der Handler als ButtonEvent - */ - public ButtonEvent getHandler() { - return handler; - } - /** - Setzt den EventHandler auf ein neues Objekt. - @param h Der Handler mit implementiertem ButtonEvent-Interface - */ - public void setHandler(ButtonEvent h) { - handler = h; + public GreenfootImage getPicture() { + return null; } - /** - Entfernt den aktuellen EventHandler, um die Ausführung zukünftiger Events zu verhindern. - */ - public void removeHandler() { - handler = null; + + public boolean setPicture(GreenfootImage i) { + return false; } /** Zeichnet das GreenfootImage des Buttons erneut und zeigt es an. */ public void redraw() { - GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); - if(autoSize) { - sx = tI.getWidth() + (6 * 2) + 4; - sy = tI.getHeight() + (6 * 2) + 4; - } - GreenfootImage all = new GreenfootImage(sx,sy); - Color trans = new Color(0,0,0,0); - all.setColor(trans); - all.fill(); - Graphics2D g = all.getAwtImage().createGraphics(); - g.setColor(backC); - g.fillRoundRect(0,0,sx,sy,24,24); - all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); - setImage(all); + //picture = new GreenfootImage(text,textSize,Color.BLACK,Color.WHITE); + picture = new GreenfootImage(text,textSize,foreC,backC); + super.redraw(); } } diff --git a/ButtonEvent.java b/ButtonEvent.java index b3a914d..1eeac2b 100644 --- a/ButtonEvent.java +++ b/ButtonEvent.java @@ -9,6 +9,6 @@ import greenfoot.*; */ public interface ButtonEvent { - public void buttonClicked(Button obj); + public void buttonClicked(Bildbutton obj); } \ No newline at end of file diff --git a/GeneralMap.java b/GeneralMap.java index 32a2d73..6d2d2b4 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -12,15 +12,15 @@ neue Maps werden als Unterklasse dieser Klasse eingefügt. @author GruenerWal, MaxiJohl, Felix Stupp, Samuel @version 0.3.0 - */ +*/ public abstract class GeneralMap extends World implements ButtonEvent { /* Felder, im Moment nur Anzahl der Provinzen Später evtl. weitere Werte wie Schwierigkeit denkbar - */ + */ Button modus = new Button("Kampf\nbeginnen",25,this); - + private final int X_OFFSET = 200; // Verschiebt die Provinzen nach rechts private final int Y_OFFSET = 0; // Verschiebt die Provinzen nach unten @@ -63,30 +63,17 @@ public abstract class GeneralMap extends World implements ButtonEvent addObject( modus, 1500, 808); for (int i = 0; i < playerList.length; i++) { players[i] = new Player(i,playerList[i],colorList[i]); - addObject(players[i],0,0); players[i].redrawPlayer(); } createPlayerObjects(playerList.length); - - players[2].addToStars(1); - - if ( playerList.length > 3 ) - { - players[3].addToStars(1); - } - - if ( playerList.length > 4 ) - { - players[4].addToStars(2); - } } - + public int currentPlayer() { return currentPlayer; } - + public void redrawGameStates() { int textSize = 20; @@ -106,7 +93,7 @@ public abstract class GeneralMap extends World implements ButtonEvent { GreenfootImage GameStates = new GreenfootImage("VERSCHIEBEN! Wähle die Provinzen aus, bei denen du schubsen möchtest, " + getPlayerName() + ".",textSize,new Color(255,255,255),new Color(0,0,0)); GreenfootImage GameStatesEmpty = new GreenfootImage(GameStates.getWidth(),textSize); - + GameStatesEmpty.drawImage(GameStates,0,0); GreenfootImage States = new GreenfootImage("MapWorldMove.png"); States.drawImage(GameStatesEmpty,X,Y); @@ -131,17 +118,17 @@ public abstract class GeneralMap extends World implements ButtonEvent } switch (playerCount) { case 6: - players[5].setLocation(1512,350); + addObject(players[5],1512,350); case 5: - players[4].setLocation(1512,230); + addObject(players[4],1512,230); case 4: - players[3].setLocation(1512,110); + addObject(players[3],1512,110); case 3: - players[2].setLocation(82,350); + addObject(players[2],82,350); case 2: - players[1].setLocation(82,230); + addObject(players[1],82,230); } - players[0].setLocation(82,110); + addObject(players[0],82,110); } /** @@ -153,20 +140,6 @@ public abstract class GeneralMap extends World implements ButtonEvent } } - private void redrawProvinces() { - for(int i = 1; i < provinces.length; i++) { - provinces[i].redrawProvince(); - } - } - - protected void redrawPlayers() { - for(int i = 0; i < players.length; i++) { - players[i].reloadMaxInfluence(); - players[i].reloadMaxEntities(); - players[i].redrawPlayer(); - } - } - /** Zeigt die angegebene Nachricht in einem JOptionPane Dialogfeld an. @param msg Die anzuzeigend e Nachricht @@ -183,7 +156,7 @@ public abstract class GeneralMap extends World implements ButtonEvent } else if (status == GameStates.VERSCHIEBEN) { actMove(); } - redrawGameStates(); + redrawGameStates(); } /** @@ -193,7 +166,7 @@ public abstract class GeneralMap extends World implements ButtonEvent { return players.length; } - + /** * Gibt die Farbe des angefragten Spielers heraus. * @param int pID -> Farbe des Spielers @@ -203,14 +176,6 @@ public abstract class GeneralMap extends World implements ButtonEvent return players[pID].getColor(); } - /** - Gibt die PlayerID des aktuellen Spielers an. - @return PlayerID des aktuellen Spielers - */ - public int getCurrentPlayerID() { - return currentPlayer; - } - /** Gibt den Namen des aktuellen Spielers aus. @return Der Name des aktuellen Spielers @@ -269,10 +234,10 @@ public abstract class GeneralMap extends World implements ButtonEvent @param playerID Die ID des Spielers, für den die Einheiten gezählt werden sollen. @return Die Anzahl der Einheiten, die dem Spieler gehören. */ - public int getPlayerEntityCount(int playerID) + public int getProvinceEntityCount(int playerID) { int c = 0; - for (int i = 1; i < provinces.length; i++) { + for (int i = 1; i > provinces.length; i++) { if(provinces[i].getOwner() == playerID) { c = c + provinces[i].getEntityCount(); } @@ -286,7 +251,7 @@ public abstract class GeneralMap extends World implements ButtonEvent } } - public void buttonClicked(Button b) { + public void buttonClicked(Bildbutton b) { if ( modus == b ) { if(status==GameStates.SETZEN && freeArmies == 0 ) { status=GameStates.KAMPF; @@ -298,7 +263,6 @@ public abstract class GeneralMap extends World implements ButtonEvent modus.setForeColor(Color.black); modus.setText("Kampf\nbeenden"); } else if (status==GameStates.KAMPF) { - giveRandomStars(players[currentPlayer]); status=GameStates.VERSCHIEBEN; savedProvince = null; modus.setText("Nächster\nSpieler"); @@ -315,18 +279,16 @@ public abstract class GeneralMap extends World implements ButtonEvent status=GameStates.SETZEN; modus.setText("Kampf\nbeginnen"); } - redrawProvinces(); - redrawPlayers(); } } // Kampfsystem - + Province offenderProvince; Province defenderProvince; String maxDiceOffender = ""; String maxDiceDefender = ""; - + private void actFight() { for(int i = 1; i <= (provinces.length - 1); i++) { if (provinces[i].hasClicked() == true) { @@ -418,25 +380,20 @@ public abstract class GeneralMap extends World implements ButtonEvent diceDefender = null; decider(maxDiceOffenderArray, maxDiceDefenderArray); } - + // berechnet Zahlen und findet Gewinner; führt Konsequenz aus private void decider(int[] maxDiceOffender, int [] maxDiceDefender) { - Player offPl = players[offenderProvince.getOwner()]; - Player defPl = players[defenderProvince.getOwner()]; int maxDefender = maxDiceDefender[1]; int maxOffender = maxDiceOffender[2]; if (maxOffender > maxDefender) { defenderProvince.removeFromEntities(1); - defPl.lostEntity(); if (defenderProvince.getEntityCount() <= 0) { defenderProvince.setOwner(offenderProvince.getOwner()); offenderProvince.removeFromEntities(1); defenderProvince.setEntityCount(1); - offPl.gotProvince(); - defPl.lostProvince(); JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Die Provinz gehört fortan dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ")."); } else { JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Dem Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + defenderProvince.getEntityCount() + " Einheiten."); @@ -446,14 +403,12 @@ public abstract class GeneralMap extends World implements ButtonEvent if (maxOffender < maxDefender && offenderProvince.getEntityCount()>1) { offenderProvince.removeFromEntities(1); - offPl.lostEntity(); JOptionPane.showMessageDialog(null,"Somit gewinnt der Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + "). Dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + offenderProvince.getEntityCount() + " Einheiten."); } if (maxOffender == maxDefender && offenderProvince.getEntityCount()>1) { offenderProvince.removeFromEntities(1); - offPl.lostEntity(); JOptionPane.showMessageDialog(null,"Da es unentschieden ist, gewinnt der Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + "). Dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + offenderProvince.getEntityCount() + " Einheiten."); } @@ -464,9 +419,9 @@ public abstract class GeneralMap extends World implements ButtonEvent } // Einheiten verschieben - + Province savedProvince = null; - + private void actMove() { for ( int i = 1; i <= (provinces.length - 1); i++) { if (provinces[i].hasClicked() == true) { @@ -528,16 +483,15 @@ public abstract class GeneralMap extends World implements ButtonEvent savedProvince = null; } } - + // Einheiten setzen - + int freeArmies = -1; - + private void actPlace() { if ( freeArmies == -1 ) { freeArmies = calculateArmies(); - players[currentPlayer].gotEntities(freeArmies); } else if ( freeArmies == 0 ) { modus.setBackColor(Color.white); modus.setForeColor(Color.black); @@ -613,36 +567,16 @@ public abstract class GeneralMap extends World implements ButtonEvent // 4. Einheiten durch Sterne if ( players[currentPlayer].getStars() > 0) { - String toUseString; - - if ( players[currentPlayer].getStars() == 1 ) - { - toUseString = JOptionPane.showInputDialog(null, "Wieviele Sterne willst du verwenden? \n Du besitzt noch 1 Stern."); - } - - else - { - toUseString = JOptionPane.showInputDialog(null, "Wieviele Sterne willst du verwenden? \n Du besitzt noch " + players[currentPlayer].getStars() + " Sterne."); - } - + String toUseString = JOptionPane.showInputDialog(null, "Wieviele Sterne willst du verwenden?"); int starsToUse = Utils.StringToInt(toUseString); - - if ( starsToUse <= players[currentPlayer].getStars() ) + int[] starBoni = new int [] {1,2,4,7,10,13,17,21,25,30}; + if ( starsToUse > 0 && starsToUse < 11 ) { - int[] starBoni = new int [] {1,2,4,7,10,13,17,21,25,30}; - if ( starsToUse > 0 && starsToUse < 11 ) - { - armiesToPlace = armiesToPlace + starBoni[starsToUse -1]; - } - if ( starsToUse < 0 && starsToUse > 10 ) - { - JOptionPane.showMessageDialog(null,"Ungültige Zahl. Bitte eine Zahl zwischen 0 und 10 eingeben"); - } + armiesToPlace = armiesToPlace + starBoni[starsToUse -1]; } - - else + if ( starsToUse < 0 && starsToUse > 10 ) { - JOptionPane.showMessageDialog(null,"Du besitzt nicht die erforderliche Anzahl an Sternen! \n Verarschen kannst du jemand anderen."); + JOptionPane.showMessageDialog(null,"Ungültige Zahl. Bitte eine Zahl zwischen 0 und 10 eingeben"); } } return armiesToPlace; @@ -670,30 +604,4 @@ public abstract class GeneralMap extends World implements ButtonEvent return Utils.cutArray(savedProvinces); } } - - /** - * Gibt einem Spieler eine zufällige Anzahl an Sternen zwischen 1 und 3. - * - * @param player Der Spieler, dem die Sterne gegeben werden - */ - - protected void giveRandomStars (Player player) - { - double zufallszahl = Math.random(); - - if ( zufallszahl <= 0.6 ) - { - players[currentPlayer].addToStars(1); - } - - else if ( zufallszahl <= 0.9 ) - { - players[currentPlayer].addToStars(2); - } - - else - { - players[currentPlayer].addToStars(3); - } - } } diff --git a/InputDialogWorld.java b/InputDialogWorld.java index ff6ca06..712a14f 100644 --- a/InputDialogWorld.java +++ b/InputDialogWorld.java @@ -66,7 +66,7 @@ public class InputDialogWorld extends World implements ButtonEvent { } } - public void buttonClicked(Button b) { + public void buttonClicked(Bildbutton b) { if(b == abort) { inputS = null; } else if(b == okay) { diff --git a/Map_World.java b/Map_World.java index ecfe698..04d93c2 100644 --- a/Map_World.java +++ b/Map_World.java @@ -146,6 +146,5 @@ public class Map_World extends GeneralMap p.setOwner(dataL[(i-1)*2]); p.setEntityCount(dataL[(i*2)-1]); } - redrawPlayers(); } } diff --git a/Player.java b/Player.java index b49b7fb..9843844 100644 --- a/Player.java +++ b/Player.java @@ -23,7 +23,6 @@ public class Player extends Actor int textsize; int c; public int active; - boolean starsNeeded = false; //definiert die ID und Namens Variable public Player(int identity,String name, int c) @@ -141,15 +140,10 @@ public class Player extends Actor } return p; } - - public int getEntitiesCount() { - return getWorld().getPlayerEntityCount(id); - } public void gotEntities(int gotEnt) { stats[3]+= gotEnt; - reloadMaxEntities(); redrawPlayer(); } @@ -159,34 +153,11 @@ public class Player extends Actor redrawPlayer(); } - public void gotProvince() { - stats[0]++; - reloadMaxInfluence(); - redrawPlayer(); - starsNeeded = true; - } - - public void lostProvince() { - stats[1]++; - redrawPlayer(); - } - - public void reloadMaxInfluence() + private void maxEntities(int entNumber) { - int c = getProvinceCount(); - if(stats[2]< c) + if (stats[5]< entNumber) { - stats[2]=c; - redrawPlayer(); - } - } - - public void reloadMaxEntities() - { - int c = getEntitiesCount(); - if (stats[5]< c) - { - stats[5]=c; + stats[5]=entNumber; redrawPlayer(); } } @@ -225,14 +196,6 @@ public class Player extends Actor } - private Color getTextCol() { - return (getWorld().getCurrentPlayerID() == id) ? new Color(0,0,0) : new Color(255,255,255); - } - - private Color getTransBackCol() { - return (getWorld().getCurrentPlayerID() == id) ? new Color(255,255,255) : new Color(0,0,0); - } - public void redrawPlayer() { int textSize = 20; @@ -241,8 +204,8 @@ public class Player extends Actor n = "leererSpieler"; } GreenfootImage statistics = new GreenfootImage(137,120); - GreenfootImage name = new GreenfootImage(n,textSize,getTextCol(),getTransBackCol()); - statistics.drawImage(name,0,0); + GreenfootImage Name = new GreenfootImage(n,textSize,new Color(0,0,0),new Color(1.0f,1.0f,1.0f,0.5f)); + statistics.drawImage(Name,0,0); setImage(statistics); oDecide(statistics,textSize); @@ -251,27 +214,45 @@ public class Player extends Actor private void oDecide(GreenfootImage statistics,int textSize) { GreenfootImage flag = new GreenfootImage("images\\BlaueArmee.jpg"); + redraw(statistics,flag,textSize); switch(color) { case 2: flag = new GreenfootImage("images\\BlaueArmee.jpg"); + + redraw(statistics,flag,textSize); break; case 5: flag = new GreenfootImage("images\\GelbeArmee.jpg"); + + redraw(statistics,flag,textSize); break; case 6: flag = new GreenfootImage("images\\LilaArmee.jpg"); + + redraw(statistics,flag,textSize); break; case 4: flag = new GreenfootImage("images\\RoteArmee.jpg"); + + redraw(statistics,flag,textSize); break; case 1: flag = new GreenfootImage("images\\SchwarzeArmee.jpg"); + + redraw(statistics,flag,textSize); break; case 3: flag = new GreenfootImage("images\\GrueneArmee.jpg"); + redrawArrow(statistics,flag,textSize); break; } + + } + + private void redrawArrow(GreenfootImage statistics,GreenfootImage flag, int textSize) + { + // redraw(statistics,flag,textSize); redraw(statistics,flag,textSize); } @@ -279,7 +260,7 @@ public class Player extends Actor { flag.scale(137,83); statistics.drawImage(flag,0,textSize); - GreenfootImage playerStatistics = new GreenfootImage(stats[0] + "||" + stats[1] + "||" + stats[2] + "||" +stats[3] + "||" + stats[4] + "||" + stats[5],textSize,getTextCol(),getTransBackCol()); + GreenfootImage playerStatistics = new GreenfootImage(stats[0] + "||" + stats[1] + "||" + stats[2] + "||" +stats[3] + "||" + stats[4] + "||" + stats[5],textSize,new Color(0,0,0),new Color(1.0f,1.0f,1.0f,0.5f)); statistics.drawImage(playerStatistics, 0, 103); setImage(statistics); diff --git a/Start_Load.java b/Start_Load.java index 5f82682..fcdd217 100644 --- a/Start_Load.java +++ b/Start_Load.java @@ -12,9 +12,9 @@ public class Start_Load extends World implements ButtonEvent // Light Theme: "backgroundLight.png" // Dark Theme: "backgroundDark.png" - Button chulien = new Button("Neues Spiel", 16 , this); - Button spielanleitung = new Button("Spielanleitung", 16, this); - Button zurück = new Button("zurück", 16, this); + Button chulien; + Button spielanleitung; + Button zurück; /** * Constructor for objects of class Start_Load. * @@ -23,6 +23,9 @@ public class Start_Load extends World implements ButtonEvent { // Create a new world with 600x400 cells with a cell size of 1x1 pixels. super(1600, 900, 1); + chulien = new Button("Neues Spiel", 16 , this); + spielanleitung = new Button("Spielanleitung", 16, this); + zurück = new Button("zurück", 16, this); setBackground(backgroundImage); chulien.setSize(100,50); spielanleitung.setSize(100,50); @@ -30,10 +33,8 @@ public class Start_Load extends World implements ButtonEvent addObject (chulien, (1600-chulien.getWidth())/2+100, (900-chulien.getHeight())/2); addObject (spielanleitung, (1600-spielanleitung.getWidth())/2+100, (900-spielanleitung.getHeight())/2 + 80); - Greenfoot.setSpeed(100); - Greenfoot.start(); } - public void buttonClicked ( Button b) + public void buttonClicked ( Bildbutton b) { if ( b == chulien) {