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; String shootAnimation3; String shootAnimation4; String ultiAnimation1; String ultiAnimation2; String ultiAnimation3; String ultiAnimation4; 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; int shootTimer = 0; boolean isShooting = false; int ultiTimer = 0; boolean isUlti = false; Player1(int pCharakter){ charakter = pCharakter; schautNachRechts = true; charakter(); } public void act() { bewegung(); gravitation(); springen(); animation1(); animationLaufen(); dash(); dashAnimation(schautNachRechts2); dashAttackAnimation(); gotHit(); block(); animationShoot(); animationUlti(); if(isShooting){ shootTimer++; } else{ shootTimer = 0; } if(isUlti){ ultiTimer++; } else{ ultiTimer = 0; } } public void bewegung(){ if(Greenfoot.isKeyDown("e") &! isBlocking){ setRotation(0); move(speed); if(!schautNachRechts && attackPhase == 0){ getImage().mirrorHorizontally(); schautNachRechts = true; } laeuft = true; attacke(); attacke2(); } if(Greenfoot.isKeyDown("q") &! isBlocking){ setRotation(0); move(-speed); if(schautNachRechts && attackPhase == 0){ getImage().mirrorHorizontally(); schautNachRechts = false; } laeuft = true; attacke(); attacke2(); } } public void springen() { if (Greenfoot.isKeyDown("w") && 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("f") &! 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("v")){ 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("r") && 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("f") && 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 animationShoot(){ if(shootTimer > 0){ setImage(shootAnimation1); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(!schautNachRechts){ getImage().mirrorHorizontally(); } } if(shootTimer > 10){ setImage(shootAnimation2); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(!schautNachRechts){ getImage().mirrorHorizontally(); } } if(shootTimer > 20){ setImage(shootAnimation3); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(!schautNachRechts){ getImage().mirrorHorizontally(); } } if(shootTimer > 30){ setImage(shootAnimation4); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(!schautNachRechts){ getImage().mirrorHorizontally(); } } if(shootTimer > 40){ setImage(defaultAnimation); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); isShooting = false; if(!schautNachRechts){ getImage().mirrorHorizontally(); } } } public void animationUlti(){ if(ultiTimer > 0){ setImage(ultiAnimation1); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(!schautNachRechts){ getImage().mirrorHorizontally(); } } if(ultiTimer > 10){ setImage(ultiAnimation2); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(!schautNachRechts){ getImage().mirrorHorizontally(); } } if(ultiTimer > 20){ setImage(ultiAnimation3); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(!schautNachRechts){ getImage().mirrorHorizontally(); } } if(ultiTimer > 30){ setImage(ultiAnimation4); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(!schautNachRechts){ getImage().mirrorHorizontally(); } } if(ultiTimer > 40){ setImage(defaultAnimation); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); isUlti = false; if(!schautNachRechts){ getImage().mirrorHorizontally(); } } } public void animationLaufen(){ if(laeuft &! attacking &! attacking2 &! isShooting &! isUlti){ 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("d")){ isBlocking = true; setImage(blockAnimation); GreenfootImage image = getImage(); image.scale(250, 250); setImage(image); if(!schautNachRechts){ getImage().mirrorHorizontally(); } } if(isBlocking &! Greenfoot.isKeyDown("d")){ 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"; shootAnimation1 = "RenShoot1.png"; shootAnimation2 = shootAnimation1; shootAnimation3 = "RenShoot2.png"; shootAnimation4 = shootAnimation3; ultiAnimation1 = "RenUlti1.png"; ultiAnimation2 = "RenUlti2.png"; ultiAnimation3 = "RenUlti3.png"; ultiAnimation4 = "RenUlti4.png"; attack2Duration = 1; speed = 6; maxLeben = 250; leben = maxLeben; speedFaktor = 1; speedFaktor2 = speedFaktor; vDashSpeedCharakter = 12; maxShakra = 30; 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"; shootAnimation1 = "TetsuShoot1.png"; shootAnimation2 = "TetsuShoot2.png"; shootAnimation3 = "TetsuShoot3.png"; shootAnimation4 = "TetsuShoot4.png"; ultiAnimation1 = "TetsuUlti1.png"; ultiAnimation2 = "TetsuUlti2.png"; ultiAnimation3 = "TetsuUlti3.png"; ultiAnimation4 = "TetsuUlti4.png"; attack2Duration = 2; speed = 4; maxLeben = 300; leben = maxLeben; speedFaktor = 0.5; speedFaktor2 = 0.75; vDashSpeedCharakter = 10; maxShakra = 30; 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"; shootAnimation1 = "HinataShoot1.png"; shootAnimation2 = "HinataShoot2.png"; shootAnimation3 = "HinataShoot3.png"; shootAnimation4 = "HinataShoot4.png"; ultiAnimation1 = "HinataUlti1.png"; ultiAnimation2 = "HinataUlti2.png"; ultiAnimation3 = "HinataUlti3.png"; ultiAnimation4 = "HinataUlti4.png"; attack2Duration = 1; speed = 8; maxLeben = 200; leben = maxLeben; speedFaktor = 2; speedFaktor2 = 8; vDashSpeedCharakter = 14; maxShakra = 30; shakra = maxShakra; } setImage(defaultAnimation); GreenfootImage image = getImage(); image.scale(250,250); setImage(image); } }