Compare commits

..

7 Commits

Author SHA1 Message Date
Max 6b842a7b75 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	fighter/project.greenfoot
2026-09-15 19:14:59 +02:00
Max 67db7a5e48 test file 2026-09-15 19:14:23 +02:00
Max 6e7ff8d2eb - Spieler Attacke, Animation 2026-09-15 19:13:35 +02:00
Leif c4505df6ed Startscreen erstellt 2026-09-15 19:10:55 +02:00
Max a53a0a22c6 Bewegung des 1. und 2. Spielers 2026-09-15 09:49:28 +02:00
Max 48b3ce212f initial 2026-09-14 23:41:15 +02:00
Michel May 6301a9b0a6 test file deleted 2026-09-14 21:24:38 +02:00
35 changed files with 592 additions and 1 deletions
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/fighter" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
Binary file not shown.
+12
View File
@@ -0,0 +1,12 @@
#BlueJ class context
comment0.target=MyWorld
comment0.text=\r\n\ Write\ a\ description\ of\ class\ MyWorld\ here.\r\n\ \r\n\ @author\ (your\ name)\ \r\n\ @version\ (a\ version\ number\ or\ a\ date)\r\n
comment1.params=
comment1.target=MyWorld()
comment1.text=\r\n\ Constructor\ for\ objects\ of\ class\ MyWorld.\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
comment3.params=
comment3.target=void\ act()
numComments=4
+49
View File
@@ -0,0 +1,49 @@
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class MyWorld here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class MyWorld extends World
{
Player1 player1;
Player2 player2;
/**
* Constructor for objects of class MyWorld.
*
*/
public MyWorld()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(600, 400, 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()
{
player1 = new Player1();
addObject(player1,125,153);
player2 = new Player2();
addObject(player2,429,152);
}
public void act(){
if(player1.attacke()){
if(player1.getX() - player2.getX() < 50 && player1.getX() - player2.getX() > -50 && player1.getY() - player2.getY() < 30 && player1.getY() - player2.getY() > -30){
player2.leben = player2.leben -10;
}
}
if(player2.attacke()){
if(player1.getX() - player2.getX() < 50 && player1.getX() - player2.getX() > -50 && player1.getY() - player2.getY() < 30 && player1.getY() - player2.getY() > -30){
player1.leben = player1.leben -10;
}
}
showText(String.valueOf(player2.leben),300,300);
}
}
Binary file not shown.
+9
View File
@@ -0,0 +1,9 @@
#BlueJ class context
comment0.target=Pfeil
comment0.text=\r\n\ Write\ a\ description\ of\ class\ Pfeil\ 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\ Pfeil\ 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\ Pfeil()
numComments=3
+22
View File
@@ -0,0 +1,22 @@
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Pfeil here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Pfeil extends Actor
{
/**
* Act - do whatever the Pfeil 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 Pfeil(){
}
}
+12
View File
@@ -0,0 +1,12 @@
------------------------------------------------------------------------
This is the project README file. Here, you should describe your project.
Tell the reader (someone who does not know anything about this project)
all they need to know. The comments should usually include at least:
------------------------------------------------------------------------
PROJECT TITLE:
PURPOSE OF PROJECT:
VERSION or DATE:
HOW TO START THIS PROJECT:
AUTHORS:
USER INSTRUCTIONS:
Binary file not shown.
+24
View File
@@ -0,0 +1,24 @@
#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()
comment10.params=
comment10.target=void\ act()
comment2.params=
comment2.target=void\ pfeilA()
comment3.params=
comment3.target=void\ pfeilB()
comment4.params=
comment4.target=void\ pfeilC()
comment5.params=
comment5.target=void\ pfeil1()
comment6.params=
comment6.target=void\ pfeil2()
comment7.params=
comment7.target=void\ pfeil3()
comment8.params=
comment8.target=void\ SpielerWahl1()
comment9.params=
comment9.target=void\ SpielerWahl2()
numComments=11
+108
View File
@@ -0,0 +1,108 @@
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 int aktuellerSpieler1;
public int aktuellerSpieler2;
public Pfeil cursor1;
public Pfeil cursor2;
public StartWorld()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(600, 400, 1);
showText("Spiel Name" , 300, 20);
showText("select a character", 300, 70);
showText("press enter to start", 300, 340);
showText("player 1 :", 100,100);
showText("player 2 :", 500,100);
showText("1 character 1", 500,150);
showText("2 character 2", 500,200);
showText("3 character 3", 500,250);
showText("a character 1", 100,150);
showText("b character 2", 100,200);
showText("c character 3", 100,250);
cursor1 = new Pfeil();
cursor1.setImage("cursor.png");
addObject(cursor1, 50, 160);
cursor2 = new Pfeil();
cursor2.setImage("cursor.png");
addObject(cursor2 , 450, 160);
}
public void pfeilA(){
if(Greenfoot.isKeyDown("a")){
aktuellerSpieler1 = 1;
cursor1.setLocation(50,160);
}
}
public void pfeilB(){
if(Greenfoot.isKeyDown("b")){
aktuellerSpieler1 = 2;
cursor1.setLocation(50,210);
}
}
public void pfeilC(){
if(Greenfoot.isKeyDown("c")){
aktuellerSpieler1 = 3;
cursor1.setLocation(50,260);
}
}
public void pfeil1(){
if(Greenfoot.isKeyDown("1")){
aktuellerSpieler2 = 1;
cursor2.setLocation(450,160);
}
}
public void pfeil2(){
if(Greenfoot.isKeyDown("2")){
aktuellerSpieler2 = 2;
cursor2.setLocation(450,210);
}
}
public void pfeil3(){
if(Greenfoot.isKeyDown("3")){
aktuellerSpieler2 = 3;
cursor2.setLocation(450,260);
}
}
public void SpielerWahl1(){
pfeilA();
pfeilB();
pfeilC();
}
public void SpielerWahl2(){
pfeil1();
pfeil2();
pfeil3();
}
public void act(){
SpielerWahl1();
SpielerWahl2();
if (Greenfoot.isKeyDown("enter")){
if(aktuellerSpieler1 > 0 && aktuellerSpieler2 > 0){
Greenfoot.setWorld(new MyWorld());
}
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.
+22
View File
@@ -0,0 +1,22 @@
#BlueJ class context
comment0.target=Player1
comment0.text=\r\n\ Write\ a\ description\ of\ class\ player\ here.\r\n\ \r\n\ @author\ (your\ name)\ \r\n\ @version\ (a\ version\ number\ or\ a\ date)\r\n
comment1.params=
comment1.target=Player1()
comment2.params=
comment2.target=void\ act()
comment3.params=
comment3.target=void\ bewegung()
comment4.params=
comment4.target=void\ springen()
comment5.params=
comment5.target=boolean\ attacke()
comment6.params=
comment6.target=void\ animation1()
comment7.params=
comment7.target=void\ anitmationLaufen()
comment8.params=
comment8.target=void\ gravitation()
comment9.params=
comment9.target=void\ charakter()
numComments=10
+175
View File
@@ -0,0 +1,175 @@
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class player here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Player1 extends Actor
{
/**
* Act - do whatever the player wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public int leben;
long c;
boolean schautNachRechts;
long attackTimer = 0;
int attackPhase = 0;
boolean attacking = false;
int laufPhase = 0;
long laufTimer = 0;
boolean laeuft = false;
Player1(){
leben = 100;
schautNachRechts = true;
charakter();
}
public void act()
{
bewegung();
gravitation();
springen();
animation1();
anitmationLaufen();
}
public void bewegung(){
if(Greenfoot.isKeyDown("d")){
setRotation(0);
move(5);
if(!schautNachRechts && attackPhase == 0){
getImage().mirrorHorizontally();
schautNachRechts = true;
}
laeuft = true;
}
if(Greenfoot.isKeyDown("a")){
setRotation(0);
move(-5);
if(schautNachRechts && attackPhase == 0){
getImage().mirrorHorizontally();
schautNachRechts = false;
}
}
}
public void springen(){
if(Greenfoot.isKeyDown("space") && this.getY() > 363 ){
for(int i = 12; i > -12; i--){
setRotation(270);
move(i);
setRotation(0);
Greenfoot.delay(1);
bewegung();
}
}
}
public boolean attacke(){
if(Greenfoot.isKeyDown("e")){
if(System.currentTimeMillis() >= c){
if (!attacking) {
attacking = true;
attackPhase = 1;
attackTimer = System.currentTimeMillis();
setImage("1Combo2.png");
GreenfootImage image = getImage();
image.scale(80, 80);
setImage(image);
}
c = System.currentTimeMillis() + 1000;
return true;
}
else{
return false;
}
}
else{
return false;
}
}
public void animation1(){
if (attacking && attackPhase == 1 && System.currentTimeMillis() - attackTimer >= 300) {
attackPhase = 2;
setImage("2Combo1.png");
GreenfootImage image = getImage();
image.scale(80, 80);
setImage(image);
}
if (attacking && attackPhase == 2 && System.currentTimeMillis() - attackTimer >= 600) {
attacking = false;
attackPhase = 0;
}
}
public void anitmationLaufen(){
if(laeuft){
if(laufPhase == 0){
setImage("RenRun1.png");
GreenfootImage image = getImage();
image.scale(80, 80);
setImage(image);
laufPhase = 1;
laufTimer = System.currentTimeMillis();
}
if(laufPhase == 1 && System.currentTimeMillis() - laufTimer >= 50){
setImage("RenRun2.png");
GreenfootImage image = getImage();
image.scale(80, 80);
setImage(image);
laufPhase = 2;
laufTimer = System.currentTimeMillis();
}
if(laufPhase == 2 && System.currentTimeMillis() - laufTimer >= 50){
setImage("RenRun3.png");
GreenfootImage image = getImage();
image.scale(80, 80);
setImage(image);
laufPhase = 3;
laufTimer = System.currentTimeMillis();
}
if(laufPhase == 3 && System.currentTimeMillis() - laufTimer >= 50){
setImage("RenRun4.png");
GreenfootImage image = getImage();
image.scale(80, 80);
setImage(image);
laufPhase = 4;
laufTimer = System.currentTimeMillis();
}
if(laufPhase == 4 && System.currentTimeMillis() - laufTimer >= 50){
setImage("2Combo1.png");
GreenfootImage image = getImage();
image.scale(80, 80);
setImage(image);
laufPhase = 0;
laufTimer = System.currentTimeMillis();
laeuft = false;
}
}
}
public void gravitation(){
if(this.getY() < 363){
setRotation(90);
move(4);
setRotation(0);
}
}
public void charakter(){
setImage("2Combo1.png");
GreenfootImage image = getImage();
image.scale(80,80);
setImage(image);
}
}
Binary file not shown.
+16
View File
@@ -0,0 +1,16 @@
#BlueJ class context
comment0.target=Player2
comment0.text=\r\n\ Write\ a\ description\ of\ class\ player\ here.\r\n\ \r\n\ @author\ (your\ name)\ \r\n\ @version\ (a\ version\ number\ or\ a\ date)\r\n
comment1.params=
comment1.target=Player2()
comment2.params=
comment2.target=void\ act()
comment3.params=
comment3.target=void\ bewegung()
comment4.params=
comment4.target=void\ springen()
comment5.params=
comment5.target=boolean\ attacke()
comment6.params=
comment6.target=void\ gravitation()
numComments=7
+75
View File
@@ -0,0 +1,75 @@
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class player here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Player2 extends Actor
{
/**
* Act - do whatever the player wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public int leben;
long c;
Player2(){
leben = 100;
}
public void act()
{
bewegung();
gravitation();
springen();
}
public void bewegung(){
if(Greenfoot.isKeyDown("right")){
setRotation(0);
move(3);
}
if(Greenfoot.isKeyDown("left")){
setRotation(0);
move(-3);
}
}
public void springen(){
if(Greenfoot.isKeyDown("-") && this.getY() > 370 ){
for(int i = 12; i > -12; i--){
setRotation(270);
move(i);
setRotation(0);
Greenfoot.delay(1);
bewegung();
}
}
}
public boolean attacke(){
if(Greenfoot.isKeyDown("e")){
if(System.currentTimeMillis() >= c){
c = System.currentTimeMillis() + 2000;
return true;
}
else{
return false;
}
}
else{
return false;
}
}
public void gravitation(){
if(this.getY() < 370){
setRotation(90);
move(4);
setRotation(0);
}
}
}
+57
View File
@@ -0,0 +1,57 @@
#Greenfoot project file
class.MyWorld.image=crumpled-paper.jpg
class.Player1.image=man01.png
class.Player2.image=man01.png
dependency1.from=MyWorld
dependency1.to=Player1
dependency1.type=UsesDependency
dependency2.from=MyWorld
dependency2.to=Player2
dependency2.type=UsesDependency
editor.fx.0.height=737
editor.fx.0.width=814
editor.fx.0.x=117
editor.fx.0.y=30
height=686
package.numDependencies=2
package.numTargets=3
project.charset=UTF-8
publish.hasSource=false
publish.locked=true
publish.longDesc=
publish.shortDesc=
publish.tags=
publish.title=
publish.url=
readme.height=60
readme.name=@README
readme.width=48
readme.x=10
readme.y=10
simulation.speed=48
target1.height=70
target1.name=Player2
target1.showInterface=false
target1.type=ClassTarget
target1.width=120
target1.x=0
target1.y=0
target2.height=70
target2.name=Player1
target2.showInterface=false
target2.type=ClassTarget
target2.width=120
target2.x=0
target2.y=0
target3.height=70
target3.name=MyWorld
target3.showInterface=false
target3.type=ClassTarget
target3.width=120
target3.x=0
target3.y=0
version=3.1.0
width=1294
world.lastInstantiated=MyWorld
xPosition=0
yPosition=0
-1
View File
@@ -1 +0,0 @@
Hier kommt etwas hinein