128 lines
4.3 KiB
Java
128 lines
4.3 KiB
Java
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()){
|
|
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.attacke()){
|
|
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.attacke2()){
|
|
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.attacke2()){
|
|
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);
|
|
}
|
|
}
|
|
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;
|
|
}
|
|
}
|
|
}
|