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; int schautNachRechts2; 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; String dashAnimation; String hitAnimation; String dashAttackAnimation; String blockAnimation; String shootAnimation1; String shootAnimation2; int attack2Duration; int speed; double speedFaktor; double speedFaktor2; long dashTimer; long jumpTimer = 0; int vSpeed = 0; int meereshoehe = 289; int vDashSpeed = 0; int vDashSpeedCharakter; boolean gotHit = false; long hitTimer = 0; long dashAttackTimer = 0; boolean isDash = false; boolean isDashAttack = false; long dashAttackTimer2 = 0; boolean isBlocking = false; int shakra; int maxShakra; int shootCooldown = 0; int ultiCooldown = 0; Player1(int pCharakter){ charakter = pCharakter; schautNachRechts = true; charakter(); } public void act() { bewegung(); gravitation(); springen(); animation1(); animationLaufen(); dash(); dashAnimation(schautNachRechts2); dashAttackAnimation(); gotHit(); block(); } public void bewegung(){ if(Greenfoot.isKeyDown("d") &! isBlocking){ setRotation(0); move(speed); if(!schautNachRechts && attackPhase == 0){ getImage().mirrorHorizontally(); schautNachRechts = true; } laeuft = true; attacke(); attacke2(); } if(Greenfoot.isKeyDown("a") &! isBlocking){ setRotation(0); move(-speed); if(schautNachRechts && attackPhase == 0){ getImage().mirrorHorizontally(); schautNachRechts = false; } laeuft = true; attacke(); attacke2(); } } public void springen() { if (Greenfoot.isKeyDown("space") && getY() >= meereshoehe &! isBlocking) { vSpeed = -15; fall(); } } public void gravitation() { if (getY() < meereshoehe || vSpeed < 0) { fall(); } else { vSpeed = 0; setLocation(getX(), meereshoehe); } } private void fall() { setLocation(getX(), getY() + vSpeed); vSpeed += 1; } public boolean attacke(){ if(System.currentTimeMillis() >= c &! isBlocking){ GreenfootImage img = getImage(); setImage(dashAnimation); GreenfootImage img2 = getImage(); setImage(img); if(Greenfoot.isKeyDown("e") &! isDash){ 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 &! isBlocking){ 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 dash(){ if(Greenfoot.isKeyDown("f") && System.currentTimeMillis() >= dashTimer &! isBlocking){ if(schautNachRechts){ vDashSpeed = vDashSpeedCharakter; schautNachRechts2 = 1; dashAnimation(schautNachRechts2); } else{ vDashSpeed = -vDashSpeedCharakter; schautNachRechts2 = 0; dashAnimation(schautNachRechts2); } isDash = true; dashTimer = System.currentTimeMillis() + 1000; } } public boolean dashAttack(){ if(isDash && Greenfoot.isKeyDown("e") && System.currentTimeMillis() >= dashAttackTimer &! isBlocking){ dashAttackTimer = System.currentTimeMillis() + 300; dashAttackTimer2 = System.currentTimeMillis() + 300; isDashAttack = true; return true; } else{ return false; } } public void dashAttackAnimation(){ if(isDashAttack){ setImage(dashAttackAnimation); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(schautNachRechts2 == 0){ getImage().mirrorHorizontally(); } if(System.currentTimeMillis() >= dashAttackTimer2){ setImage(defaultAnimation); image = getImage(); image.scale(250, 250); setImage(image); if(schautNachRechts2 == 0){ getImage().mirrorHorizontally(); } isDashAttack = false; } } } public void dashAnimation(int pRechts){ if(vDashSpeed != 0){ if(pRechts == 1){ setImage(dashAnimation); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); setLocation(getX() + vDashSpeed, getY()); vDashSpeed -= 1; if(vDashSpeed == 0){ setImage(defaultAnimation); image = getImage(); image.scale(250, 250); setImage(image); } } if(pRechts == 0){ setImage(dashAnimation); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); getImage().mirrorHorizontally(); setLocation(getX() + vDashSpeed, getY()); vDashSpeed += 1; if(vDashSpeed == 0){ setImage(defaultAnimation); image = getImage(); image.scale(250, 250); setImage(image); getImage().mirrorHorizontally(); } } } else{ isDash = 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 gotHit(){ if(System.currentTimeMillis() >= hitTimer && gotHit){ setImage(defaultAnimation); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(!schautNachRechts){ getImage().mirrorHorizontally(); } gotHit = false; } } public void block(){ if(Greenfoot.isKeyDown("r")){ isBlocking = true; setImage(blockAnimation); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(!schautNachRechts){ getImage().mirrorHorizontally(); } } if(isBlocking &! Greenfoot.isKeyDown("r")){ isBlocking = false; setImage(defaultAnimation); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(!schautNachRechts){ getImage().mirrorHorizontally(); } } } 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"; dashAnimation = "RenDashForward.png"; hitAnimation = "RenHit.png"; dashAttackAnimation = "RenDashForwardAttack.png"; blockAnimation = "RenBlock.png"; attack2Duration = 1; speed = 6; maxLeben = 100; leben = maxLeben; speedFaktor = 1; speedFaktor2 = speedFaktor; vDashSpeedCharakter = 12; maxShakra = 80; shakra = maxShakra; } 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"; dashAnimation = "TetsuDashForward.png"; hitAnimation = "TetsuHit.png"; dashAttackAnimation = "TetsuDashForwardAttack.png"; blockAnimation = "TetsuBlock.png"; attack2Duration = 2; speed = 4; maxLeben = 130; leben = maxLeben; speedFaktor = 0.5; speedFaktor2 = 0.75; vDashSpeedCharakter = 10; maxShakra = 100; shakra = maxShakra; } 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"; dashAnimation = "HinataDashForward.png"; hitAnimation = "HinataHit.png"; dashAttackAnimation = "HinataDashForwardAttack.png"; blockAnimation = "HinataBlock.png"; attack2Duration = 1; speed = 8; maxLeben = 80; leben = maxLeben; speedFaktor = 2; speedFaktor2 = 8; vDashSpeedCharakter = 14; maxShakra = 60; shakra = maxShakra; } setImage(defaultAnimation); GreenfootImage image = getImage(); image.scale(250,250); setImage(image); } }