diff --git a/SMIMS-Game/Button.class b/SMIMS-Game/Button.class new file mode 100644 index 0000000..f94261d Binary files /dev/null and b/SMIMS-Game/Button.class differ diff --git a/SMIMS-Game/Button.ctxt b/SMIMS-Game/Button.ctxt new file mode 100644 index 0000000..faa1fc6 --- /dev/null +++ b/SMIMS-Game/Button.ctxt @@ -0,0 +1,7 @@ +#BlueJ class context +comment0.target=Button +comment0.text=\r\n\ Write\ a\ description\ of\ class\ Button\ here.\r\n\ \r\n\ @author\ (your\ name)\ \r\n\ @version\ (a\ version\ number\ or\ a\ date)\r\n +comment1.params= +comment1.target=void\ act() +comment1.text=\r\n\ Act\ -\ do\ whatever\ the\ Button\ wants\ to\ do.\ This\ method\ is\ called\ whenever\r\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\r\n +numComments=2 diff --git a/SMIMS-Game/Button.java b/SMIMS-Game/Button.java new file mode 100644 index 0000000..fb06d50 --- /dev/null +++ b/SMIMS-Game/Button.java @@ -0,0 +1,21 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class Button here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class Button extends Actor +{ + /** + * Act - do whatever the Button wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + if (Greenfoot.mousePressed(this)){ + Greenfoot.setWorld(new MyWorld()); + } + } +} diff --git a/SMIMS-Game/GameOverWorld.class b/SMIMS-Game/GameOverWorld.class index 64be4d7..efc7790 100644 Binary files a/SMIMS-Game/GameOverWorld.class and b/SMIMS-Game/GameOverWorld.class differ diff --git a/SMIMS-Game/GameOverWorld.ctxt b/SMIMS-Game/GameOverWorld.ctxt index e10a681..aabdc54 100644 --- a/SMIMS-Game/GameOverWorld.ctxt +++ b/SMIMS-Game/GameOverWorld.ctxt @@ -4,4 +4,7 @@ comment0.text=\r\n\ Write\ a\ description\ of\ class\ GameOverWorld\ here.\r\n\ comment1.params= comment1.target=GameOverWorld() comment1.text=\r\n\ Constructor\ for\ objects\ of\ class\ GameOverWorld.\r\n\ \r\n -numComments=2 +comment2.params= +comment2.target=void\ prepare() +comment2.text=\r\n\ Prepare\ the\ world\ for\ the\ start\ of\ the\ program.\r\n\ That\ is\:\ create\ the\ initial\ objects\ and\ add\ them\ to\ the\ world.\r\n +numComments=3 diff --git a/SMIMS-Game/GameOverWorld.java b/SMIMS-Game/GameOverWorld.java index 8c4621c..d597e54 100644 --- a/SMIMS-Game/GameOverWorld.java +++ b/SMIMS-Game/GameOverWorld.java @@ -16,6 +16,18 @@ public class GameOverWorld extends World public GameOverWorld() { // Create a new world with 600x400 cells with a cell size of 1x1 pixels. - super(400, 600, 1); + super(400, 600, 1); + prepare(); + } + + /** + * Prepare the world for the start of the program. + * That is: create the initial objects and add them to the world. + */ + private void prepare() + { + Button button = new Button(); + addObject(button,200,350); + button.setImage("Neustart.png"); } } diff --git a/SMIMS-Game/MyWorld.class b/SMIMS-Game/MyWorld.class index 005c0be..d73b08a 100644 Binary files a/SMIMS-Game/MyWorld.class and b/SMIMS-Game/MyWorld.class differ diff --git a/SMIMS-Game/MyWorld.java b/SMIMS-Game/MyWorld.java index cd992fd..04592df 100644 --- a/SMIMS-Game/MyWorld.java +++ b/SMIMS-Game/MyWorld.java @@ -9,6 +9,9 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) public class MyWorld extends World { int PlattformCountdown; + int timer = 200; //Zeit, bevor das erste Projektil auftaucht + //kann später noch beliebig angepasst werden + int targetTimer = 900; /** * Constructor for objects of class MyWorld. * @@ -19,6 +22,7 @@ public class MyWorld extends World super(400, 600, 1); prepare(); } + /** * Prepare the world for the start of the program. * That is: create the initial objects and add them to the world. @@ -27,7 +31,10 @@ public class MyWorld extends World { Player player = new Player(); addObject(player,302,320); + Score score = new Score(); + addObject(score, 200, 50); } + public void act() { if(PlattformCountdown==0) //Damit in regelmäßigen Abständen auf jeden Fall eine Plattform auftaucht @@ -42,7 +49,7 @@ public class MyWorld extends World } if(Greenfoot.getRandomNumber(100000)>=99900) { - addObject(new MovingPlattform(2), Greenfoot.getRandomNumber(400), 6); //Nach Rechts bewegende Plattform + addObject(new MovingPlattform(2), Greenfoot.getRandomNumber(400), 6); //Nach Rechts bewegende Plattform } if(Greenfoot.getRandomNumber(100000)>=99900) { @@ -52,6 +59,22 @@ public class MyWorld extends World { addObject(new BreakingPlattform(50), Greenfoot.getRandomNumber(400), 6); //Nach Links bewegende Plattform } + if(timer == 0){ + Projectile projectile = new Projectile(); + addObject(projectile,Greenfoot.getRandomNumber(300)+50,0); + timer = 200; //zeitlicher Abstand + } + else{ + timer = timer - 1; + } + if(targetTimer == 0){ + TargetingProjectile targetingProjectile = new TargetingProjectile(); + addObject(targetingProjectile, Greenfoot.getRandomNumber(300)+50,0); + targetTimer = 900; + } + else{ + targetTimer = targetTimer - 1; + } } } diff --git a/SMIMS-Game/Player.class b/SMIMS-Game/Player.class index 5090825..887bfb5 100644 Binary files a/SMIMS-Game/Player.class and b/SMIMS-Game/Player.class differ diff --git a/SMIMS-Game/Player.java b/SMIMS-Game/Player.java index 2abc718..1ed0bd9 100644 --- a/SMIMS-Game/Player.java +++ b/SMIMS-Game/Player.java @@ -27,6 +27,11 @@ public class Player extends Actor jump(); fall(); handlePowerUps(); + + //Check ob der Spieler am unteren Bildschirmrand ist + if (getY()+1 >= getWorld().getHeight()){ + Greenfoot.setWorld(new GameOverWorld()); + } } // Bewegung nach links und rechts @@ -53,48 +58,27 @@ public class Player extends Actor } } - // Schwerkraft - private void fall() - { - int oldY = getY(); - - verticalSpeed += gravity; - - int newY = getY() + verticalSpeed; - - setLocation(getX(), newY); - - Actor ground = getOneIntersectingObject(Ground.class); - - if (ground != null && verticalSpeed >= 0) - { - int groundTop = ground.getY() - - ground.getImage().getHeight() / 2; - - int characterBottom = getY() - + getImage().getHeight() / 2; - - // Nur landen, wenn der Spieler vorher über dem Boden war - int oldCharacterBottom = oldY - + getImage().getHeight() / 2; - - if (oldCharacterBottom <= groundTop && - characterBottom >= groundTop) - { - setLocation( - getX(), - groundTop - getImage().getHeight() / 2 - ); - + // Schwerkraft + private void fall() { + int oldY = getY(); + verticalSpeed += gravity; + int newY = getY() + verticalSpeed; + setLocation(getX(), newY); + // Alle Plattformen überprüfen, die der Spieler berührt + java.util.List platforms = getIntersectingObjects(Plattform.class); + boolean landed = false; + for (Plattform platform : platforms) { + int groundTop = platform.getY() - platform.getImage().getHeight() / 2; + int characterBottom = getY() + getImage().getHeight() / 2; + int oldCharacterBottom = oldY + getImage().getHeight() / 2; + // Prüfen, ob der Spieler von oben auf diese Plattform fällt + if (verticalSpeed >= 0 && oldCharacterBottom <= groundTop && characterBottom >= groundTop) { + setLocation( getX(), groundTop - getImage().getHeight() / 2 ); verticalSpeed = 0; - onGround = true; - } + landed = true; + break; } + } onGround = landed; } - else - { - onGround = false; - } - } public boolean collision(){ if (getIntersectingObjects(Projectile.class).size()>0) diff --git a/SMIMS-Game/Score.class b/SMIMS-Game/Score.class new file mode 100644 index 0000000..2d6ec6b Binary files /dev/null and b/SMIMS-Game/Score.class differ diff --git a/SMIMS-Game/Score.ctxt b/SMIMS-Game/Score.ctxt new file mode 100644 index 0000000..79e8783 --- /dev/null +++ b/SMIMS-Game/Score.ctxt @@ -0,0 +1,11 @@ +#BlueJ class context +comment0.target=Score +comment0.text=\r\n\ Write\ a\ description\ of\ class\ UI\ here.\r\n\ \r\n\ @author\ (your\ name)\ \r\n\ @version\ (a\ version\ number\ or\ a\ date)\r\n +comment1.params= +comment1.target=void\ act() +comment1.text=\r\n\ Act\ -\ do\ whatever\ the\ UI\ wants\ to\ do.\ This\ method\ is\ called\ whenever\r\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\r\n +comment2.params= +comment2.target=void\ draw_score() +comment3.params= +comment3.target=int\ calculate_score() +numComments=4 diff --git a/SMIMS-Game/Score.java b/SMIMS-Game/Score.java new file mode 100644 index 0000000..bec09ba --- /dev/null +++ b/SMIMS-Game/Score.java @@ -0,0 +1,29 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class UI here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class Score extends Actor +{ + int timer; + /** + * Act - do whatever the UI wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + timer++; + draw_score(); + } + + public void draw_score(){ + setImage(new GreenfootImage("Score:" + calculate_score(), 24, Color.WHITE, Color.BLACK)); + } + + public int calculate_score(){ + return timer/60; + } +} diff --git a/SMIMS-Game/StartWorld.class b/SMIMS-Game/StartWorld.class new file mode 100644 index 0000000..29fa851 Binary files /dev/null and b/SMIMS-Game/StartWorld.class differ diff --git a/SMIMS-Game/StartWorld.ctxt b/SMIMS-Game/StartWorld.ctxt new file mode 100644 index 0000000..e33c341 --- /dev/null +++ b/SMIMS-Game/StartWorld.ctxt @@ -0,0 +1,10 @@ +#BlueJ class context +comment0.target=StartWorld +comment0.text=\r\n\ Write\ a\ description\ of\ class\ StartWorld\ here.\r\n\ \r\n\ @author\ (your\ name)\ \r\n\ @version\ (a\ version\ number\ or\ a\ date)\r\n +comment1.params= +comment1.target=StartWorld() +comment1.text=\r\n\ Constructor\ for\ objects\ of\ class\ StartWorld.\r\n\ \r\n +comment2.params= +comment2.target=void\ prepare() +comment2.text=\r\n\ Prepare\ the\ world\ for\ the\ start\ of\ the\ program.\r\n\ That\ is\:\ create\ the\ initial\ objects\ and\ add\ them\ to\ the\ world.\r\n +numComments=3 diff --git a/SMIMS-Game/StartWorld.java b/SMIMS-Game/StartWorld.java new file mode 100644 index 0000000..81f454a --- /dev/null +++ b/SMIMS-Game/StartWorld.java @@ -0,0 +1,32 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class StartWorld here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class StartWorld extends World +{ + + /** + * Constructor for objects of class StartWorld. + * + */ + public StartWorld() + { + // Create a new world with 600x400 cells with a cell size of 1x1 pixels. + super(400, 600, 1); + prepare(); + } + /** + * Prepare the world for the start of the program. + * That is: create the initial objects and add them to the world. + */ + private void prepare() + { + Button button = new Button(); + addObject(button,200,350); + button.setImage("Start.png"); + } +} diff --git a/SMIMS-Game/TargetingProjectile.class b/SMIMS-Game/TargetingProjectile.class new file mode 100644 index 0000000..0a739ae Binary files /dev/null and b/SMIMS-Game/TargetingProjectile.class differ diff --git a/SMIMS-Game/TargetingProjectile.ctxt b/SMIMS-Game/TargetingProjectile.ctxt new file mode 100644 index 0000000..c5d0167 --- /dev/null +++ b/SMIMS-Game/TargetingProjectile.ctxt @@ -0,0 +1,9 @@ +#BlueJ class context +comment0.target=TargetingProjectile +comment0.text=\r\n\ Write\ a\ description\ of\ class\ TargetingProjectile\ here.\r\n\ \r\n\ @author\ (your\ name)\ \r\n\ @version\ (a\ version\ number\ or\ a\ date)\r\n +comment1.params= +comment1.target=void\ act() +comment1.text=\r\n\ Act\ -\ do\ whatever\ the\ TargetingProjectile\ wants\ to\ do.\ This\ method\ is\ called\ whenever\r\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\r\n +comment2.params= +comment2.target=void\ targetPlayer() +numComments=3 diff --git a/SMIMS-Game/TargetingProjectile.java b/SMIMS-Game/TargetingProjectile.java new file mode 100644 index 0000000..fb2b18e --- /dev/null +++ b/SMIMS-Game/TargetingProjectile.java @@ -0,0 +1,29 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class TargetingProjectile here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class TargetingProjectile extends Projectile +{ + /** + * Act - do whatever the TargetingProjectile wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + targetPlayer(); + falling(); + } + + public void targetPlayer(){ + Player player = (Player) getWorld().getObjects(Player.class).get(0); + int playerX = player.getX(); + int playerY = player.getY(); + turnTowards(playerX, playerY); + move(5); + } + +} diff --git a/SMIMS-Game/doc/StartWorld.html b/SMIMS-Game/doc/StartWorld.html new file mode 100644 index 0000000..6beddcf --- /dev/null +++ b/SMIMS-Game/doc/StartWorld.html @@ -0,0 +1,98 @@ + + + + +StartWorld + + + + + + + + + + + +
+
+
+ +
+

Klasse StartWorld

+
+
java.lang.Object +
greenfoot.World +
StartWorld
+
+
+
+
+
public class StartWorld +extends greenfoot.World
+
Write a description of class StartWorld here.
+
+
Version:
+
(a version number or a date)
+
Autor:
+
(your name)
+
+
+
+
    + +
  • +
    +

    Konstruktorübersicht

    +
    Konstruktoren
    +
    +
    Konstruktor
    +
    Beschreibung
    + +
    +
    Constructor for objects of class StartWorld.
    +
    +
    +
    +
  • + +
  • +
    +

    Methodenübersicht

    +
    +

    Von Klasse geerbte Methoden greenfoot.World

    +act, addObject, getBackground, getCellSize, getColorAt, getHeight, getObjects, getObjectsAt, getWidth, numberOfObjects, removeObject, removeObjects, repaint, setActOrder, setBackground, setBackground, setPaintOrder, showText, started, stopped
    +
    +

    Von Klasse geerbte Methoden java.lang.Object

    +clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      StartWorld

      +
      public StartWorld()
      +
      Constructor for objects of class StartWorld.
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/SMIMS-Game/doc/copy.svg b/SMIMS-Game/doc/copy.svg new file mode 100644 index 0000000..7c46ab1 --- /dev/null +++ b/SMIMS-Game/doc/copy.svg @@ -0,0 +1,33 @@ + + + + + + + + diff --git a/SMIMS-Game/doc/element-list b/SMIMS-Game/doc/element-list new file mode 100644 index 0000000..7e55e3f --- /dev/null +++ b/SMIMS-Game/doc/element-list @@ -0,0 +1 @@ +Unbenanntes Package diff --git a/SMIMS-Game/doc/index.html b/SMIMS-Game/doc/index.html new file mode 100644 index 0000000..0dddb70 --- /dev/null +++ b/SMIMS-Game/doc/index.html @@ -0,0 +1,26 @@ + + + + +Generierte Dokumentation (unbenannt) + + + + + + + + + + + +
+ +

package-summary.html

+
+ + diff --git a/SMIMS-Game/doc/legal/ADDITIONAL_LICENSE_INFO b/SMIMS-Game/doc/legal/ADDITIONAL_LICENSE_INFO new file mode 100644 index 0000000..b62cc3e --- /dev/null +++ b/SMIMS-Game/doc/legal/ADDITIONAL_LICENSE_INFO @@ -0,0 +1 @@ +Please see ..\java.base\ADDITIONAL_LICENSE_INFO diff --git a/SMIMS-Game/doc/legal/ASSEMBLY_EXCEPTION b/SMIMS-Game/doc/legal/ASSEMBLY_EXCEPTION new file mode 100644 index 0000000..0d4cfb4 --- /dev/null +++ b/SMIMS-Game/doc/legal/ASSEMBLY_EXCEPTION @@ -0,0 +1 @@ +Please see ..\java.base\ASSEMBLY_EXCEPTION diff --git a/SMIMS-Game/doc/legal/LICENSE b/SMIMS-Game/doc/legal/LICENSE new file mode 100644 index 0000000..4ad9fe4 --- /dev/null +++ b/SMIMS-Game/doc/legal/LICENSE @@ -0,0 +1 @@ +Please see ..\java.base\LICENSE diff --git a/SMIMS-Game/doc/link.svg b/SMIMS-Game/doc/link.svg new file mode 100644 index 0000000..7ccc5ed --- /dev/null +++ b/SMIMS-Game/doc/link.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/SMIMS-Game/doc/logfile.txt b/SMIMS-Game/doc/logfile.txt new file mode 100644 index 0000000..5b07d5f --- /dev/null +++ b/SMIMS-Game/doc/logfile.txt @@ -0,0 +1,35 @@ +Class documentation +<---- javadoc command: ----> +C:\Program Files\Greenfoot\jdk\bin\javadoc.exe +-author +-version +-nodeprecated +-protected +-Xdoclint:none +-noindex +-notree +-nohelp +-nonavbar +-source +21 +-classpath +C:\Program Files\Greenfoot\lib\greenfoot.jar;C:\Program Files\Greenfoot\lib\javafx-base-21.0.3-win.jar;C:\Program Files\Greenfoot\lib\javafx-controls-21.0.3-win.jar;C:\Program Files\Greenfoot\lib\javafx-fxml-21.0.3-win.jar;C:\Program Files\Greenfoot\lib\javafx-graphics-21.0.3-win.jar;C:\Program Files\Greenfoot\lib\javafx-media-21.0.3-win.jar;C:\Program Files\Greenfoot\lib\javafx-swing-21.0.3-win.jar;C:\Program Files\Greenfoot\lib\javafx-web-21.0.3-win.jar;C:\Program Files\Greenfoot\lib\junit-4.12.jar;C:\Program Files\Greenfoot\lib\junit-jupiter-5.5.2.jar;C:\Program Files\Greenfoot\lib\junit-jupiter-api-5.5.2.jar;C:\Program Files\Greenfoot\lib\junit-jupiter-engine-5.5.2.jar;C:\Program Files\Greenfoot\lib\junit-jupiter-params-5.5.2.jar;C:\Program Files\Greenfoot\lib\junit-platform-commons-1.5.2.jar;C:\Program Files\Greenfoot\lib\junit-platform-engine-1.5.2.jar;C:\Program Files\Greenfoot\lib\junit-platform-launcher-1.5.2.jar;C:\Program Files\Greenfoot\lib\junit-platform-suite-api-1.5.2.jar;C:\Program Files\Greenfoot\lib\junit-vintage-engine-5.5.2.jar;C:\Program Files\Greenfoot\lib\hamcrest-core-1.3.jar;C:\Program Files\Greenfoot\lib\opentest4j-1.2.0.jar;C:\Program Files\Greenfoot\lib\bluej.jar;C:\Program Files\Greenfoot\lib\classgraph-4.8.90.jar;C:\Program Files\Greenfoot\lib\diffutils-1.2.1.jar;C:\Program Files\Greenfoot\lib\commons-logging-1.2.jar;C:\Program Files\Greenfoot\lib\jl1.0.1.jar;C:\Program Files\Greenfoot\lib\opencsv-2.3.jar;C:\Program Files\Greenfoot\lib\opencsv-2.4.jar;C:\Program Files\Greenfoot\lib\xom-1.3.9.jar;C:\Program Files\Greenfoot\lib\lang-stride.jar;C:\Program Files\Greenfoot\lib\nsmenufx-3.1.0.jar;C:\Program Files\Greenfoot\lib\wellbehavedfx-0.3.3.jar;C:\Program Files\Greenfoot\lib\guava-33.3.1-jre.jar;C:\Program Files\Greenfoot\lib\failureaccess-1.0.2.jar;C:\Program Files\Greenfoot\lib\simple-png-0.2.0.jar;C:\Program Files\Greenfoot\lib\simple-png-javafx-0.2.0.jar;C:\Program Files\Greenfoot\lib\httpclient-4.5.13.jar;C:\Program Files\Greenfoot\lib\httpcore-4.4.13.jar;C:\Program Files\Greenfoot\lib\httpmime-4.1.1.jar;C:\Program Files\Greenfoot\lib\javafx\javafx.base.jar;C:\Program Files\Greenfoot\lib\javafx\javafx.controls.jar;C:\Program Files\Greenfoot\lib\javafx\javafx.fxml.jar;C:\Program Files\Greenfoot\lib\javafx\javafx.graphics.jar;C:\Program Files\Greenfoot\lib\javafx\javafx.media.jar;C:\Program Files\Greenfoot\lib\javafx\javafx.properties.jar;C:\Program Files\Greenfoot\lib\javafx\javafx.swing.jar;C:\Program Files\Greenfoot\lib\javafx\javafx.web.jar;C:\Users\Marlie\Documents\Workspace\SMIMS_2026_2\SMIMS-Game +-d +C:\Users\Marlie\Documents\Workspace\SMIMS_2026_2\SMIMS-Game\doc +-encoding +UTF-8 +-charset +UTF-8 +C:\Users\Marlie\Documents\Workspace\SMIMS_2026_2\SMIMS-Game\StartWorld.java +<---- end of javadoc command ----> +Quelldatei C:\Users\Marlie\Documents\Workspace\SMIMS_2026_2\SMIMS-Game\StartWorld.java wird geladen... +Javadoc-Informationen werden erstellt... +Warnung: Unbekannte Enum-Konstante Tag.Any + Grund: Klassendatei für threadchecker.Tag nicht gefunden +Warnung: Unbekannte Enum-Konstante Tag.Any +Standard-Doclet-Version 21.0.4+7-LTS +Baum für alle Packages und Klassen wird erstellt... +C:\Users\Marlie\Documents\Workspace\SMIMS_2026_2\SMIMS-Game\doc\StartWorld.html wird generiert... +C:\Users\Marlie\Documents\Workspace\SMIMS_2026_2\SMIMS-Game\doc\package-summary.html wird generiert... +C:\Users\Marlie\Documents\Workspace\SMIMS_2026_2\SMIMS-Game\doc\index.html wird generiert... +2 Warnungen diff --git a/SMIMS-Game/doc/package-summary.html b/SMIMS-Game/doc/package-summary.html new file mode 100644 index 0000000..240d066 --- /dev/null +++ b/SMIMS-Game/doc/package-summary.html @@ -0,0 +1,47 @@ + + + + +Unbenanntes Package + + + + + + + + + + + +
+
+
+
+

Unbenanntes Package

+
+
+
+
    +
  • +
    +
    Klassen
    +
    +
    Klasse
    +
    Beschreibung
    + +
    +
    Write a description of class StartWorld here.
    +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/SMIMS-Game/doc/script.js b/SMIMS-Game/doc/script.js new file mode 100644 index 0000000..bb9c8a2 --- /dev/null +++ b/SMIMS-Game/doc/script.js @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; + +var oddRowColor = "odd-row-color"; +var evenRowColor = "even-row-color"; +var sortAsc = "sort-asc"; +var sortDesc = "sort-desc"; +var tableTab = "table-tab"; +var activeTableTab = "active-table-tab"; + +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +// Helper for making content containing release names comparable lexicographically +function makeComparable(s) { + return s.toLowerCase().replace(/(\d+)/g, + function(n, m) { + return ("000" + m).slice(-4); + }); +} + +// Switches between two styles depending on a condition +function toggleStyle(classList, condition, trueStyle, falseStyle) { + if (condition) { + classList.remove(falseStyle); + classList.add(trueStyle); + } else { + classList.remove(trueStyle); + classList.add(falseStyle); + } +} + +// Sorts the rows in a table lexicographically by the content of a specific column +function sortTable(header, columnIndex, columns) { + var container = header.parentElement; + var descending = header.classList.contains(sortAsc); + container.querySelectorAll("div.table-header").forEach( + function(header) { + header.classList.remove(sortAsc); + header.classList.remove(sortDesc); + } + ) + var cells = container.children; + var rows = []; + for (var i = columns; i < cells.length; i += columns) { + rows.push(Array.prototype.slice.call(cells, i, i + columns)); + } + var comparator = function(a, b) { + var ka = makeComparable(a[columnIndex].textContent); + var kb = makeComparable(b[columnIndex].textContent); + if (ka < kb) + return descending ? 1 : -1; + if (ka > kb) + return descending ? -1 : 1; + return 0; + }; + var sorted = rows.sort(comparator); + var visible = 0; + sorted.forEach(function(row) { + if (row[0].style.display !== 'none') { + var isEvenRow = visible++ % 2 === 0; + } + row.forEach(function(cell) { + toggleStyle(cell.classList, isEvenRow, evenRowColor, oddRowColor); + container.appendChild(cell); + }) + }); + toggleStyle(header.classList, descending, sortDesc, sortAsc); +} + +// Toggles the visibility of a table category in all tables in a page +function toggleGlobal(checkbox, selected, columns) { + var display = checkbox.checked ? '' : 'none'; + document.querySelectorAll("div.table-tabs").forEach(function(t) { + var id = t.parentElement.getAttribute("id"); + var selectedClass = id + "-tab" + selected; + // if selected is empty string it selects all uncategorized entries + var selectUncategorized = !Boolean(selected); + var visible = 0; + document.querySelectorAll('div.' + id) + .forEach(function(elem) { + if (selectUncategorized) { + if (elem.className.indexOf(selectedClass) === -1) { + elem.style.display = display; + } + } else if (elem.classList.contains(selectedClass)) { + elem.style.display = display; + } + if (elem.style.display === '') { + var isEvenRow = visible++ % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + } + }); + var displaySection = visible === 0 ? 'none' : ''; + t.parentElement.style.display = displaySection; + document.querySelector("li#contents-" + id).style.display = displaySection; + }) +} + +// Shows the elements of a table belonging to a specific category +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.getElementById(tableId + '.tabpanel') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} +// Copy the contents of the local snippet to the clipboard +function copySnippet(button) { + copyToClipboard(button.nextElementSibling.innerText); + switchCopyLabel(button, button.firstElementChild); +} +function copyToClipboard(content) { + var textarea = document.createElement("textarea"); + textarea.style.height = 0; + document.body.appendChild(textarea); + textarea.value = content; + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); +} +function switchCopyLabel(button, span) { + var copied = span.getAttribute("data-copied"); + button.classList.add("visible"); + var initialLabel = span.innerHTML; + span.innerHTML = copied; + setTimeout(function() { + button.classList.remove("visible"); + setTimeout(function() { + if (initialLabel !== copied) { + span.innerHTML = initialLabel; + } + }, 100); + }, 1900); +} +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + var timeoutId; + contentDiv.addEventListener("scroll", function(e) { + if (timeoutId) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + }, 100); + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); diff --git a/SMIMS-Game/doc/stylesheet.css b/SMIMS-Game/doc/stylesheet.css new file mode 100644 index 0000000..f71489f --- /dev/null +++ b/SMIMS-Game/doc/stylesheet.css @@ -0,0 +1,1272 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * These CSS custom properties (variables) define the core color and font + * properties used in this stylesheet. + */ +:root { + /* body, block and code fonts */ + --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + --code-font-family: 'DejaVu Sans Mono', monospace; + /* Base font sizes for body and code elements */ + --body-font-size: 14px; + --code-font-size: 14px; + /* Text colors for body and block elements */ + --body-text-color: #353833; + --block-text-color: #474747; + /* Background colors for various structural elements */ + --body-background-color: #ffffff; + --section-background-color: #f8f8f8; + --detail-background-color: #ffffff; + /* Colors for navigation bar and table captions */ + --navbar-background-color: #4D7A97; + --navbar-text-color: #ffffff; + /* Background color for subnavigation and various headers */ + --subnav-background-color: #dee3e9; + /* Background and text colors for selected tabs and navigation items */ + --selected-background-color: #f8981d; + --selected-text-color: #253441; + --selected-link-color: #1f389c; + /* Background colors for generated tables */ + --even-row-color: #ffffff; + --odd-row-color: #eeeeef; + /* Text color for page title */ + --title-color: #2c4557; + /* Text colors for links */ + --link-color: #4A6782; + --link-color-active: #bb7a2a; + /* Snippet colors */ + --snippet-background-color: #ebecee; + --snippet-text-color: var(--block-text-color); + --snippet-highlight-color: #f7c590; + /* Border colors for structural elements and user defined tables */ + --border-color: #ededed; + --table-border-color: #000000; + /* Search input colors */ + --search-input-background-color: #ffffff; + --search-input-text-color: #000000; + --search-input-placeholder-color: #909090; + /* Highlight color for active search tag target */ + --search-tag-highlight-color: #ffff00; + /* Adjustments for icon and active background colors of copy-to-clipboard buttons */ + --copy-icon-brightness: 100%; + --copy-button-background-color-active: rgba(168, 168, 176, 0.3); + /* Colors for invalid tag notifications */ + --invalid-tag-background-color: #ffe6e6; + --invalid-tag-text-color: #000000; +} +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ +body { + background-color:var(--body-background-color); + color:var(--body-text-color); + font-family:var(--body-font-family); + font-size:var(--body-font-size); + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:var(--link-color); +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:var(--link-color-active); +} +pre { + font-family:var(--code-font-family); + font-size:1em; +} +h1 { + font-size:1.428em; +} +h2 { + font-size:1.285em; +} +h3 { + font-size:1.14em; +} +h4 { + font-size:1.072em; +} +h5 { + font-size:1.001em; +} +h6 { + font-size:0.93em; +} +/* Disable font boosting for selected elements */ +h1, h2, h3, h4, h5, h6, div.member-signature { + max-height: 1000em; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:var(--code-font-family); +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:var(--code-font-size); + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:var(--code-font-family); + font-size:1em; + padding-top:4px; +} +.summary-table dt code { + font-family:var(--code-font-family); + font-size:1em; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: var(--body-font-family); + font-size: 1em; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:0.915em; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +/* + * Styles for navigation bar. + */ +@media screen { + div.flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + header.flex-header { + flex: 0 0 auto; + } + div.flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + float:left; + width:100%; + clear:right; + min-height:2.8em; + padding:10px 0 0 0; + overflow:hidden; + font-size:0.857em; +} +button#navbar-toggle-button { + display:none; +} +ul.sub-nav-list-small { + display: none; +} +.sub-nav { + background-color:var(--subnav-background-color); + float:left; + width:100%; + overflow:hidden; + font-size:0.857em; +} +.sub-nav div { + clear:left; + float:left; + padding:6px; + text-transform:uppercase; +} +.sub-nav .sub-nav-list { + padding-top:4px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0; + padding:6px; + clear:none; + text-align:right; + position:relative; +} +ul.sub-nav-list li { + list-style:none; + float:left; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:var(--navbar-text-color); + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + color:var(--link-color-active); +} +.nav-bar-cell1-rev { + background-color:var(--selected-background-color); + color:var(--selected-text-color); + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header. + */ +.title { + color:var(--title-color); + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +ul.contents-list { + margin: 0 0 15px 0; + padding: 0; + list-style: none; +} +ul.contents-list li { + font-size:0.93em; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:var(--subnav-background-color); + border:1px solid var(--border-color); + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: var(--body-font-family); + font-size:0.856em; + font-weight:bold; + margin:10px 0 0 0; + color:var(--body-text-color); +} +dl.notes > dd { + margin:5px 10px 10px 0; + font-size:1em; + font-family:var(--block-font-family) +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.ref-list { + padding:0; + margin:0; +} +ul.ref-list > li { + list-style:none; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +ul.tag-list, ul.tag-list-long { + padding-left: 0; + list-style: none; +} +ul.tag-list li { + display: inline; +} +ul.tag-list li:not(:last-child):after, +ul.tag-list-long li:not(:last-child):after +{ + content: ", "; + white-space: pre-wrap; +} +ul.preview-feature-list { + list-style: none; + margin:0; + padding:0.1em; + line-height: 1.6em; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border:1px solid var(--border-color); + border-top:0; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:var(--selected-text-color); + clear:none; + overflow:hidden; + padding: 10px 0 0 1px; + margin:0; +} +.caption a:link, .caption a:visited { + color:var(--selected-link-color); +} +.caption a:hover, +.caption a:active { + color:var(--navbar-text-color); +} +.caption span { + font-weight:bold; + white-space:nowrap; + padding:5px 12px 7px 12px; + display:inline-block; + float:left; + background-color:var(--selected-background-color); + border: none; + height:16px; +} +div.table-tabs { + padding:10px 0 0 1px; + margin:10px 0 0 0; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 8px; +} +div.table-tabs > .active-table-tab { + background: var(--selected-background-color); + color: var(--selected-text-color); +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.two-column-search-results { + display: grid; + grid-template-columns: minmax(400px, max-content) minmax(400px, auto); +} +div.checkboxes { + line-height: 2em; +} +div.checkboxes > span { + margin-left: 10px; +} +div.checkboxes > label { + margin-left: 8px; + white-space: nowrap; +} +div.checkboxes > label > input { + margin: 0 2px; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(25%, max-content) minmax(25%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); +} +.three-column-release-summary { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +@media screen and (max-width: 800px) { + .two-column-search-results { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); + } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-release-summary { + display: grid; + grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) + } + .three-column-summary .col-last, + .three-column-release-summary .col-last{ + grid-column-end: span 2; + } +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; + overflow-x: auto; + scrollbar-width: thin; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:var(--subnav-background-color); + font-weight: bold; +} +/* Sortable table columns */ +.table-header[onclick] { + cursor: pointer; +} +.table-header[onclick]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + '); + background-size:100% 100%; + width:9px; + height:14px; + margin-left:4px; + margin-bottom:-3px; +} +.table-header[onclick].sort-asc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + +} +.table-header[onclick].sort-desc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +.col-first, .col-first { + font-size:0.93em; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:0.93em; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited { + font-weight:bold; +} +.even-row-color, .even-row-color .table-header { + background-color:var(--even-row-color); +} +.odd-row-color, .odd-row-color .table-header { + background-color:var(--odd-row-color); +} +/* + * Styles for contents. + */ +div.block { + font-size:var(--body-font-size); + font-family:var(--block-font-family); +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:var(--code-font-family); + font-size:1em; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + /* Color of line numbers in source pages can be set via custom property below */ + color:var(--source-linenumber-color, green); + padding:0 30px 0 0; +} +.block { + display:block; + margin:0 10px 5px 0; + color:var(--block-text-color); +} +.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; +} +.deprecation-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.preview-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +details.invalid-tag, span.invalid-tag { + font-size:1em; + font-family:var(--block-font-family); + color: var(--invalid-tag-text-color); + background: var(--invalid-tag-background-color); + border: thin solid var(--table-border-color); + border-radius:2px; + padding: 2px 4px; + display:inline-block; +} +details summary { + cursor: pointer; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-state-active { + /* Overrides the color of selection used in jQuery UI */ + background: var(--selected-background-color); + border: 1px solid var(--selected-background-color); + color: var(--selected-text-color); +} +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:auto; + overflow-x:auto; + scrollbar-width: thin; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:1; + background-color: var(--body-background-color); +} +ul.ui-autocomplete li { + float:left; + clear:both; + min-width:100%; +} +ul.ui-autocomplete li.ui-static-link { + position:sticky; + bottom:0; + left:0; + background: var(--subnav-background-color); + padding: 5px 0; + font-family: var(--body-font-family); + font-size: 0.93em; + font-weight: bolder; + z-index: 2; +} +li.ui-static-link a, li.ui-static-link a:visited { + text-decoration:none; + color:var(--link-color); + float:right; + margin-right:20px; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +.ui-autocomplete .result-highlight { + font-weight:bold; +} +#search-input, #page-search-input { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + background-color: var(--search-input-background-color); + color: var(--search-input-text-color); + border-color: var(--border-color); + padding-left:20px; + width: 250px; + margin: 0; +} +#search-input { + margin-left: 4px; +} +#reset-button { + background-color: transparent; + background-image:url('resources/x.png'); + background-repeat:no-repeat; + background-size:contain; + border:0; + border-radius:0; + width:12px; + height:12px; + position:absolute; + right:12px; + top:10px; + font-size:0; +} +::placeholder { + color:var(--search-input-placeholder-color); + opacity: 1; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:var(--search-tag-highlight-color); +} +details.page-search-details { + display: inline-block; +} +div#result-container { + font-size: 1em; +} +div#result-container a.search-result-link { + padding: 0; + margin: 4px 0; + width: 100%; +} +#result-container .result-highlight { + font-weight:bolder; +} +.page-search-info { + background-color: var(--subnav-background-color); + border-radius: 3px; + border: 0 solid var(--border-color); + padding: 0 8px; + overflow: hidden; + height: 0; + transition: all 0.2s ease; +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.page-search-header { + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + display: inline-block; +} +button.page-search-header { + border: none; + cursor: pointer; +} +span#page-search-link { + text-decoration: underline; +} +.module-graph span, .sealed-graph span { + display:none; + position:absolute; +} +.module-graph:hover span, .sealed-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0 20px 5px 10px; + border: 1px solid var(--border-color); + background-color: var(--section-background-color); +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:var(--detail-background-color); + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +/* + * Styles for header/section anchor links + */ +a.anchor-link { + opacity: 0; + transition: opacity 0.1s; +} +:hover > a.anchor-link { + opacity: 80%; +} +a.anchor-link:hover, +a.anchor-link:focus-visible, +a.anchor-link.visible { + opacity: 100%; +} +a.anchor-link > img { + width: 0.9em; + height: 0.9em; +} +/* + * Styles for copy-to-clipboard buttons + */ +button.copy { + opacity: 70%; + border: none; + border-radius: 3px; + position: relative; + background:none; + transition: opacity 0.3s; + cursor: pointer; +} +:hover > button.copy { + opacity: 80%; +} +button.copy:hover, +button.copy:active, +button.copy:focus-visible, +button.copy.visible { + opacity: 100%; +} +button.copy img { + position: relative; + background: none; + filter: brightness(var(--copy-icon-brightness)); +} +button.copy:active { + background-color: var(--copy-button-background-color-active); +} +button.copy span { + color: var(--body-text-color); + position: relative; + top: -0.1em; + transition: all 0.1s; + font-size: 0.76rem; + line-height: 1.2em; + opacity: 0; +} +button.copy:hover span, +button.copy:focus-visible span, +button.copy.visible span { + opacity: 100%; +} +/* search page copy button */ +button#page-search-copy { + margin-left: 0.4em; + padding:0.3em; + top:0.13em; +} +button#page-search-copy img { + width: 1.2em; + height: 1.2em; + padding: 0.01em 0; + top: 0.15em; +} +button#page-search-copy span { + color: var(--body-text-color); + line-height: 1.2em; + padding: 0.2em; + top: -0.18em; +} +div.page-search-info:hover button#page-search-copy span { + opacity: 100%; +} +/* snippet copy button */ +button.snippet-copy { + position: absolute; + top: 6px; + right: 6px; + height: 1.7em; + padding: 2px; +} +button.snippet-copy img { + width: 18px; + height: 18px; + padding: 0.05em 0; +} +button.snippet-copy span { + line-height: 1.2em; + padding: 0.2em; + position: relative; + top: -0.5em; +} +div.snippet-container:hover button.snippet-copy span { + opacity: 100%; +} +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.striped > thead { + background-color: var(--subnav-background-color); +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped > tbody > tr:nth-child(even) { + background-color: var(--odd-row-color) +} +table.striped > tbody > tr:nth-child(odd) { + background-color: var(--even-row-color) +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid var(--table-border-color); + border-right: 1px solid var(--table-border-color); +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak style for small screens. + */ +@media screen and (max-width: 920px) { + header.flex-header { + max-height: 100vh; + overflow-y: auto; + } + div#navbar-top { + height: 2.8em; + transition: height 0.35s ease; + } + ul.nav-list { + display: block; + width: 40%; + float:left; + clear: left; + margin: 10px 0 0 0; + padding: 0; + } + ul.nav-list li { + float: none; + padding: 6px; + margin-left: 10px; + margin-top: 2px; + } + ul.sub-nav-list-small { + display:block; + height: 100%; + width: 50%; + float: right; + clear: right; + background-color: var(--subnav-background-color); + color: var(--body-text-color); + margin: 6px 0 0 0; + padding: 0; + } + ul.sub-nav-list-small ul { + padding-left: 20px; + } + ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited { + color:var(--link-color); + } + ul.sub-nav-list-small a:hover { + color:var(--link-color-active); + } + ul.sub-nav-list-small li { + list-style:none; + float:none; + padding: 6px; + margin-top: 1px; + text-transform:uppercase; + } + ul.sub-nav-list-small > li { + margin-left: 10px; + } + ul.sub-nav-list-small li p { + margin: 5px 0; + } + div#navbar-sub-list { + display: none; + } + .top-nav a:link, .top-nav a:active, .top-nav a:visited { + display: block; + } + button#navbar-toggle-button { + width: 3.4em; + height: 2.8em; + background-color: transparent; + display: block; + float: left; + border: 0; + margin: 0 10px; + cursor: pointer; + font-size: 10px; + } + button#navbar-toggle-button .nav-bar-toggle-icon { + display: block; + width: 24px; + height: 3px; + margin: 1px 0 4px 0; + border-radius: 2px; + transition: all 0.1s; + background-color: var(--navbar-text-color); + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { + transform: rotate(45deg); + transform-origin: 10% 10%; + width: 26px; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { + opacity: 0; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { + transform: rotate(-45deg); + transform-origin: 10% 90%; + width: 26px; + } +} +@media screen and (max-width: 800px) { + .about-language { + padding-right: 16px; + } + ul.nav-list li { + margin-left: 5px; + } + ul.sub-nav-list-small > li { + margin-left: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 400px) { + .about-language { + font-size: 10px; + padding-right: 12px; + } +} +@media screen and (max-width: 400px) { + .nav-list-search { + width: 94%; + } + #search-input, #page-search-input { + width: 70%; + } +} +@media screen and (max-width: 320px) { + .nav-list-search > label { + display: none; + } + .nav-list-search { + width: 90%; + } + #search-input, #page-search-input { + width: 80%; + } +} + +pre.snippet { + background-color: var(--snippet-background-color); + color: var(--snippet-text-color); + padding: 10px; + margin: 12px 0; + overflow: auto; + white-space: pre; +} +div.snippet-container { + position: relative; +} +@media screen and (max-width: 800px) { + pre.snippet { + padding-top: 26px; + } + button.snippet-copy { + top: 4px; + right: 4px; + } +} +pre.snippet .italic { + font-style: italic; +} +pre.snippet .bold { + font-weight: bold; +} +pre.snippet .highlighted { + background-color: var(--snippet-highlight-color); + border-radius: 10%; +} diff --git a/SMIMS-Game/images/Background.png b/SMIMS-Game/images/Background.png new file mode 100644 index 0000000..b564308 Binary files /dev/null and b/SMIMS-Game/images/Background.png differ diff --git a/SMIMS-Game/images/GameBackground.png b/SMIMS-Game/images/GameBackground.png new file mode 100644 index 0000000..602af0a Binary files /dev/null and b/SMIMS-Game/images/GameBackground.png differ diff --git a/SMIMS-Game/images/GameOverBackground.png b/SMIMS-Game/images/GameOverBackground.png new file mode 100644 index 0000000..d743309 Binary files /dev/null and b/SMIMS-Game/images/GameOverBackground.png differ diff --git a/SMIMS-Game/images/Neustart.png b/SMIMS-Game/images/Neustart.png new file mode 100644 index 0000000..26e2b95 Binary files /dev/null and b/SMIMS-Game/images/Neustart.png differ diff --git a/SMIMS-Game/images/Start.png b/SMIMS-Game/images/Start.png new file mode 100644 index 0000000..1928fd2 Binary files /dev/null and b/SMIMS-Game/images/Start.png differ diff --git a/SMIMS-Game/images/StartBackground.png b/SMIMS-Game/images/StartBackground.png new file mode 100644 index 0000000..34bdc9b Binary files /dev/null and b/SMIMS-Game/images/StartBackground.png differ diff --git a/SMIMS-Game/images/blue-draught.png b/SMIMS-Game/images/blue-draught.png new file mode 100644 index 0000000..a3ceb9a Binary files /dev/null and b/SMIMS-Game/images/blue-draught.png differ diff --git a/SMIMS-Game/images/button-red.png b/SMIMS-Game/images/button-red.png new file mode 100644 index 0000000..4720338 Binary files /dev/null and b/SMIMS-Game/images/button-red.png differ diff --git a/SMIMS-Game/images/wet-blue.jpg b/SMIMS-Game/images/wet-blue.jpg new file mode 100644 index 0000000..dee45fa Binary files /dev/null and b/SMIMS-Game/images/wet-blue.jpg differ diff --git a/SMIMS-Game/project.greenfoot b/SMIMS-Game/project.greenfoot index 031640b..f079710 100644 --- a/SMIMS-Game/project.greenfoot +++ b/SMIMS-Game/project.greenfoot @@ -1,79 +1,25 @@ #Greenfoot project file -class.BreakingPlattform.image=Unbenannt2.png class.Ground.image=weave.jpg -class.MovingPlattform.image=Unbenannt.png -class.Plattform.image=Plattform.png class.Player.image=ppl2.png -class.Spike.image=Spike.png -class.SpikedPlattform.image=Unbenannt.png -class.UnactiveSpike.image=SpikeUnactive.png dependency1.from=PlayerTestWorld dependency1.to=Ground dependency1.type=UsesDependency -dependency10.from=Player -dependency10.to=GameOverWorld -dependency10.type=UsesDependency -dependency11.from=Player -dependency11.to=Ground -dependency11.type=UsesDependency -dependency12.from=Player -dependency12.to=Projectile -dependency12.type=UsesDependency -dependency13.from=Plattform -dependency13.to=MyWorld -dependency13.type=UsesDependency -dependency14.from=Plattform -dependency14.to=Player -dependency14.type=UsesDependency -dependency15.from=MovingPlattform -dependency15.to=MyWorld -dependency15.type=UsesDependency -dependency16.from=SpikedPlattform -dependency16.to=Spike -dependency16.type=UsesDependency -dependency17.from=SpikedPlattform -dependency17.to=GameOverWorld -dependency17.type=UsesDependency -dependency18.from=SpikedPlattform -dependency18.to=MyWorld -dependency18.type=UsesDependency -dependency19.from=PowerUps -dependency19.to=Player -dependency19.type=UsesDependency dependency2.from=PlayerTestWorld dependency2.to=Player dependency2.type=UsesDependency -dependency20.from=JumpBoostItem -dependency20.to=Player -dependency20.type=UsesDependency -dependency3.from=PlayerTestWorld -dependency3.to=JumpBoostItem +dependency3.from=MyWorld +dependency3.to=Player dependency3.type=UsesDependency -dependency4.from=MyWorld -dependency4.to=Player +dependency4.from=Player +dependency4.to=Ground dependency4.type=UsesDependency -dependency5.from=MyWorld -dependency5.to=Plattform -dependency5.type=UsesDependency -dependency6.from=MyWorld -dependency6.to=MovingPlattform -dependency6.type=UsesDependency -dependency7.from=MyWorld -dependency7.to=BreakingPlattform -dependency7.type=UsesDependency -dependency8.from=Spike -dependency8.to=GameOverWorld -dependency8.type=UsesDependency -dependency9.from=Spike -dependency9.to=Player -dependency9.type=UsesDependency -editor.fx.0.height=810 -editor.fx.0.width=816 -editor.fx.0.x=647 -editor.fx.0.y=172 -height=736 -package.numDependencies=20 -package.numTargets=14 +editor.fx.0.height=737 +editor.fx.0.width=814 +editor.fx.0.x=360 +editor.fx.0.y=26 +height=830 +package.numDependencies=4 +package.numTargets=4 project.charset=UTF-8 publish.hasSource=false publish.locked=true @@ -89,105 +35,35 @@ readme.x=10 readme.y=10 simulation.speed=50 target1.height=70 -target1.name=Spike +target1.name=Player target1.showInterface=false target1.type=ClassTarget target1.width=120 target1.x=0 target1.y=0 -target10.height=70 -target10.name=Plattform -target10.showInterface=false -target10.type=ClassTarget -target10.width=120 -target10.x=0 -target10.y=0 -target11.height=70 -target11.name=Projectile -target11.showInterface=false -target11.type=ClassTarget -target11.width=120 -target11.x=0 -target11.y=0 -target12.height=70 -target12.name=PowerUps -target12.showInterface=false -target12.type=ClassTarget -target12.width=120 -target12.x=0 -target12.y=0 -target13.height=70 -target13.name=SpikedPlattform -target13.showInterface=false -target13.type=ClassTarget -target13.width=120 -target13.x=0 -target13.y=0 -target14.height=70 -target14.name=MyWorld -target14.showInterface=false -target14.type=ClassTarget -target14.width=120 -target14.x=0 -target14.y=0 target2.height=70 -target2.name=Player +target2.name=Ground target2.showInterface=false target2.type=ClassTarget target2.width=120 target2.x=0 target2.y=0 target3.height=70 -target3.name=MovingPlattform +target3.name=PlayerTestWorld target3.showInterface=false target3.type=ClassTarget target3.width=120 target3.x=0 target3.y=0 target4.height=70 -target4.name=Ground +target4.name=MyWorld target4.showInterface=false target4.type=ClassTarget target4.width=120 target4.x=0 target4.y=0 -target5.height=70 -target5.name=UnactiveSpike -target5.showInterface=false -target5.type=ClassTarget -target5.width=120 -target5.x=0 -target5.y=0 -target6.height=70 -target6.name=JumpBoostItem -target6.showInterface=false -target6.type=ClassTarget -target6.width=120 -target6.x=0 -target6.y=0 -target7.height=70 -target7.name=BreakingPlattform -target7.showInterface=false -target7.type=ClassTarget -target7.width=120 -target7.x=0 -target7.y=0 -target8.height=70 -target8.name=GameOverWorld -target8.showInterface=false -target8.type=ClassTarget -target8.width=120 -target8.x=0 -target8.y=0 -target9.height=70 -target9.name=PlayerTestWorld -target9.showInterface=false -target9.type=ClassTarget -target9.width=120 -target9.x=0 -target9.y=0 version=3.1.0 -width=856 -world.lastInstantiated=MyWorld -xPosition=418 -yPosition=223 +width=1550 +world.lastInstantiated=PlayerTestWorld +xPosition=0 +yPosition=0