390 lines
13 KiB
Java
390 lines
13 KiB
Java
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;
|
|
int maxLeben;
|
|
long c;
|
|
long d = 0;
|
|
long e = 0;
|
|
boolean schautNachRechts;
|
|
long attackTimer = 0;
|
|
int attackPhase = 0;
|
|
boolean attacking = false;
|
|
int laufPhase = 0;
|
|
long laufTimer = 0;
|
|
boolean laeuft = false;
|
|
int charakter;
|
|
boolean attacking2 = false;
|
|
String attacke1Animation;
|
|
String attacke2Animation1;
|
|
String attacke2Animation2;
|
|
String defaultAnimation;
|
|
String walk1;
|
|
String walk2;
|
|
String walk3;
|
|
String walk4;
|
|
int attack2Duration;
|
|
int speed;
|
|
double speedFaktor;
|
|
double speedFaktor2;
|
|
|
|
Player1(int pCharakter){
|
|
charakter = pCharakter;
|
|
schautNachRechts = true;
|
|
charakter();
|
|
}
|
|
public void act()
|
|
{
|
|
bewegung();
|
|
gravitation();
|
|
springen();
|
|
animation1();
|
|
animationLaufen();
|
|
}
|
|
|
|
public void bewegung(){
|
|
if(Greenfoot.isKeyDown("d")){
|
|
setRotation(0);
|
|
move(speed);
|
|
if(!schautNachRechts && attackPhase == 0){
|
|
getImage().mirrorHorizontally();
|
|
schautNachRechts = true;
|
|
}
|
|
laeuft = true;
|
|
attacke();
|
|
attacke2();
|
|
}
|
|
if(Greenfoot.isKeyDown("a")){
|
|
setRotation(0);
|
|
move(-speed);
|
|
if(schautNachRechts && attackPhase == 0){
|
|
getImage().mirrorHorizontally();
|
|
schautNachRechts = false;
|
|
}
|
|
laeuft = true;
|
|
attacke();
|
|
attacke2();
|
|
}
|
|
}
|
|
|
|
public void springen(){
|
|
if(Greenfoot.isKeyDown("space") && this.getY() > 289 ){
|
|
for(int i = 12; i > -12; i--){
|
|
setRotation(270);
|
|
move(i);
|
|
setRotation(0);
|
|
Greenfoot.delay(1);
|
|
bewegung();
|
|
attacke();
|
|
attacke2();
|
|
}
|
|
}
|
|
}
|
|
|
|
public boolean attacke(){
|
|
if(System.currentTimeMillis() >= c){
|
|
if(Greenfoot.isKeyDown("e")){
|
|
if (!attacking && !attacking2) {
|
|
attacking = true;
|
|
attackPhase = 1;
|
|
attackTimer = System.currentTimeMillis();
|
|
|
|
if(schautNachRechts){
|
|
setImage(attacke1Animation);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
}
|
|
else{
|
|
setImage(attacke1Animation);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
getImage().mirrorHorizontally();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
c = System.currentTimeMillis() + (int)(500/speedFaktor);
|
|
}
|
|
}
|
|
if(attacking && attackPhase == 1 && System.currentTimeMillis() >= d){
|
|
d = System.currentTimeMillis() + (int)(300/speedFaktor);
|
|
return true;
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public boolean attacke2(){
|
|
if(System.currentTimeMillis() >= c){
|
|
if(Greenfoot.isKeyDown("q")){
|
|
if (!attacking2 && !attacking) {
|
|
attacking2 = true;
|
|
attackPhase = 1;
|
|
attackTimer = System.currentTimeMillis();
|
|
|
|
if(schautNachRechts){
|
|
setImage(attacke2Animation1);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
}
|
|
else{
|
|
setImage(attacke2Animation1);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
getImage().mirrorHorizontally();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
c = System.currentTimeMillis() + (int)(800/speedFaktor);
|
|
}
|
|
}
|
|
if(attacking2 && attackPhase == attack2Duration && System.currentTimeMillis() >= System.currentTimeMillis()+e){
|
|
e = (int)(1000/speedFaktor2);
|
|
return true;
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public void animation1(){
|
|
if (attacking && attackPhase == 1 && System.currentTimeMillis() - attackTimer >= (int)(200/speedFaktor)) {
|
|
if(schautNachRechts){
|
|
attackPhase = 2;
|
|
setImage(defaultAnimation);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
}
|
|
else{
|
|
attackPhase = 2;
|
|
setImage(defaultAnimation);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
getImage().mirrorHorizontally();
|
|
}
|
|
}
|
|
if (attacking && attackPhase == 2 && System.currentTimeMillis() - attackTimer >= (int)(500/speedFaktor)) {
|
|
attacking = false;
|
|
attackPhase = 0;
|
|
d = 0;
|
|
}
|
|
if (attacking2 && attackPhase == 1 && System.currentTimeMillis() - attackTimer >= (int)(550/speedFaktor2)) {
|
|
if(schautNachRechts){
|
|
attackPhase = 2;
|
|
setImage(attacke2Animation2);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
}
|
|
else{
|
|
attackPhase = 2;
|
|
setImage(attacke2Animation2);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
getImage().mirrorHorizontally();
|
|
}
|
|
}
|
|
if (attacking2 && attackPhase == 2 && System.currentTimeMillis() - attackTimer >= (int)(800/speedFaktor2)) {
|
|
attacking2 = false;
|
|
attackPhase = 0;
|
|
e = 0;
|
|
if(schautNachRechts){
|
|
setImage(defaultAnimation);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
}
|
|
else{
|
|
setImage(defaultAnimation);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
getImage().mirrorHorizontally();
|
|
}
|
|
}
|
|
}
|
|
|
|
public void animationLaufen(){
|
|
if(laeuft &! attacking &! attacking2){
|
|
if(schautNachRechts){
|
|
if(laufPhase == 0){
|
|
setImage(walk1);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
laufPhase = 1;
|
|
laufTimer = System.currentTimeMillis();
|
|
}
|
|
if(laufPhase == 1 && System.currentTimeMillis() - laufTimer >= 200){
|
|
setImage(walk2);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
laufPhase = 2;
|
|
laufTimer = System.currentTimeMillis();
|
|
}
|
|
if(laufPhase == 2 && System.currentTimeMillis() - laufTimer >= 200){
|
|
setImage(walk3);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
laufPhase = 3;
|
|
laufTimer = System.currentTimeMillis();
|
|
}
|
|
if(laufPhase == 3 && System.currentTimeMillis() - laufTimer >= 200){
|
|
setImage(walk4);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
laufPhase = 4;
|
|
laufTimer = System.currentTimeMillis();
|
|
}
|
|
if(laufPhase == 4 && System.currentTimeMillis() - laufTimer >= 200){
|
|
setImage(defaultAnimation);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
laufPhase = 0;
|
|
laufTimer = System.currentTimeMillis();
|
|
laeuft = false;
|
|
}
|
|
}
|
|
else{
|
|
if(laufPhase == 0){
|
|
setImage(walk1);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
getImage().mirrorHorizontally();
|
|
laufPhase = 1;
|
|
laufTimer = System.currentTimeMillis();
|
|
}
|
|
if(laufPhase == 1 && System.currentTimeMillis() - laufTimer >= 200){
|
|
setImage(walk2);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
getImage().mirrorHorizontally();
|
|
laufPhase = 2;
|
|
laufTimer = System.currentTimeMillis();
|
|
}
|
|
if(laufPhase == 2 && System.currentTimeMillis() - laufTimer >= 200){
|
|
setImage(walk3);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
getImage().mirrorHorizontally();
|
|
laufPhase = 3;
|
|
laufTimer = System.currentTimeMillis();
|
|
}
|
|
if(laufPhase == 3 && System.currentTimeMillis() - laufTimer >= 200){
|
|
setImage(walk4);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
getImage().mirrorHorizontally();
|
|
laufPhase = 4;
|
|
laufTimer = System.currentTimeMillis();
|
|
}
|
|
if(laufPhase == 4 && System.currentTimeMillis() - laufTimer >= 200){
|
|
setImage(defaultAnimation);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250, 250);
|
|
setImage(image);
|
|
getImage().mirrorHorizontally();
|
|
laufPhase = 0;
|
|
laufTimer = System.currentTimeMillis();
|
|
laeuft = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void gravitation(){
|
|
if(this.getY() < 290){
|
|
setRotation(90);
|
|
move(4);
|
|
setRotation(0);
|
|
|
|
}
|
|
}
|
|
|
|
public void charakter(){
|
|
if(charakter == 1){
|
|
defaultAnimation = "2Combo1.png";
|
|
attacke1Animation = "1Combo2.png";
|
|
attacke2Animation1 = "3Combo2.png";
|
|
attacke2Animation2 = defaultAnimation;
|
|
walk1 = "RenRun1.png";
|
|
walk2 = "RenRun2.png";
|
|
walk3 = "RenRun3.png";
|
|
walk4 = "RenRun4.png";
|
|
attack2Duration = 1;
|
|
speed = 6;
|
|
maxLeben = 100;
|
|
leben = maxLeben;
|
|
speedFaktor = 1;
|
|
speedFaktor2 = speedFaktor;
|
|
}
|
|
if(charakter == 2){
|
|
defaultAnimation = "Tetsu1Combo1.png";
|
|
attacke1Animation = "Tetsu1Combo2.png";
|
|
attacke2Animation1 = "Tetsu3Combo1.png";
|
|
attacke2Animation2 = "Tetsu3Combo2.png";
|
|
walk1 = "TetsuRun1.png";
|
|
walk2 = "TetsuRun2.png";
|
|
walk3 = "TetsuRun3.png";
|
|
walk4 = "TetsuRun4.png";
|
|
attack2Duration = 2;
|
|
speed = 4;
|
|
maxLeben = 130;
|
|
leben = maxLeben;
|
|
speedFaktor = 0.5;
|
|
speedFaktor2 = 0.75;
|
|
}
|
|
if(charakter == 3){
|
|
defaultAnimation = "HinataShoot1.png";
|
|
attacke1Animation = "Hinata2Combo1.png";
|
|
attacke2Animation1 = "Hinata3Combo1.png";
|
|
attacke2Animation2 = defaultAnimation;
|
|
walk1 = "HinataRun1.png";
|
|
walk2 = "HinataRun2.png";
|
|
walk3 = "HinataRun3.png";
|
|
walk4 = "HinataRun4.png";
|
|
attack2Duration = 1;
|
|
speed = 8;
|
|
maxLeben = 80;
|
|
leben = maxLeben;
|
|
speedFaktor = 2;
|
|
speedFaktor2 = 8;
|
|
}
|
|
setImage(defaultAnimation);
|
|
GreenfootImage image = getImage();
|
|
image.scale(250,250);
|
|
setImage(image);
|
|
}
|
|
}
|