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; int charakterP1; int charakterP2; Lebensanzeige l1; Lebensanzeige l2; Picture p1; Picture p2; int attack1Distance; int attack2Distance; int attack1Strength; int attack2Strength; int var; /** * Constructor for objects of class MyWorld. * */ public MyWorld(int pCharakterP1, int pCharakterP2) { // Create a new world with 600x400 cells with a cell size of 1x1 pixels. super(600, 400, 1); charakterP1 = pCharakterP1; charakterP2 = pCharakterP2; 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(charakterP1); addObject(player1,125,153); player2 = new Player2(charakterP2); addObject(player2,429,152); l1 = new Lebensanzeige(); addObject(l1,150,40); l2 = new Lebensanzeige(); addObject(l2,450,40); p1 = new Picture(1); addObject(p1,150,50); p2 = new Picture(2); addObject(p2,450,50); charakterP1(); } public void act(){ 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; setPaintOrder(Player1.class,Player2.class); 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; } } if(player2.attacke() &! player1.isBlocking){ if(player1.getX() - player2.getX() < attack1Distance && player1.getX() - player2.getX() > -attack1Distance && player1.getY() - player2.getY() < 30 && player1.getY() - player2.getY() > -30){ player1.leben = player1.leben -attack1Strength; setPaintOrder(Player2.class,Player1.class); 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; } } 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; setPaintOrder(Player1.class,Player2.class); 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; } } if(player2.attacke2() &! player1.isBlocking){ if(player1.getX() - player2.getX() < attack2Distance && player1.getX() - player2.getX() > -attack2Distance && player1.getY() - player2.getY() < 30 && player1.getY() - player2.getY() > -30){ player1.leben = player1.leben -attack2Strength; setPaintOrder(Player2.class,Player1.class); 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; } } if(player1.dashAttack()){ 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; setPaintOrder(Player1.class,Player2.class); 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; } } if(player2.dashAttack()){ if(player1.getX() - player2.getX() < attack2Distance && player1.getX() - player2.getX() > -attack2Distance && player1.getY() - player2.getY() < 30 && player1.getY() - player2.getY() > -30){ player1.isBlocking = false; player1.leben = player1.leben -attack2Strength; setPaintOrder(Player2.class,Player1.class); 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; } } showText(String.valueOf(player2.leben),450,40); showText(String.valueOf(player1.leben),150,40); l1.leben(player1.leben, player1.maxLeben); l2.leben(player2.leben, player2.maxLeben); l1.setLocation(150 - (int)(100 - ((double)player1.leben/(double)player1.maxLeben)*100), 40); l2.setLocation(450 + (int)(100 - ((double)player2.leben/(double)player2.maxLeben)*100), 40); gameEnd(); lebensAnzeige(); } public void gameEnd(){ if(player1.leben <= 0){ Greenfoot.setWorld(new EndWorld("Player Two")); } if(player2.leben <= 0){ Greenfoot.setWorld(new EndWorld("Player One")); } } public void lebensAnzeige(){ } public void charakterP1(){ if(charakterP1 == 1){ attack1Distance = 95; attack2Distance = 120; attack1Strength = 10; attack2Strength = 20; } else if(charakterP1 == 2){ attack1Distance = 95; attack2Distance = 145; attack1Strength = 15; attack2Strength = 30; } else if(charakterP1 == 3){ attack1Distance = 95; attack2Distance = 110; attack1Strength = 8; attack2Strength = 15; } } }