This commit is contained in:
Max
2026-09-17 20:00:38 +02:00
parent 9fa05786d2
commit 8a02a796a8
16 changed files with 576 additions and 52 deletions
+226 -11
View File
@@ -29,10 +29,17 @@ public class MyWorld extends World
Picture s2;
String shootAnimation;
String shootAnimationP2;
String ultiAnimation;
String ultiAnimationP2;
String ultiAnimation2;
String ultiAnimation2P2;
Projectile projectile1;
Projectile2 projectile2;
boolean shot = false;
boolean shot2 = false;
boolean ulti = false;
boolean ulti2 = false;
/**
* Constructor for objects of class MyWorld.
*
@@ -77,6 +84,10 @@ public class MyWorld extends World
if(player1.attacke() &! player2.isBlocking){
if(player1.getX() - player2.getX() < attack1Distance && player1.getX() - player2.getX() > -attack1Distance && player1.getY() - player2.getY() < 30 && player1.getY() - player2.getY() > -30){
player2.leben = player2.leben -attack1Strength;
player1.shakra = player1.shakra +5;
if(player1.shakra > player1.maxShakra){
player1.shakra = player1.maxShakra;
}
setPaintOrder(Player1.class,Player2.class);
if(player2.schautNachRechts){
player2.setImage(player2.hitAnimation);
@@ -98,6 +109,10 @@ public class MyWorld extends World
if(player2.attacke() &! player1.isBlocking){
if(player1.getX() - player2.getX() < attack1DistanceP2 && player1.getX() - player2.getX() > -attack1DistanceP2 && player1.getY() - player2.getY() < 30 && player1.getY() - player2.getY() > -30){
player1.leben = player1.leben -attack1StrengthP2;
player2.shakra = player2.shakra +5;
if(player2.shakra > player2.maxShakra){
player2.shakra = player2.maxShakra;
}
setPaintOrder(Player2.class,Player1.class);
if(player1.schautNachRechts){
player1.setImage(player1.hitAnimation);
@@ -119,6 +134,10 @@ public class MyWorld extends World
if(player1.attacke2() &! player2.isBlocking){
if(player1.getX() - player2.getX() < attack2Distance && player1.getX() - player2.getX() > -attack2Distance && player1.getY() - player2.getY() < 30 && player1.getY() - player2.getY() > -30){
player2.leben = player2.leben -attack2Strength;
player1.shakra = player1.shakra +5;
if(player1.shakra > player1.maxShakra){
player1.shakra = player1.maxShakra;
}
setPaintOrder(Player1.class,Player2.class);
if(player2.schautNachRechts){
player2.setImage(player2.hitAnimation);
@@ -140,6 +159,10 @@ public class MyWorld extends World
if(player2.attacke2() &! player1.isBlocking){
if(player1.getX() - player2.getX() < attack2DistanceP2 && player1.getX() - player2.getX() > -attack2DistanceP2 && player1.getY() - player2.getY() < 30 && player1.getY() - player2.getY() > -30){
player1.leben = player1.leben -attack2StrengthP2;
player2.shakra = player2.shakra +5;
if(player2.shakra > player2.maxShakra){
player2.shakra = player2.maxShakra;
}
setPaintOrder(Player2.class,Player1.class);
if(player1.schautNachRechts){
player1.setImage(player1.hitAnimation);
@@ -162,6 +185,10 @@ public class MyWorld extends World
if(player1.getX() - player2.getX() < attack2Distance && player1.getX() - player2.getX() > -attack2Distance && player1.getY() - player2.getY() < 30 && player1.getY() - player2.getY() > -30){
player2.isBlocking = false;
player2.leben = player2.leben -attack2Strength;
player1.shakra = player1.shakra +5;
if(player1.shakra > player1.maxShakra){
player1.shakra = player1.maxShakra;
}
setPaintOrder(Player1.class,Player2.class);
if(player2.schautNachRechts){
player2.setImage(player2.hitAnimation);
@@ -184,6 +211,10 @@ public class MyWorld extends World
if(player1.getX() - player2.getX() < attack2DistanceP2 && player1.getX() - player2.getX() > -attack2DistanceP2 && player1.getY() - player2.getY() < 30 && player1.getY() - player2.getY() > -30){
player1.isBlocking = false;
player1.leben = player1.leben -attack2StrengthP2;
player2.shakra = player2.shakra +5;
if(player2.shakra > player2.maxShakra){
player2.shakra = player2.maxShakra;
}
setPaintOrder(Player2.class,Player1.class);
if(player1.schautNachRechts){
player1.setImage(player1.hitAnimation);
@@ -214,15 +245,25 @@ public class MyWorld extends World
gameEnd();
lebensAnzeige();
updateTimersP1();
if(Greenfoot.isKeyDown("y")){
shootP1();
if(player1.shootTimer == 30){
shootP1();
}
if(Greenfoot.isKeyDown("m")){
if(Greenfoot.isKeyDown("t")){
player1.isShooting = true;
}
if(player2.shootTimer == 30){
shootP2();
}
if(Greenfoot.isKeyDown("z")){
player2.isShooting = true;
}
if(shot){
if(projectile1.hit){
player2.leben = player2.leben -20;
player2.leben = player2.leben -20;
player1.shakra = player1.shakra +5;
if(player1.shakra > player1.maxShakra){
player1.shakra = player1.maxShakra;
}
if(player2.schautNachRechts){
player2.setImage(player2.hitAnimation);
GreenfootImage image = player2.getImage();
@@ -243,7 +284,11 @@ public class MyWorld extends World
}
if(shot2){
if(projectile2.hit){
player1.leben = player1.leben -20;
player1.leben = player1.leben -20;
player2.shakra = player2.shakra +5;
if(player2.shakra > player2.maxShakra){
player2.shakra = player2.maxShakra;
}
if(player1.schautNachRechts){
player1.setImage(player1.hitAnimation);
GreenfootImage image = player1.getImage();
@@ -262,6 +307,72 @@ public class MyWorld extends World
shot2 = false;
}
}
if(player1.ultiTimer == 30){
ultiP1();
}
if(Greenfoot.isKeyDown("g") && player1.shakra >= 30 && player1.isUlti == false){
player1.isUlti = true;
player1.shakra = player1.shakra-30;
}
if(player2.ultiTimer == 30){
ultiP2();
}
if(Greenfoot.isKeyDown("h") && player2.shakra >= 30 && player2.isUlti == false){
player2.isUlti = true;
player2.shakra = player2.shakra-30;
}
if(ulti){
if(projectile1.hit){
player2.leben = player2.leben -40;
player1.shakra = player1.shakra +5;
if(player1.shakra > player1.maxShakra){
player1.shakra = player1.maxShakra;
}
if(player2.schautNachRechts){
player2.setImage(player2.hitAnimation);
GreenfootImage image = player2.getImage();
image.scale(250, 250);
player2.setImage(image);
}
else{
player2.setImage(player2.hitAnimation);
GreenfootImage image = player2.getImage();
image.scale(250, 250);
player2.setImage(image);
player2.getImage().mirrorHorizontally();
}
player2.hitTimer = System.currentTimeMillis() + 250;
player2.gotHit = true;
ulti = false;
}
}
if(ulti2){
if(projectile2.hit){
player1.leben = player1.leben -40;
player2.shakra = player2.shakra +5;
if(player2.shakra > player2.maxShakra){
player2.shakra = player2.maxShakra;
}
if(player1.schautNachRechts){
player1.setImage(player1.hitAnimation);
GreenfootImage image = player1.getImage();
image.scale(250, 250);
player1.setImage(image);
}
else{
player1.setImage(player1.hitAnimation);
GreenfootImage image = player1.getImage();
image.scale(250, 250);
player1.setImage(image);
player1.getImage().mirrorHorizontally();
}
player1.hitTimer = System.currentTimeMillis() + 250;
player1.gotHit = true;
ulti2 = false;
}
}
ultiAnimationP1();
ultiAnimationP2();
}
public void gameEnd(){
@@ -284,13 +395,24 @@ public class MyWorld extends World
imag.scale((int)(120 * ((double)player1.shakra/(double)player1.maxShakra)),5);
s1.setImage(imag);
}
else{
s1.setImage("blue.png");
GreenfootImage imag = s1.getImage();
imag.scale(1,1);
s1.setImage(imag);
}
if(player2.shakra > 0){
s2.setImage("blue.png");
GreenfootImage imag2 = s2.getImage();
imag2.scale((int)(120 * ((double)player2.shakra/(double)player1.maxShakra)),5);
imag2.scale((int)(120 * ((double)player2.shakra/(double)player2.maxShakra)),5);
s2.setImage(imag2);
}
else{
s2.setImage("blue.png");
GreenfootImage imag = s2.getImage();
imag.scale(1,1);
s2.setImage(imag);
}
}
protected void updateTimersP1()
@@ -317,7 +439,7 @@ public class MyWorld extends World
int direction = player1.schautNachRechts ? 1 : -1;
projectile1 = new Projectile(direction, player1, player2);
projectile1.setImage(shootAnimation);
GreenfootImage image = projectile1.getImage();
@@ -329,8 +451,7 @@ public class MyWorld extends World
addObject(projectile1, spawnX, spawnY);
shot = true;
player1.shootCooldown = 60;
player1.shootCooldown = 40;
}
public void shootP2()
@@ -354,7 +475,89 @@ public class MyWorld extends World
addObject(projectile2, spawnX, spawnY);
shot2 = true;
player2.shootCooldown = 60;
player2.shootCooldown = 40;
}
public void ultiP1()
{
if (player1.ultiCooldown > 0) {
return;
}
int direction = player1.schautNachRechts ? 1 : -1;
projectile1 = new Projectile(direction, player1, player2);
int spawnX = player1.getX() + direction * 60;
int spawnY = player1.getY() - 10;
addObject(projectile1, spawnX, spawnY);
ulti = true;
player1.ultiCooldown = 40;
}
public void ultiP2()
{
if (player2.ultiCooldown > 0) {
return;
}
int direction = player2.schautNachRechts ? 1 : -1;
projectile2 = new Projectile2(direction, player2, player1);
int spawnX = player2.getX() + direction * 60;
int spawnY = player2.getY() - 10;
addObject(projectile2, spawnX, spawnY);
ulti2 = true;
player2.ultiCooldown = 40;
}
public void ultiAnimationP1(){
if(player1.ultiCooldown > 35){
projectile1.setImage(ultiAnimation);
GreenfootImage image = projectile1.getImage();
image.scale(400, 400);
projectile1.setImage(image);
if(!player1.schautNachRechts){
projectile1.getImage().mirrorHorizontally();
}
}
if(player1.ultiCooldown > 0 && player1.ultiCooldown < 35){
projectile1.setImage(ultiAnimation2);
GreenfootImage image = projectile1.getImage();
image.scale(400, 400);
projectile1.setImage(image);
if(!player1.schautNachRechts){
projectile1.getImage().mirrorHorizontally();
}
}
}
public void ultiAnimationP2(){
if(player2.ultiCooldown > 35){
projectile2.setImage(ultiAnimationP2);
GreenfootImage image = projectile2.getImage();
image.scale(400, 400);
projectile2.setImage(image);
if(!player2.schautNachRechts){
projectile2.getImage().mirrorHorizontally();
}
}
if(player2.ultiCooldown > 0 && player2.ultiCooldown < 35){
projectile2.setImage(ultiAnimation2P2);
GreenfootImage image = projectile2.getImage();
image.scale(400, 400);
projectile2.setImage(image);
if(!player2.schautNachRechts){
projectile2.getImage().mirrorHorizontally();
}
}
}
public void charakterP1(){
@@ -364,6 +567,8 @@ public class MyWorld extends World
attack1Strength = 10;
attack2Strength = 20;
shootAnimation = "RenProjectile.png";
ultiAnimation = "RenUltiProjectile1.png";
ultiAnimation2 = "RenUltiProjectile2.png";
}
else if(charakterP1 == 2){
attack1Distance = 95;
@@ -371,6 +576,8 @@ public class MyWorld extends World
attack1Strength = 15;
attack2Strength = 30;
shootAnimation = "TetsuProjectile.png";
ultiAnimation = "TetsuUltiProjectile1.png";
ultiAnimation2 = "TetsuUltiProjectile2.png";
}
else if(charakterP1 == 3){
attack1Distance = 95;
@@ -378,6 +585,8 @@ public class MyWorld extends World
attack1Strength = 8;
attack2Strength = 15;
shootAnimation = "HinataProjectile.png";
ultiAnimation = "HinataUltiProjectile1.png";
ultiAnimation2 = "HinataUltiProjectile2.png";
}
}
public void charakterP2(){
@@ -387,6 +596,8 @@ public class MyWorld extends World
attack1StrengthP2 = 10;
attack2StrengthP2 = 20;
shootAnimationP2 = "RenProjectile.png";
ultiAnimationP2 = "RenUltiProjectile1.png";
ultiAnimation2P2 = "RenUltiProjectile2.png";
}
else if(charakterP2 == 2){
attack1DistanceP2 = 95;
@@ -394,6 +605,8 @@ public class MyWorld extends World
attack1StrengthP2 = 15;
attack2StrengthP2 = 30;
shootAnimationP2 = "TetsuProjectile.png";
ultiAnimationP2 = "TetsuUltiProjectile1.png";
ultiAnimation2P2 = "TetsuUltiProjectile2.png";
}
else if(charakterP2 == 3){
attack1DistanceP2 = 95;
@@ -401,6 +614,8 @@ public class MyWorld extends World
attack1StrengthP2 = 8;
attack2StrengthP2 = 15;
shootAnimationP2 = "HinataProjectile.png";
ultiAnimationP2 = "HinataUltiProjectile1.png";
ultiAnimation2P2 = "HinataUltiProjectile2.png";
}
}
}