From 40b1752ddc55691daae0c742266cc7b385275a34 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Tue, 26 Apr 2016 18:32:27 +0200 Subject: [PATCH 01/19] Button und ButtonEvent Erste Codezeilen zum Eventhandling bei den Buttons --- Button.java | 34 +++++++++++++++++++++++----------- ButtonEvent.java | 12 ++++++++++++ 2 files changed, 35 insertions(+), 11 deletions(-) create mode 100644 ButtonEvent.java diff --git a/Button.java b/Button.java index bc3b248..676387b 100644 --- a/Button.java +++ b/Button.java @@ -1,19 +1,31 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** - * Write a description of class Menue_Button here. + * Diese Klasse stellt einen Button dar. * - * @author (your name) - * @version (a version number or a date) + * @author Felix Stupp + * @version 26.04.2016 */ -public class Button extends GUI_Interface -{ +public class Button extends GUI_Interface { + + ButtonEvent handler; + /** - * Act - do whatever the Menue_Button wants to do. This method is called whenever - * the 'Act' or 'Run' button gets pressed in the environment. + * Erstellt einen Button mit dem gegebenen Objekt als Event-Handler. + * + * @param h Der Handler mit dem Interface ButtonEvent implementiert. */ - public void act() - { - // Add your action code here. - } + public Button(ButtonEvent h) { + handler = h; + } + + /** + * Fragt ab, ob ein Klick auf den Button gekommen ist. + */ + public void act() { + if(Greenfoot.mouseClicked(this)) { + handler.buttonClicked(this); + } + } + } diff --git a/ButtonEvent.java b/ButtonEvent.java new file mode 100644 index 0000000..5265439 --- /dev/null +++ b/ButtonEvent.java @@ -0,0 +1,12 @@ +import greenfoot.*; + +/** + * Dieses Interface stellt einen Zugriff auf Methoden für die Eventverarbeitung bei Buttons. + * Jede Klasse, die als Event-Handler dienen will, muss dieses Interface implementieren. + * + * @author Felix Stupp + * @version 26.04.2016 + */ +public interface ButtonEvent { + public void buttonClicked(Button obj); +} \ No newline at end of file From a1e62f825ee63f716c359a114817b9c2dacfad38 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Tue, 10 May 2016 18:29:54 +0200 Subject: [PATCH 02/19] GUI Klassen Version 0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Unvollständige Variante der Klassen für Button und Label, zusätzlich noch die Oberklasse GUI_Interface. --- Button.java | 63 +++++++++++++++++++++++++++++++++++++++ ButtonEvent.java | 2 ++ GUI_Interface.java | 33 +++++++++++++++----- Label.java | 43 ++++++++++++++++++++++++++ images/Button_Corner.png | Bin 0 -> 173 bytes images/Button_Side.png | Bin 0 -> 164 bytes 6 files changed, 133 insertions(+), 8 deletions(-) create mode 100644 Label.java create mode 100644 images/Button_Corner.png create mode 100644 images/Button_Side.png diff --git a/Button.java b/Button.java index 676387b..da11981 100644 --- a/Button.java +++ b/Button.java @@ -8,6 +8,12 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) */ public class Button extends GUI_Interface { + boolean autoSize = true; + Color foreC = Color.WHITE + Color backC = Color.BLACK + int textSize = 1; + String text = ""; + ButtonEvent handler; /** @@ -28,4 +34,61 @@ public class Button extends GUI_Interface { } } + public boolean getAutoSize() { + return autoSize; + } + + public void setAutoSize(boolean b) { + autoSize = b; + if(autoSize) { + redraw(); + } + } + + public int getTextSize() { + return textSize; + } + + public void setTextSize(int s) { + if(textSize != s && s > 0) { + textSize = s; + redraw(); + } + } + + public String getText() { + return text; + } + + public void setText(String s) { + if(text != s) { + text = s; + redraw(); + } + } + + private void redraw() { + GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); + GreenfootImage corner = new GreenfootImage("images/Button_Corner.png"); + int csx = corner.getWidth(); + int csy = corner.getHeight(); + GreenfootImage side = new GreenfootImage("images/Button_Side.png"); + if(autoSize) { + sx = tI.getWidth() + (csx * 2); + sy = tI.getHeight() + (csy * 2); + } + GreenfootImage all = new GreenfootImage(sx,sy); + all.drawImage(corner,0,0); + corner.rotate(90); + all.drawImage(corner,sx-csx,0); + corner.rotate(90); + all.drawImage(corner,sx-csx,sy-csy); + corner.rotate(90); + all.drawImage(corner,0,sy-csy); + for(int i = csx; i < (sx-csx+1); i++) { + + } + all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); + setImage(all); + } } diff --git a/ButtonEvent.java b/ButtonEvent.java index 5265439..b3a914d 100644 --- a/ButtonEvent.java +++ b/ButtonEvent.java @@ -8,5 +8,7 @@ import greenfoot.*; * @version 26.04.2016 */ public interface ButtonEvent { + public void buttonClicked(Button obj); + } \ No newline at end of file diff --git a/GUI_Interface.java b/GUI_Interface.java index 60dc87a..69c48da 100644 --- a/GUI_Interface.java +++ b/GUI_Interface.java @@ -1,19 +1,36 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** - * Write a description of class GUI_Interface here. + * Oberklasse für sämtliche GUI Objekte, wie Labels und Buttons * - * @author (your name) - * @version (a version number or a date) + * @author Felix Stupp + * @version 10.05.2016 */ public class GUI_Interface extends Actor { - /** - * Act - do whatever the GUI_Interface wants to do. This method is called whenever - * the 'Act' or 'Run' button gets pressed in the environment. - */ + protected int sx = 1; + protected int sy = 1; + + public int getWidth() { + return sx; + } + + public int getHeight() { + return sy; + } + + public void setSize(int w, int h) { + if(w < 0 || h < 0) { + return; + } + sx = w; + sy = h; + } + public void act() { // Add your action code here. - } + } + + public abstract void redraw(); } diff --git a/Label.java b/Label.java new file mode 100644 index 0000000..37ef6c6 --- /dev/null +++ b/Label.java @@ -0,0 +1,43 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) +import System.awt.Color; + +/** + * Zeigt einen Text an. + * + * @author Felix Stupp + * @version 10.05.2016 + */ +public class Label extends GUI_Interface { + + Color foreC = Color.WHITE + Color backC = Color.BLACK + int textSize = 1; + String text = ""; + + private void redraw() { + GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); + setImage(tI); + } + + public int getTextSize() { + return textSize; + } + + public void setTextSize(int s) { + if(textSize != s && s > 0) { + textSize = s; + redraw(); + } + } + + public String getText() { + return text; + } + + public void setText(String s) { + if(text != s) { + text = s; + redraw(); + } + } +} diff --git a/images/Button_Corner.png b/images/Button_Corner.png new file mode 100644 index 0000000000000000000000000000000000000000..937cca31107ae7650db5cd2e89fb5d892b7a26ab GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg0#LT=By}Z;C1rt33 zJVM%xNb!1@J z*w6hZkrl}2EbxddW?@k_E_DC^ literal 0 HcmV?d00001 From 4ac3af0cbf550755891eaed694f153bd2bde489f Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Tue, 10 May 2016 20:16:19 +0200 Subject: [PATCH 03/19] GUI Objekte verbessert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Button.redraw() vervollständigt Fehlende Semikolonen hinzugefügt 4 Leerzeichen durch Tabs ersetzt (Verringerung der Dateigröße) --- Button.java | 181 ++++++++++++++++++++++++--------------------- GUI_Interface.java | 51 ++++++------- Label.java | 64 ++++++++-------- 3 files changed, 154 insertions(+), 142 deletions(-) diff --git a/Button.java b/Button.java index da11981..e4c23fe 100644 --- a/Button.java +++ b/Button.java @@ -2,93 +2,104 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Diese Klasse stellt einen Button dar. - * + * * @author Felix Stupp * @version 26.04.2016 */ public class Button extends GUI_Interface { - - boolean autoSize = true; - Color foreC = Color.WHITE - Color backC = Color.BLACK - int textSize = 1; - String text = ""; - - ButtonEvent handler; - - /** - * Erstellt einen Button mit dem gegebenen Objekt als Event-Handler. - * - * @param h Der Handler mit dem Interface ButtonEvent implementiert. - */ - public Button(ButtonEvent h) { - handler = h; - } - - /** - * Fragt ab, ob ein Klick auf den Button gekommen ist. - */ - public void act() { - if(Greenfoot.mouseClicked(this)) { - handler.buttonClicked(this); - } - } - - public boolean getAutoSize() { - return autoSize; - } - - public void setAutoSize(boolean b) { - autoSize = b; - if(autoSize) { - redraw(); - } - } - - public int getTextSize() { - return textSize; - } - - public void setTextSize(int s) { - if(textSize != s && s > 0) { - textSize = s; - redraw(); - } - } - - public String getText() { - return text; - } - - public void setText(String s) { - if(text != s) { - text = s; - redraw(); - } - } - - private void redraw() { - GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); - GreenfootImage corner = new GreenfootImage("images/Button_Corner.png"); - int csx = corner.getWidth(); - int csy = corner.getHeight(); - GreenfootImage side = new GreenfootImage("images/Button_Side.png"); - if(autoSize) { - sx = tI.getWidth() + (csx * 2); - sy = tI.getHeight() + (csy * 2); - } - GreenfootImage all = new GreenfootImage(sx,sy); - all.drawImage(corner,0,0); - corner.rotate(90); - all.drawImage(corner,sx-csx,0); - corner.rotate(90); - all.drawImage(corner,sx-csx,sy-csy); - corner.rotate(90); - all.drawImage(corner,0,sy-csy); - for(int i = csx; i < (sx-csx+1); i++) { - - } - all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); - setImage(all); - } + + boolean autoSize = true; + Color foreC = Color.WHITE; + Color backC = Color.BLACK; + int textSize = 1; + String text = ""; + + ButtonEvent handler; + + /** + * Erstellt einen Button mit dem gegebenen Objekt als Event-Handler. + * @param h Der Handler mit dem Interface ButtonEvent implementiert. + */ + public Button(ButtonEvent h) { + handler = h; + } + + /** + * Fragt ab, ob ein Klick auf den Button gekommen ist. + */ + public void act() { + if(Greenfoot.mouseClicked(this)) { + handler.buttonClicked(this); + } + } + + public boolean getAutoSize() { + return autoSize; + } + + public void setAutoSize(boolean b) { + autoSize = b; + if(autoSize) { + redraw(); + } + } + + public int getTextSize() { + return textSize; + } + + public void setTextSize(int s) { + if(textSize != s && s > 0) { + textSize = s; + redraw(); + } + } + + public String getText() { + return text; + } + + public void setText(String s) { + if(text != s) { + text = s; + redraw(); + } + } + + private void redraw() { + GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); + GreenfootImage corner = new GreenfootImage("images/Button_Corner.png"); + int csx = corner.getWidth(); + int csy = corner.getHeight(); + GreenfootImage side = new GreenfootImage("images/Button_Side.png"); + if(autoSize) { + sx = tI.getWidth() + (csx * 2); + sy = tI.getHeight() + (csy * 2); + } + GreenfootImage all = new GreenfootImage(sx,sy); + all.drawImage(corner,0,0); // top left + corner.rotate(90); + all.drawImage(corner,0,sy-csy); // bottom left + corner.rotate(90); + all.drawImage(corner,sx-csx,sy-csy); // bottom right + corner.rotate(90); + all.drawImage(corner,sx-csx,0); // top right + for(int i = csx; i > (sx-csx); i++) { + all.drawImage(side,i,0); // top + } + side.rotate(90); + for(int i = csy; i > (sy-csy); i++) { // left + all.drawImage(side,0,i); + } + side.rotate(90); + for(int i = csx; i > (sx-csx); i++) { // bottom + all.drawImage(side,i,sy-csy); + } + for(int i = csy; i > (sy-csy); i++) { + all.drawImage(side,sx-csx,i); // right + } + side.rotate(90); + all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); + setImage(all); + } } diff --git a/GUI_Interface.java b/GUI_Interface.java index 69c48da..730c98b 100644 --- a/GUI_Interface.java +++ b/GUI_Interface.java @@ -8,29 +8,30 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) */ public class GUI_Interface extends Actor { - protected int sx = 1; - protected int sy = 1; - - public int getWidth() { - return sx; - } - - public int getHeight() { - return sy; - } - - public void setSize(int w, int h) { - if(w < 0 || h < 0) { - return; - } - sx = w; - sy = h; - } - - public void act() - { - // Add your action code here. - } - - public abstract void redraw(); + protected int sx = 1; + protected int sy = 1; + + public int getWidth() { + return sx; + } + + public int getHeight() { + return sy; + } + + public void setSize(int w, int h) { + if(w < 0 || h < 0) { + return; + } + sx = w; + sy = h; + redraw(); + } + + public void act() + { + // Add your action code here. + } + + public abstract void redraw(); } diff --git a/Label.java b/Label.java index 37ef6c6..73d0155 100644 --- a/Label.java +++ b/Label.java @@ -8,36 +8,36 @@ import System.awt.Color; * @version 10.05.2016 */ public class Label extends GUI_Interface { - - Color foreC = Color.WHITE - Color backC = Color.BLACK - int textSize = 1; - String text = ""; - - private void redraw() { - GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); - setImage(tI); - } - - public int getTextSize() { - return textSize; - } - - public void setTextSize(int s) { - if(textSize != s && s > 0) { - textSize = s; - redraw(); - } - } - - public String getText() { - return text; - } - - public void setText(String s) { - if(text != s) { - text = s; - redraw(); - } - } + + Color foreC = Color.WHITE; + Color backC = Color.BLACK; + int textSize = 1; + String text = ""; + + private void redraw() { + GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); + setImage(tI); + } + + public int getTextSize() { + return textSize; + } + + public void setTextSize(int s) { + if(textSize != s && s > 0) { + textSize = s; + redraw(); + } + } + + public String getText() { + return text; + } + + public void setText(String s) { + if(text != s) { + text = s; + redraw(); + } + } } From 6cb9130ddd3e07bef2857cc62eab6e09a78c2f5a Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Tue, 10 May 2016 20:33:41 +0200 Subject: [PATCH 04/19] GUI Objekte 0.1 debuggt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Imports generell verbessert "GUI_Interface" zu "abstract" erklärt --- Button.java | 1 + GUI_Interface.java | 2 +- Label.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Button.java b/Button.java index e4c23fe..c8b1089 100644 --- a/Button.java +++ b/Button.java @@ -1,4 +1,5 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) +import Java.awt.Color; /** * Diese Klasse stellt einen Button dar. diff --git a/GUI_Interface.java b/GUI_Interface.java index 730c98b..a846c13 100644 --- a/GUI_Interface.java +++ b/GUI_Interface.java @@ -6,7 +6,7 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) * @author Felix Stupp * @version 10.05.2016 */ -public class GUI_Interface extends Actor +public abstract class GUI_Interface extends Actor { protected int sx = 1; protected int sy = 1; diff --git a/Label.java b/Label.java index 73d0155..77d9570 100644 --- a/Label.java +++ b/Label.java @@ -1,5 +1,5 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) -import System.awt.Color; +import Java.awt.Color; /** * Zeigt einen Text an. From e543bf666ae5a0adacaf611546f65431046e32f0 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Tue, 10 May 2016 20:41:08 +0200 Subject: [PATCH 05/19] CurrentPlayerArrow entfernt Ein Rest aus dem ersten Versuchen und Tests, diese Anzeige soll innerhalb der Welt direkt erzeugt werden. --- CurrentPlayerArrow.java | 38 -------------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 CurrentPlayerArrow.java diff --git a/CurrentPlayerArrow.java b/CurrentPlayerArrow.java deleted file mode 100644 index 21a08bc..0000000 --- a/CurrentPlayerArrow.java +++ /dev/null @@ -1,38 +0,0 @@ -import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) - -/** - * Write a description of class CurrentPlayerArrow here. - * - * @author (your name) - * @version (a version number or a date) - */ -public class CurrentPlayerArrow extends GUI_Interface -{ - /** - * Act - do whatever the CurrentPlayerArrow wants to do. This method is called whenever - * the 'Act' or 'Run' button gets pressed in the environment. - */ - public void act() - { - // Add your action code here. - } - - public void CurrentPlayerArrow(int currentPlayer, int playerNumber) - { - switch (currentPlayer) { - case 1 : - setLocation(120,100); - break; - case 2 : - setLocation(120,100 + (825 / playerNumber)); - break; - case 3 : - setLocation(120,100 + (825 / playerNumber)*2); - break; - case 4 : - setLocation(120,100 + (825 / playerNumber)*3); - break; - - } - } -} From 3ebea693cbf4c6c9ab284aa5c4c3948e6110a9d2 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Tue, 10 May 2016 20:42:11 +0200 Subject: [PATCH 06/19] =?UTF-8?q?GUI=20Objekte=200.1=20Debug=202=20Import?= =?UTF-8?q?=20erneut=20verbessert=20("Java"=20zu=20"java")=20"redraw()"=20?= =?UTF-8?q?Methoden=20nun=20=C3=BCberall=20zu=20"public"=20ge=C3=A4ndert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Button.java | 4 ++-- Label.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Button.java b/Button.java index c8b1089..82bb984 100644 --- a/Button.java +++ b/Button.java @@ -1,5 +1,5 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) -import Java.awt.Color; +import java.awt.Color; /** * Diese Klasse stellt einen Button dar. @@ -67,7 +67,7 @@ public class Button extends GUI_Interface { } } - private void redraw() { + public void redraw() { GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); GreenfootImage corner = new GreenfootImage("images/Button_Corner.png"); int csx = corner.getWidth(); diff --git a/Label.java b/Label.java index 77d9570..1a21cc3 100644 --- a/Label.java +++ b/Label.java @@ -1,5 +1,5 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) -import Java.awt.Color; +import java.awt.Color; /** * Zeigt einen Text an. @@ -14,7 +14,7 @@ public class Label extends GUI_Interface { int textSize = 1; String text = ""; - private void redraw() { + public void redraw() { GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); setImage(tI); } From 51536fe0cabca35b157388432a0d92bca4ffdbb3 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Tue, 10 May 2016 21:19:39 +0200 Subject: [PATCH 07/19] Button Bilder erweitert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Für Tests mit den Buttons wurden die Teilbilder farblich invertiert und separat abgespeichert. --- images/Button_Corner_Inv.png | Bin 0 -> 166 bytes images/Button_Side_Inv.png | Bin 0 -> 148 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/Button_Corner_Inv.png create mode 100644 images/Button_Side_Inv.png diff --git a/images/Button_Corner_Inv.png b/images/Button_Corner_Inv.png new file mode 100644 index 0000000000000000000000000000000000000000..56a88b695326c3acc02f77d601826c337010fc57 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPIMM=Lb}y;_2cT zA`zbaN=ir=7|vCVj*kA%%n;8RVdk$lD;=nw!PC{xWt~$( F697zaD<=Q| literal 0 HcmV?d00001 diff --git a/images/Button_Side_Inv.png b/images/Button_Side_Inv.png new file mode 100644 index 0000000000000000000000000000000000000000..f91226a068d15315cd907b9f9e76029cf773f6ac GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrJ!2~4T^fnv@QY`6?zK#qG8~eHcB(eheoCO|{ z#S9F5hd`K7RKu$QC@4|l8c`CQpH@)-5guKQ5Ma7n?mU0A(3GUHx3vIVCg!02zKI3IG5A literal 0 HcmV?d00001 From ac3e6477f4ac6b4dc4e42331e9f981efeb49eec6 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Tue, 10 May 2016 21:22:51 +0200 Subject: [PATCH 08/19] GUI Objekte 0.1 erweitert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Standard Textgröße auf 32 gesetzt Button Handler darf nun auch "null" sein Weitere Konstruktoren eingebaut --- Button.java | 50 ++++++++++++++++++++++++++++++++++------------- Label.java | 8 +++++++- Menue_Button.java | 4 ++++ Roll_Button.java | 4 ++++ 4 files changed, 51 insertions(+), 15 deletions(-) diff --git a/Button.java b/Button.java index 82bb984..9d196df 100644 --- a/Button.java +++ b/Button.java @@ -12,24 +12,36 @@ public class Button extends GUI_Interface { boolean autoSize = true; Color foreC = Color.WHITE; Color backC = Color.BLACK; - int textSize = 1; + int textSize = 32; // as default text size String text = ""; ButtonEvent handler; + public Button(String txt, int size) { + text = txt; + textSize = size; + redraw(); + } /** * Erstellt einen Button mit dem gegebenen Objekt als Event-Handler. * @param h Der Handler mit dem Interface ButtonEvent implementiert. */ public Button(ButtonEvent h) { handler = h; + redraw(); + } + public Button(String txt, int size, ButtonEvent h) { + text = txt; + textSize = size; + handler = h; + redraw(); } /** * Fragt ab, ob ein Klick auf den Button gekommen ist. */ public void act() { - if(Greenfoot.mouseClicked(this)) { + if(Greenfoot.mouseClicked(this) && handler != this) { handler.buttonClicked(this); } } @@ -37,7 +49,6 @@ public class Button extends GUI_Interface { public boolean getAutoSize() { return autoSize; } - public void setAutoSize(boolean b) { autoSize = b; if(autoSize) { @@ -48,7 +59,6 @@ public class Button extends GUI_Interface { public int getTextSize() { return textSize; } - public void setTextSize(int s) { if(textSize != s && s > 0) { textSize = s; @@ -59,7 +69,6 @@ public class Button extends GUI_Interface { public String getText() { return text; } - public void setText(String s) { if(text != s) { text = s; @@ -67,6 +76,16 @@ public class Button extends GUI_Interface { } } + public ButtonEvent getHandler() { + return handler; + } + public void setHandler(ButtonEvent h) { + handler = h; + } + public void removeHandler() { + handler = null; + } + public void redraw() { GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); GreenfootImage corner = new GreenfootImage("images/Button_Corner.png"); @@ -74,32 +93,35 @@ public class Button extends GUI_Interface { int csy = corner.getHeight(); GreenfootImage side = new GreenfootImage("images/Button_Side.png"); if(autoSize) { - sx = tI.getWidth() + (csx * 2); - sy = tI.getHeight() + (csy * 2); + sx = tI.getWidth() + (csx * 2) + 4; + sy = tI.getHeight() + (csy * 2) + 4; } GreenfootImage all = new GreenfootImage(sx,sy); + all.setColor(Color.BLACK); + all.fill(); all.drawImage(corner,0,0); // top left corner.rotate(90); - all.drawImage(corner,0,sy-csy); // bottom left + all.drawImage(corner,sx-csx,0); // top right corner.rotate(90); all.drawImage(corner,sx-csx,sy-csy); // bottom right corner.rotate(90); - all.drawImage(corner,sx-csx,0); // top right + all.drawImage(corner,0,sy-csy); // bottom left for(int i = csx; i > (sx-csx); i++) { all.drawImage(side,i,0); // top + System.out.println("This is a test line at " + i); } side.rotate(90); - for(int i = csy; i > (sy-csy); i++) { // left - all.drawImage(side,0,i); + for(int i = csy; i > (sy-csy); i++) { + all.drawImage(side,sx-csx,i); // right } side.rotate(90); for(int i = csx; i > (sx-csx); i++) { // bottom all.drawImage(side,i,sy-csy); } - for(int i = csy; i > (sy-csy); i++) { - all.drawImage(side,sx-csx,i); // right - } side.rotate(90); + for(int i = csy; i > (sy-csy); i++) { // left + all.drawImage(side,0,i); + } all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); setImage(all); } diff --git a/Label.java b/Label.java index 1a21cc3..f6c95ec 100644 --- a/Label.java +++ b/Label.java @@ -11,9 +11,15 @@ public class Label extends GUI_Interface { Color foreC = Color.WHITE; Color backC = Color.BLACK; - int textSize = 1; + int textSize = 32; String text = ""; + public Label(String txt, int size) { + text = txt; + textSize = size; + redraw(); + } + public void redraw() { GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); setImage(tI); diff --git a/Menue_Button.java b/Menue_Button.java index 44805e3..cb538aa 100644 --- a/Menue_Button.java +++ b/Menue_Button.java @@ -8,6 +8,10 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) */ public class Menue_Button extends Button { + public Menue_Button(ButtonEvent h) { + super(h); + } + /** * Act - do whatever the Menue_Button wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. diff --git a/Roll_Button.java b/Roll_Button.java index 53ff8bc..46b6d7d 100644 --- a/Roll_Button.java +++ b/Roll_Button.java @@ -8,6 +8,10 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) */ public class Roll_Button extends Button { + public Roll_Button(ButtonEvent h) { + super(h); + } + /** * Act - do whatever the Würfel_Button_Angriff wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. From 711090cebc763ccfaa2977a6da73c6628604992e Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Tue, 10 May 2016 21:25:24 +0200 Subject: [PATCH 09/19] [DEBUG] Auskommentieren fehlerbringender Zeilen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Da die Konstruktoren der hier verwendeten Klassen verändert wurden, arbeiten diese Code-Zeilen nicht mehr korrekt. Um Fehlern aus dem Weg zu gehen, wurden diese auskommentiert. Diese Klasse wird später über einen anderen Branch wieder verbessert. Diese Änderung muss beim Pull Request nicht übernommen werden. --- GeneralMap.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index fc9b8cd..27b1f87 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -28,9 +28,9 @@ public class GeneralMap extends World * @param p Kantenlänge der Felder in Pixeln */ super(1600, 900, 1); - addObject(new Menue_Button(),100,38); - addObject(new Roll_Button(),84,835); - addObject(new Roll_Button(),1513,835); + //addObject(new Menue_Button(),100,38); + //addObject(new Roll_Button(),84,835); + //addObject(new Roll_Button(),1513,835); } static GeneralMap generateMap(int mapID) From d6a3ac0a4eef87506634d2eb8d871ad46c774d28 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Wed, 11 May 2016 20:07:30 +0200 Subject: [PATCH 10/19] =?UTF-8?q?Rechtschreibung=20der=20Markdown=20Dateie?= =?UTF-8?q?n=20verbessert=20In=20diesen=20Dateien=20waren=20teilweise=20ni?= =?UTF-8?q?cht=20alle=20W=C3=B6rter=20richtig=20geschrieben.=20Dies=20wurd?= =?UTF-8?q?e=20nun=20angepasst.=20Inhaltlich=20sind=20die=20Dokumente=20id?= =?UTF-8?q?entisch.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- planung/README.md | 2 +- planung/architektur.md | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/planung/README.md b/planung/README.md index 386873e..f647fb9 100644 --- a/planung/README.md +++ b/planung/README.md @@ -1,7 +1,7 @@ Planung ======= -Hier sind nun für unser Team sämtliche Dokumente, die während der Planung des Projekts aufgetretten sind oder noch werden, zu finden. Eventuell wird noch zusätzliche Software wie Word benötigt, um diese Dateien anzeigen zu können. +Hier sind nun für unser Team sämtliche Dokumente, die während der Planung des Projekts aufgetreten sind oder noch werden, zu finden. Eventuell wird noch zusätzliche Software wie Word benötigt, um diese Dateien anzeigen zu können. Dasselbe lässt sich hier nochmal mit Office Integration bei mir in OneDrive anzeigen: [Hier klicken](https://onedrive.live.com/redir?resid=C26B53478C4AFFD1!238212&authkey=!ADhY-TMN8w_Egjc&ithint=folder%2cjpg OneDrive von Felix Stupp) diff --git a/planung/architektur.md b/planung/architektur.md index 0a321bc..37f9782 100644 --- a/planung/architektur.md +++ b/planung/architektur.md @@ -12,10 +12,10 @@ Hier ein möglicher Architekturplan von *Felix Stupp*. Dieser Plan wird regelmäßig angepasst, oben am Datum zu erkennen. Hier werden alle Klassen und deren öffentliche Methoden und Eigenschaften zusammengefasst. -Auch zu sehen ist der Author / sind die Authoren der Klasse, um bei Fragen diese kontaktieren zu können. +Auch zu sehen ist der Autor / sind die Autoren der Klasse, um bei Fragen diese kontaktieren zu können. -**Alle Anfragen aufgrund von Architekturänderungen erst an mich weitergeben, damit ich dies mit den jeweiligen Authoren besprechen kann!** -Die Authoren sollen nur Fragen zu bisher vorhandenen Methoden erhalten. +**Alle Anfragen aufgrund von Architekturänderungen erst an mich weitergeben, damit ich dies mit den jeweiligen Autoren besprechen kann!** +Die Autoren sollen nur Fragen zu bisher vorhandenen Methoden erhalten. ### Erklärung @@ -78,7 +78,7 @@ Der Spieler kann mithilfe der Welt dann herausfinden, welche Provinzen ihm gehö ## MainMenu -Stellt eine *World* als Hauptmenü dar, bekommmt die Aufgabe, die einzelnen Menüpunkte anzuzeigen. Aktiviert gegebenenfalls andere *Worlds*. +Stellt eine *World* als Hauptmenü dar, bekommt die Aufgabe, die einzelnen Menüpunkte anzuzeigen. Aktiviert gegebenenfalls andere *Worlds*. --- From 4a460d84cd44b63721234633cd4950c305ed12c2 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Wed, 11 May 2016 21:33:36 +0200 Subject: [PATCH 11/19] =?UTF-8?q?GUI=20Objekte=20Version=200.2=20Funktione?= =?UTF-8?q?n=20teilweise=20durch=20=C3=9Cberf=C3=BChrung=20in=20die=20GUI?= =?UTF-8?q?=5FInterface-Klasse=20verallgemeinert=20InCode=20Dokumentation?= =?UTF-8?q?=20hinzugef=C3=BCgt/angepasst=20Fehler=20verbessert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Button.java | 97 ++++++++++++++++++++++++++++++++++++---------- GUI_Interface.java | 76 +++++++++++++++++++++++++++++++----- Label.java | 86 ++++++++++++++++++++++++++++++++-------- 3 files changed, 212 insertions(+), 47 deletions(-) diff --git a/Button.java b/Button.java index 9d196df..ff18971 100644 --- a/Button.java +++ b/Button.java @@ -2,34 +2,44 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.awt.Color; /** - * Diese Klasse stellt einen Button dar. - * - * @author Felix Stupp - * @version 26.04.2016 - */ + Diese Klasse stellt einen Button dar. + Als Vorbild dafür hält der Button aus dem .NET-Framework für UWP-Apps dar. + + @author Felix Stupp + @version 11.05.2016 +*/ public class Button extends GUI_Interface { - boolean autoSize = true; - Color foreC = Color.WHITE; - Color backC = Color.BLACK; - int textSize = 32; // as default text size - String text = ""; + private boolean autoSize = true; + private int textSize = 32; // as default text size + private String text = ""; - ButtonEvent handler; + 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) { text = txt; textSize = size; redraw(); } /** - * Erstellt einen Button mit dem gegebenen Objekt als Event-Handler. - * @param h Der Handler mit dem Interface ButtonEvent implementiert. - */ + Erstellt einen Button mit dem gegebenen Objekt als Event-Handler. + @param h Der Handler mit dem Interface ButtonEvent implementiert. + */ public Button(ButtonEvent h) { handler = h; redraw(); } + /** + 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 Button(String txt, int size, ButtonEvent h) { text = txt; textSize = size; @@ -38,17 +48,27 @@ public class Button extends GUI_Interface { } /** - * Fragt ab, ob ein Klick auf den Button gekommen ist. - */ + 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) { @@ -56,38 +76,74 @@ public class Button extends GUI_Interface { } } + /** + Gibt die aktelle Textgröße zurück. + @return Aktuelle Textgröße + */ public int getTextSize() { return textSize; } - public void setTextSize(int s) { + /** + Legt eine neue Textgröße fest. + @param s Neue Textgröße + @return Gibt an, ob sich die Textgröße geändert hat. Bei TRUE erfolgte bereits ein Redraw. + */ + public boolean setTextSize(int s) { if(textSize != s && s > 0) { textSize = s; redraw(); + return true; } + return false; } + /** + Gibt den aktuellen Text zurück. + @return Der aktuelle Text + */ public String getText() { return text; } - public void setText(String s) { + /** + 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 setText(String s) { if(text != s) { text = 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; } + /** + Zeichnet das GreenfootImage des Buttons erneut und zeigt es an. + */ public void redraw() { - GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); + GreenfootImage tI = new GreenfootImage(text,textSize,textC,backC); GreenfootImage corner = new GreenfootImage("images/Button_Corner.png"); int csx = corner.getWidth(); int csy = corner.getHeight(); @@ -97,7 +153,7 @@ public class Button extends GUI_Interface { sy = tI.getHeight() + (csy * 2) + 4; } GreenfootImage all = new GreenfootImage(sx,sy); - all.setColor(Color.BLACK); + all.setColor(backC); all.fill(); all.drawImage(corner,0,0); // top left corner.rotate(90); @@ -108,7 +164,6 @@ public class Button extends GUI_Interface { all.drawImage(corner,0,sy-csy); // bottom left for(int i = csx; i > (sx-csx); i++) { all.drawImage(side,i,0); // top - System.out.println("This is a test line at " + i); } side.rotate(90); for(int i = csy; i > (sy-csy); i++) { diff --git a/GUI_Interface.java b/GUI_Interface.java index a846c13..762cabc 100644 --- a/GUI_Interface.java +++ b/GUI_Interface.java @@ -1,24 +1,38 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** - * Oberklasse für sämtliche GUI Objekte, wie Labels und Buttons - * - * @author Felix Stupp - * @version 10.05.2016 - */ + Oberklasse für sämtliche GUI Objekte, wie Labels und Buttons + + @author Felix Stupp + @version 11.05.2016 +*/ public abstract class GUI_Interface extends Actor { protected int sx = 1; protected int sy = 1; + protected Color backC = Color.BLACK; + protected Color textC = Color.WHITE; + /** + Gibt die Breite des Objektes zurück. + @return Die aktuelle Breite + */ public int getWidth() { return sx; } - + /** + Gibt die Höhe des Objektes zurück. + @return Die aktuelle Höhe + */ public int getHeight() { return sy; } - + /** + Legt die Größe des Objektes neu fest und zeichnet es danach damit neu. + Je nach Objekttyp kann diese Größe wieder vom Objekt selbst angepasst werden, falls nötig. + @param w Die neue Breite + @param h Die neue Höhe + */ public void setSize(int w, int h) { if(w < 0 || h < 0) { return; @@ -28,10 +42,52 @@ public abstract class GUI_Interface extends Actor redraw(); } - public void act() - { - // Add your action code here. + /** + * Gibt die aktuelle Hintergrundfarbe des Objektes zurück. + * @return Die aktuelle Hintergrundfarbe als System.awt.Color + */ + public Color getBackColor() { + return backC; + } + /** + Legt die Hintergrundfarbe des Objektes fest. + @param c Die neue Hintergrundfarbe als System.awt.Color + @return Gibt an, ob diese Farbe unterschiedlich zur bisherig genutzten Farbe wahr. Bei TRUE erfolgte bereits ein Redraw. + */ + public boolean setBackColor(Color c) { + if(!c.equals(backC)) { + backC = c; + redraw(); + return true; + } + return false; + } + + /** + Gibt die aktuelle Vordergrundfarbe (meist die Textfarbe) des Objektes zurück. + @return Die aktuelle Vordergrundfarbe als System.awt.Color + */ + public Color getForeColor() { + return foreC; } + /** + Legt die Vordergrundfarbe (meist die Textfarbe) des Objektes fest. + @param c Die neue Vordergrundfarbe als System.awt.Color + @return Gibt an, ob diese Farbe unterschiedlich zur bisherig genutzten Farbe wahr. Bei TRUE erfolgte bereits ein Redraw. + */ + public boolean setForeColor(Color c) { + if(!c.equals(foreC)) { + foreC = c; + redraw(); + return true; + } + return false; + } + + public void act() {} + /** + Diese Funktion soll die erneute Zeichnung des Objekts erzwingen und wird daher auch von (fast) allen set-Methoden aufgerufen, sollte der neue Wert sich von dem alten unterscheiden. + */ public abstract void redraw(); } diff --git a/Label.java b/Label.java index f6c95ec..58786dd 100644 --- a/Label.java +++ b/Label.java @@ -2,48 +2,102 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.awt.Color; /** - * Zeigt einen Text an. - * - * @author Felix Stupp - * @version 10.05.2016 - */ + Zeigt einen Text an. + + @author Felix Stupp + @version 11.05.2016 +*/ public class Label extends GUI_Interface { - Color foreC = Color.WHITE; - Color backC = Color.BLACK; - int textSize = 32; - String text = ""; + private boolean autoSize = true; + private int textSize = 32; // as default text size + private String text = ""; + /** + Erstellt ein neues Label mit dem gegebenen Text und der zugehörigen Textgröße. + @param txt Der darzustellende Text + @param size Die dazugehörige Textgröße + */ public Label(String txt, int size) { text = txt; textSize = size; redraw(); } - public void redraw() { - GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); - setImage(tI); + /** + 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 + */ public int getTextSize() { return textSize; } - - public void setTextSize(int s) { + /** + Legt eine neue Textgröße fest. + @param s Neue Textgröße + @return Gibt an, ob sich die Textgröße geändert hat. Bei TRUE erfolgte bereits ein Redraw. + */ + public boolean setTextSize(int s) { if(textSize != s && s > 0) { textSize = s; redraw(); + return true; } + return false; } + /** + Gibt den aktuellen Text zurück. + @return Der aktuelle Text + */ public String getText() { return text; } - - public void setText(String s) { + /** + 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 setText(String s) { if(text != s) { text = s; redraw(); + return true; + } + return false; + } + + /** + Zeichnet das GreenfootImage des Labels erneut und zeigt es an. + */ + public void redraw() { + GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); + if(autoSize) { + sx = tI.getWidth(); + sy = tI.getHeight(); } + GreenfootImage all = new GreenfootImage(sx,sy); + all.setColor(backC); + all.fill(); + + setImage(all); } } From 3a9f7c9bec3483176cf5d77d775221f70f962740 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Wed, 11 May 2016 22:06:58 +0200 Subject: [PATCH 12/19] =?UTF-8?q?VS=20Code=20Einstellungen=20erweitert=20F?= =?UTF-8?q?=C3=BCr=20Verwender=20des=20Editors=20"Visual=20Studio=20Code"?= =?UTF-8?q?=20verbessert=20diese=20Datei=20den=20Umgang=20mit=20dem=20Date?= =?UTF-8?q?i-Explorer=20an=20der=20Seite,=20indem=20unn=C3=B6tige=20und=20?= =?UTF-8?q?nicht=20lesbare=20Dateien=20ausgeblendet=20werden.=20Nicht-Verw?= =?UTF-8?q?ender=20des=20Tools=20k=C3=B6nnnen=20diese=20Datei=20ignorieren?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 1a124ba..2d95c3e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,14 +1,17 @@ // Place your settings in this file to overwrite default and user settings. { "files.exclude": { + // IDE Einstellungen "**/.git": true, "**/.DS_Store": true, + "**/.vscode": true, + // Greenfoot Dateien + "project.greenfoot": true, "*.class": true, "*.ctxt": true, - "project.greenfoot": true, - "**/.vscode": true, - "*.ods": true, - "*.xls": true, - "*.xlsx": true + // Excel Tabellen + "**/*.ods": true, + "**/*.xls": true, + "**/*.xlsx": true } } \ No newline at end of file From dd08706ed6a17225ddb4396581c4007c782ef6fd Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Thu, 12 May 2016 17:32:43 +0200 Subject: [PATCH 13/19] =?UTF-8?q?Button=20Zeichnung=20angepasst=20Der=20Bu?= =?UTF-8?q?tton=20ist=20nun=20in=20der=20Lage,=20sich=20selbst=20ohne=20Gr?= =?UTF-8?q?afiken=20zu=20zeichnen,=20da=20der=20Einsatz=20dieser=20Grafike?= =?UTF-8?q?n=20nicht=20mit=20Erfolg=20verlief.=20In=20der=20Utils=20Klasse?= =?UTF-8?q?=20wurde=20dazu=20auch=20eine=20neue=20Funktion=20hinzugef?= =?UTF-8?q?=C3=BCgt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Button.java | 43 ++++++++++++------------------------------- Utils.java | 8 ++++++++ 2 files changed, 20 insertions(+), 31 deletions(-) diff --git a/Button.java b/Button.java index ff18971..cd29f19 100644 --- a/Button.java +++ b/Button.java @@ -144,40 +144,21 @@ public class Button extends GUI_Interface { */ public void redraw() { GreenfootImage tI = new GreenfootImage(text,textSize,textC,backC); - GreenfootImage corner = new GreenfootImage("images/Button_Corner.png"); - int csx = corner.getWidth(); - int csy = corner.getHeight(); - GreenfootImage side = new GreenfootImage("images/Button_Side.png"); if(autoSize) { - sx = tI.getWidth() + (csx * 2) + 4; - sy = tI.getHeight() + (csy * 2) + 4; + sx = tI.getWidth() + (6 * 2) + 4; + sy = tI.getHeight() + (6 * 2) + 4; } GreenfootImage all = new GreenfootImage(sx,sy); - all.setColor(backC); - all.fill(); - all.drawImage(corner,0,0); // top left - corner.rotate(90); - all.drawImage(corner,sx-csx,0); // top right - corner.rotate(90); - all.drawImage(corner,sx-csx,sy-csy); // bottom right - corner.rotate(90); - all.drawImage(corner,0,sy-csy); // bottom left - for(int i = csx; i > (sx-csx); i++) { - all.drawImage(side,i,0); // top - } - side.rotate(90); - for(int i = csy; i > (sy-csy); i++) { - all.drawImage(side,sx-csx,i); // right - } - side.rotate(90); - for(int i = csx; i > (sx-csx); i++) { // bottom - all.drawImage(side,i,sy-csy); - } - side.rotate(90); - for(int i = csy; i > (sy-csy); i++) { // left - all.drawImage(side,0,i); - } - all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); + Color gray = new Color(127,127,127,255); + Utils.drawInsideRectangle(all,gray,0); + Utils.drawInsideRectangle(all,backC,2); + Utils.drawInsideRectangle(all,gray,6); + Utils.drawInsideRectangle(all,backC,7); + all.setColor(new Color(0,0,0,0)); + all.fillRect(0,0,1,1); + all.fillRect(sx-1,0,1,1); + all.fillRect(0,sy-1,1,1); + all.fillRect(sx-1,sy-1,1,1); setImage(all); } } diff --git a/Utils.java b/Utils.java index bdbeffd..4063252 100644 --- a/Utils.java +++ b/Utils.java @@ -1,4 +1,5 @@ import greenfoot.*; +import System.awt.Color; /** * Diese Klasse enthält nur statische Funktionen, welche für euch als Unterstützung gedacht sind. Damit könnt ihr dann hoffentlich viele Code-Zeilen sparen. :) @@ -31,4 +32,11 @@ public final class Utils { return b; } + public static void drawInsideRectangle(GreenfootImage i, Color c, int b) { + int sx = i.getWidth(); + int sy = i.getHeight(); + i.setColor(c); + i.fillRect(b,b,sx-(2*b),sy-(2*b)); + } + } From 9018f372c6a4f2135688e072c95faab423ce6718 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Thu, 12 May 2016 21:19:24 +0200 Subject: [PATCH 14/19] =?UTF-8?q?GUI=20Objekte=20Version=200.2=20Debug=20D?= =?UTF-8?q?ebuggen=20der=20letzten=20=C3=84nderungen=20an=20den=20GUI=20Ob?= =?UTF-8?q?jekten=20und=20der=20zugeh=C3=B6rigen=20Methoden=20in=20der=20U?= =?UTF-8?q?tils=20Klasse.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Button.java | 10 ++++++---- GUI_Interface.java | 3 ++- Utils.java | 24 ++++++++++++++++++++++-- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/Button.java b/Button.java index cd29f19..fa7cf86 100644 --- a/Button.java +++ b/Button.java @@ -143,22 +143,24 @@ public class Button extends GUI_Interface { Zeichnet das GreenfootImage des Buttons erneut und zeigt es an. */ public void redraw() { - GreenfootImage tI = new GreenfootImage(text,textSize,textC,backC); + 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 gray = new Color(127,127,127,255); + Color gray = new Color(133,133,133,255); + Color black = new Color(0,0,0,255); Utils.drawInsideRectangle(all,gray,0); - Utils.drawInsideRectangle(all,backC,2); + Utils.drawInsideRectangle(all,black,2); Utils.drawInsideRectangle(all,gray,6); - Utils.drawInsideRectangle(all,backC,7); + Utils.drawInsideRectangle(all,black,7); all.setColor(new Color(0,0,0,0)); all.fillRect(0,0,1,1); all.fillRect(sx-1,0,1,1); all.fillRect(0,sy-1,1,1); all.fillRect(sx-1,sy-1,1,1); + all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); setImage(all); } } diff --git a/GUI_Interface.java b/GUI_Interface.java index 762cabc..6cd9059 100644 --- a/GUI_Interface.java +++ b/GUI_Interface.java @@ -1,4 +1,5 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) +import java.awt.Color; /** Oberklasse für sämtliche GUI Objekte, wie Labels und Buttons @@ -11,7 +12,7 @@ public abstract class GUI_Interface extends Actor protected int sx = 1; protected int sy = 1; protected Color backC = Color.BLACK; - protected Color textC = Color.WHITE; + protected Color foreC = Color.WHITE; /** Gibt die Breite des Objektes zurück. diff --git a/Utils.java b/Utils.java index 4063252..5081b61 100644 --- a/Utils.java +++ b/Utils.java @@ -1,5 +1,5 @@ import greenfoot.*; -import System.awt.Color; +import java.awt.Color; /** * Diese Klasse enthält nur statische Funktionen, welche für euch als Unterstützung gedacht sind. Damit könnt ihr dann hoffentlich viele Code-Zeilen sparen. :) @@ -9,7 +9,11 @@ import System.awt.Color; */ public final class Utils { - //Kopiert ein Array eines (annäherend) beliebigen Types. + /** + Kopiert ein boolean-Array und übergibt diese. + @param a Das zu kopierende Array + @return Die Kopie des Arrays + */ public static boolean[] copyArray(boolean[] a) { boolean[] b = new boolean[a.length]; for(int i = 0; i >= a.length; i++) { @@ -17,6 +21,11 @@ public final class Utils { } return b; } + /** + Kopiert ein int-Array und übergibt diese. + @param a Das zu kopierende Array + @return Die Kopie des Arrays + */ public static int[] copyArray(int[] a) { int[] b = new int[a.length]; for(int i = 0; i >= a.length; i++) { @@ -24,6 +33,11 @@ public final class Utils { } return b; } + /** + Kopiert ein String-Array und übergibt diese. + @param a Das zu kopierende Array + @return Die Kopie des Arrays + */ public static String[] copyArray(String[] a) { String[] b = new String[a.length]; for(int i = 0; i >= a.length; i++) { @@ -32,6 +46,12 @@ public final class Utils { return b; } + /** + Zeichnet innerhalb eines GreenfootImage ein gefülltes Rechteck in der gegebenen Farbe und mit dem gegebenen Abstand zum Rand. + @param i Das GreenfootImage, in dem gezeichnet werden soll. + @param c Die Farbe, in der das gefüllte Rechteck gezeichnet werden soll. + @param b Der Abstand zum Rand der Grafik. + */ public static void drawInsideRectangle(GreenfootImage i, Color c, int b) { int sx = i.getWidth(); int sy = i.getHeight(); From 4239efad0da5dd10943d88ffbcb940e129b82041 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Thu, 12 May 2016 21:19:28 +0200 Subject: [PATCH 15/19] =?UTF-8?q?Architektur=20Anpassung=20(Teil=201)=20An?= =?UTF-8?q?passung=20der=20Architektur=20und=20der=20Funktionsliste=20an?= =?UTF-8?q?=20die=20neuen=20Methoden=20bei=20den=20GUI=20Objekten=20und=20?= =?UTF-8?q?der=20Utils=20Klasse.=20Die=20Architektur=20selbst=20ist=20noch?= =?UTF-8?q?=20unvollst=C3=A4ndig=20in=20dieser=20Hinsicht.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- planung/architektur.md | 17 ++--- planung/funktionsliste.md | 143 ++++++++++++++++++++++++-------------- 2 files changed, 98 insertions(+), 62 deletions(-) diff --git a/planung/architektur.md b/planung/architektur.md index 37f9782..6d6451a 100644 --- a/planung/architektur.md +++ b/planung/architektur.md @@ -1,8 +1,8 @@ # Architekturplan Zweiundvierzig -**Version: 2** +**Version: 3** -**Stand: 10.04.2016** (TT.MM.JJJJ / DD.MM.YYYY) +**Stand: 12.05.2016** (TT.MM.JJJJ / DD.MM.YYYY) [Hier die neuste offizielle Version vom Master-Branch sehen](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/architektur.md) @@ -61,14 +61,11 @@ Der Spieler kann mithilfe der Welt dann herausfinden, welche Provinzen ihm gehö - *Player* - *Dice* (Würfel) -### Sonstige Actors (Control Elemente) +### Sonstige Actors (GUI Objekte) - *GUI_Interface* - *Label* - *Button* - - *Menue_Button* - - *Roll_Button* -- *CurrentPlayerArrow* ### Sonstige @@ -365,8 +362,12 @@ Die Hauptklasse für Buttons, wird durch Erbung spezifiziert. ## Utils -Eine finale Klasse mit vielen kleinen Methoden, die den restlichen Code verkleinern und besser lesbar gestalten soll. Ergänzungen in Form von eigenen Funktionen dürfen selbst eingebracht werden. +Eine finale Klasse mit vielen kleinen Methoden, die den restlichen Code verkleinern und besser lesbar gestalten soll. Ergänzungen in Form von eigenen Funktionen dürfen **selbst** eingebracht werden. ### copyArray() -Kopiert ein Array des Types **boolean**, **int** oder **String** mit identischer Größe. \ No newline at end of file +Kopiert ein Array des Types **boolean**, **int** oder **String** mit identischer Größe. + +### drawInsideRectangle() + +Zeichnet innerhalb eines **GreenfootImage** ein Rechteck gefüllt mit der angegebenen Farbe. Es besitzt zu allen Seiten den gegebenen Abstand zum Rand des Image. \ No newline at end of file diff --git a/planung/funktionsliste.md b/planung/funktionsliste.md index 14c33ac..d19ee62 100644 --- a/planung/funktionsliste.md +++ b/planung/funktionsliste.md @@ -1,92 +1,127 @@ # Funktionsliste Zweiundvierzig -**Version: 2** +**Version: 3** -**Stand: 10.04.2016** (TT.MM.JJJJ / DD.MM.YYYY) +**Stand: 12.05.2016** (TT.MM.JJJJ / DD.MM.YYYY) [Hier die neuste offizielle Version vom Master-Branch sehen](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/funktionsliste.md) [Hier zum gesamten Architekturplan](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/architektur.md) -Hier einfach eine grobe Übersicht über alle Funktionen, die jede Klasse als Public / Protected besitzen soll. +Hier einfach eine grobe Übersicht über alle Funktionen, die jede Klasse als Public / Protected besitzen soll beziehungsweise bereits besitzt. +Weitere Informationen zu den Funktionen findet ihr in der Architektur oder, falls die Funktion bereits vorhanden ist, in der Dokumentation, die von Greenfoot automatisch erstellt wird (durch die InCode Dokumentation). Dies könnt auch als Checkliste nehmen, um zu sehen, ob ihr bereits alle Funktionen im Code präsent habt. ## GeneralMap -- **static GeneralMap generateMap(int mapID, ...)** +- static *GeneralMap* **generateMap** ( *int* mapID, ... ) -- **int getPlayerCount()** -- **String getPlayerName()** -- **String getPlayerName(int)** -- **int getPlayerStars()** -- **int getProvinceOwner(int)** -- **int[] getProvinceOwners()** -- **int getProvinceEntityCount(int)** -- **int getProvincesEntityCounts(int[])** -- **int getProvincesEntityCounts(boolean[])** -- **int getProvincesEntityCounts(int)** +- *int* **getPlayerCount** () +- *String* **getPlayerName** () +- *String* **getPlayerName** ( *int* ) +- *int* **getPlayerStars** () + +- *int* **getProvinceOwner** ( *int* ) +- *int[]* **getProvinceOwners** () +- *int* **getProvinceEntityCount** ( *int* ) +- *int* **getProvincesEntityCounts** ( *int[]* ) +- *int* **getProvincesEntityCounts** ( *boolean[]* ) +- *int* **getProvincesEntityCounts** ( *int* ) ## Province -- **Province(int, int, int, int, int, String, int[])** -- **Province(int, int, int, int, int, String, boolean[])** +- *Province* ( *int*, *int*, *int*, *int*, *int*, *String*, *int[]* ) +- *Province* ( *int*, *int*, *int*, *int*, *int*, *String*, *boolean[]* ) + +- *int* **getID** () +- *int* **getContinentID** () +- *String* **getDisplayName** () +- *boolean* **isProvinceNear** ( *int* ) + +- *int* **getStars** () -- **int getID()** -- **int getContinentID()** -- **boolean isProvinceNear(int)** -- **String getDisplayName()** -- **int getStars()** -- **int getOwner()** -- **setOwner(int)** -- **int getEntityCount()** -- **int addToEntities(int)** -- **int removeFromEntities(int)** -- **int setEntityCount(int)** +- *int* **getOwner** () +- *void* **setOwner** ( *int* ) -- **redrawProvince()** +- *int* **getEntityCount** () +- *int* **addToEntities** ( *int* ) +- *int* **removeFromEntities** ( *int* ) +- *int* **setEntityCount** ( *int* ) + +- *void* **redrawProvince** () ## Player -- **Player(int, String)** +- *Player* ( *int*, *String* ) -- **int getID()** -- **String getDisplayName()** -- **int getStars()** -- **int addToStars(int)** -- **int removeFromStars(int)** -- **int setStars(int)** -- **boolean cnaStarsRemoved(int)** +- *int* getID () +- *String* **getDisplayName** () +- *int* **getStars** () +- *int* **addToStars** ( *int* ) +- *int* **removeFromStars** ( *int* ) +- *int* **setStars** ( *int* ) +- *boolean* **canStarsRemoved**( *int* ) -- **int[] getStatistics()** -- **gotProvince()** -- **lostProvince()** -- **gotEntities(int)** -- **lostEntity()** +- *int[]* **getStatistics** () +- *void* **gotProvince** () +- *void* **lostProvince** () +- *void* **gotEntities** ( *int* ) +- *void* **lostEntity** () -- **boolean[] getMyProvinces()** -- **int getProvinceCount()** -- **redrawPlayer()** +- *boolean[]* **getMyProvinces** () +- *int* **getProvinceCount** () +- *void* **redrawPlayer** () ## Dice -- **Dice()** +- *Dice* () -- **int getNumber()** +- *int* **getNumber** () -- **int roll()** +- *int* **roll** () ## GUI_Interface -*Noch unvollständig* +- *int* **getWidth** () +- *int* **getHeight** () +- *void* **setSize** ( *int*, *int* ) + +- *System.awt.Color* **getBackColor** () +- *boolean* **setBackColor** ( *System.awt.Color* ) +- *System.awt.Color* **getForeColor** () +- *boolean* **setForeColor** ( *System.awt.Color* ) + +- abstract *void* **redraw** () + +## Label (erweitert GUI_Interface) + +- *Label* ( *String*, *int* ) + +- *boolean* **getAutoSize** () +- *boolean* **setAutoSize** ( *boolean* ) + +- *int* **getTextSize** () +- *boolean* **setTextSize** ( *int* ) + +- *String* **getText** () +- *boolean* **setText** ( *String* ) + +## Button (erweitert GUI_Interface) -## Label +- *Button* ( *String*, *int* ) +- *Button* ( *ButtonEvent* ) +- *Button* ( *String*, *int*, *ButtonEvent* ) -*Noch unvollständig* +- *boolean* **getAutoSize** () +- *boolean* **setAutoSize** ( *boolean* ) -- **String getText()** -- **String setText(String)** +- *int* **getTextSize** () +- *boolean* **setTextSize** ( *int* ) -## Button +- *String* **getText** () +- *boolean* **setText** ( *String* ) -*Noch unvollständig* \ No newline at end of file +- *ButtonEvent* **getHandler** () +- *void* **setHandler** ( *ButtonEvent* ) +- *void* **removeHandler** () \ No newline at end of file From 29f8978099199dce80bf91cb1bb30ec437af1587 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Fri, 13 May 2016 15:34:50 +0200 Subject: [PATCH 16/19] =?UTF-8?q?README=20Datei=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit README Datei um einen direkten Link zur Funktionsliste erweitert. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a6c0a6d..c9e9761 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,6 @@ Genutzt wird hierfür die Umgebung von [Greenfoot](http://www.greenfoot.org/over [Link zum Architekturplan](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/architektur.md) +[Link zur Funktionsliste](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/funktionsliste.md) + **Weitere Informationen hier werden folgen.** From 7b0befac0f3f9438c36364aa975c0a2bdfe24d97 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Fri, 13 May 2016 15:37:05 +0200 Subject: [PATCH 17/19] GUI Objekte Version 0.2 Debug 2 Versionsnummern aktualisiert Beim GUI_Interface haben nun auch die protected Variablen einen Kommentar Das Label ist nun wieder in der Lage, seinen Text zu zeichnen. --- Button.java | 2 +- GUI_Interface.java | 14 +++++++++++++- Label.java | 4 ++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Button.java b/Button.java index fa7cf86..5d3fbd6 100644 --- a/Button.java +++ b/Button.java @@ -6,7 +6,7 @@ import java.awt.Color; Als Vorbild dafür hält der Button aus dem .NET-Framework für UWP-Apps dar. @author Felix Stupp - @version 11.05.2016 + @version 13.05.2016 */ public class Button extends GUI_Interface { diff --git a/GUI_Interface.java b/GUI_Interface.java index 6cd9059..9574061 100644 --- a/GUI_Interface.java +++ b/GUI_Interface.java @@ -5,13 +5,25 @@ import java.awt.Color; Oberklasse für sämtliche GUI Objekte, wie Labels und Buttons @author Felix Stupp - @version 11.05.2016 + @version 13.05.2016 */ public abstract class GUI_Interface extends Actor { + /** + Die Breite des Objektes + */ protected int sx = 1; + /** + Die Höhe des Objektes + */ protected int sy = 1; + /** + Die Hintergrundfarbe des Objektes + */ protected Color backC = Color.BLACK; + /** + Die Vordergrundfarbe (meist die Textfarbe) des Objektes + */ protected Color foreC = Color.WHITE; /** diff --git a/Label.java b/Label.java index 58786dd..d820642 100644 --- a/Label.java +++ b/Label.java @@ -5,7 +5,7 @@ import java.awt.Color; Zeigt einen Text an. @author Felix Stupp - @version 11.05.2016 + @version 13.05.2016 */ public class Label extends GUI_Interface { @@ -97,7 +97,7 @@ public class Label extends GUI_Interface { GreenfootImage all = new GreenfootImage(sx,sy); all.setColor(backC); all.fill(); - + all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); setImage(all); } } From 5ec532398fbcf3d301822458d5d53df278427f2c Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Fri, 13 May 2016 16:21:23 +0200 Subject: [PATCH 18/19] Markdown Dateien verbessert Die meisten Links sind nun als relative Links definiert, damit sie, sofern es nicht dabei steht, immer auf dem aktuellen Branch verlinken. --- README.md | 4 ++-- planung/architektur.md | 6 +++--- planung/funktionsliste.md | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index c9e9761..14a0239 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ Zweiundvierzig Dieses Projekt soll zu einem von Risiko inspiriertem Java Computer Spiel werden. Genutzt wird hierfür die Umgebung von [Greenfoot](http://www.greenfoot.org/overview) von der Universität von Kent. -[Link zum Architekturplan](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/architektur.md) +[Link zum Architekturplan auf dem aktuellen Branch](planung/architektur.md) -[Link zur Funktionsliste](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/funktionsliste.md) +[Link zur Funktionsliste auf dem aktuellen Branch](planung/funktionsliste.md) **Weitere Informationen hier werden folgen.** diff --git a/planung/architektur.md b/planung/architektur.md index 6d6451a..bb14d88 100644 --- a/planung/architektur.md +++ b/planung/architektur.md @@ -2,11 +2,11 @@ **Version: 3** -**Stand: 12.05.2016** (TT.MM.JJJJ / DD.MM.YYYY) +**Stand: 13.05.2016** (TT.MM.JJJJ / DD.MM.YYYY) -[Hier die neuste offizielle Version vom Master-Branch sehen](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/architektur.md) +[Hier die offizielle Version vom Master-Branch sehen](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/architektur.md) -[Hier zur übersichtlicheren Funktionsliste](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/funktionsliste.md) +[Hier zur übersichtlicheren Funktionsliste auf dem aktuellen Branch](funktionsliste.md) Hier ein möglicher Architekturplan von *Felix Stupp*. Dieser Plan wird regelmäßig angepasst, oben am Datum zu erkennen. diff --git a/planung/funktionsliste.md b/planung/funktionsliste.md index d19ee62..b1966bf 100644 --- a/planung/funktionsliste.md +++ b/planung/funktionsliste.md @@ -2,11 +2,11 @@ **Version: 3** -**Stand: 12.05.2016** (TT.MM.JJJJ / DD.MM.YYYY) +**Stand: 13.05.2016** (TT.MM.JJJJ / DD.MM.YYYY) -[Hier die neuste offizielle Version vom Master-Branch sehen](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/funktionsliste.md) +[Hier die offizielle Version vom Master-Branch sehen](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/funktionsliste.md) -[Hier zum gesamten Architekturplan](https://github.com/HGE-IT-Course-2016/zweiundvierzig/blob/master/planung/architektur.md) +[Hier zum gesamten Architekturplan auf dem aktuellen Branch](architektur.md) Hier einfach eine grobe Übersicht über alle Funktionen, die jede Klasse als Public / Protected besitzen soll beziehungsweise bereits besitzt. Weitere Informationen zu den Funktionen findet ihr in der Architektur oder, falls die Funktion bereits vorhanden ist, in der Dokumentation, die von Greenfoot automatisch erstellt wird (durch die InCode Dokumentation). From 799ce6c6ff6fd0cd182d868c28a33a585d566fd1 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Fri, 20 May 2016 18:21:56 +0200 Subject: [PATCH 19/19] Kleine Verbesserungen Befehle zum Zeichnen des Rands angepasst, um einen Geschwindigkeitsboost zu erhalten Kommentar zur Klasse verbessert --- Button.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Button.java b/Button.java index 5d3fbd6..d74127e 100644 --- a/Button.java +++ b/Button.java @@ -3,10 +3,10 @@ import java.awt.Color; /** Diese Klasse stellt einen Button dar. - Als Vorbild dafür hält der Button aus dem .NET-Framework für UWP-Apps dar. + Als funktionelles Vorbild dafür hält der Button aus dem .NET-Framework für UWP-Apps dar. @author Felix Stupp - @version 13.05.2016 + @version 20.05.2016 */ public class Button extends GUI_Interface { @@ -151,15 +151,15 @@ public class Button extends GUI_Interface { GreenfootImage all = new GreenfootImage(sx,sy); Color gray = new Color(133,133,133,255); Color black = new Color(0,0,0,255); + Color trans = new Color(0,0,0,0); Utils.drawInsideRectangle(all,gray,0); Utils.drawInsideRectangle(all,black,2); Utils.drawInsideRectangle(all,gray,6); Utils.drawInsideRectangle(all,black,7); - all.setColor(new Color(0,0,0,0)); - all.fillRect(0,0,1,1); - all.fillRect(sx-1,0,1,1); - all.fillRect(0,sy-1,1,1); - all.fillRect(sx-1,sy-1,1,1); + all.setColorAt(0,0,trans); + all.setColorAt(sx-1,0,trans); + all.setColorAt(0,sy-1,trans); + all.setColorAt(sx-1,sy-1,trans); all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); setImage(all); }