Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.w3c.dom.css.Rect;
- import javax.swing.*;
- import java.awt.*;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashMap;
- public class Model extends JPanel {
- /*
- @Override
- public void setDoubleBuffered(boolean aFlag) {
- super.setDoubleBuffered(aFlag);
- }*/
- int Width = 50, Height = 50;
- Color farge = new Color(50, 50, 200);
- Color farge2 = new Color(50, 50, 50);
- int PosX = 100, PosY = 400;
- private int bakkePosX = 0, bakkePosY = 500, bakkeWidth = 1000, bakkeHeight = 25;
- boolean right = false, left = false, jump = false, falling = true, dobbeljump = false;
- int jumpheight = 250, dobbeljumpheight = 150, temp, dobbeltemp, sjekk = 0;
- public Rectangle playerRect = new Rectangle();
- Rectangle bakkeRect = new Rectangle();
- Rectangle skud = new Rectangle();
- private HashMap<String, Date> cooldowns = new HashMap<>();
- boolean skutt = false;
- private int sPosX = PosX + 60, sPosY = PosY, sWidth = 10, sHeight = 10;
- int sRetning = 0;
- private int maxHP = 15, maxMP = 15, HP = 8, MP = 10, HPregen = 1, MPregen = 1, level = 1;
- int maxXP = 100, XP = 0, LevelInterval = 1;
- public Model(){setDoubleBuffered(true);}
- public void kjor(Graphics2D g){
- setDoubleBuffered(true);
- tegne(g);
- bevegelse();
- regen();
- if (maxXP <= XP){levelUp();}
- }
- public void tegne(final Graphics2D g) {
- setDoubleBuffered(true);
- super.paint(g);
- g.clearRect(0, 0, 10000, 10000);
- g.setColor(farge);
- g.fillRect(PosX, PosY, Width, Height);
- playerRect.setBounds(PosX, PosY, Width, Height);
- g.setColor(farge2);
- g.fillRect(bakkePosX, bakkePosY, bakkeWidth, bakkeHeight);
- bakkeRect.setBounds(bakkePosX, bakkePosY, bakkeWidth, bakkeHeight);
- //HUD
- double dmaxHP = maxHP, dHP = HP, dmaxMP = maxMP, dMP = MP, dmaxXP = maxXP, dXP = XP, prosentHP = (dHP/dmaxHP)*100, prosentMP = (dMP/dmaxMP)*100, prosentXP = (dXP/dmaxXP)*100;
- int HPBar = (int)prosentHP, MPBar = (int)prosentMP, XPBar = (int)prosentXP;
- g.setColor(Color.RED);
- g.fillRect(50,60,(200*HPBar)/100,18);
- g.setColor(Color.BLUE);
- g.fillRect(50,90,(200*MPBar)/100,18);
- g.setColor(Color.PINK);
- g.fillRect(50,120,(200*XPBar)/100,18);
- g.setColor(Color.BLACK);
- g.drawRect(50,60,200,18);
- g.drawRect(50,90,200,18);
- g.drawRect(50,120,200,18);
- g.drawString("HP: " + HP + "/" + maxHP, 100,74);
- g.drawString("MP: " + MP + "/" + maxMP, 100,104);
- g.drawString("XP: " + XP + "/" + maxXP, 100,134);
- g.drawString("Level: " + level, 80, 50);
- if (skutt) {
- g.setColor(Color.RED);
- g.fillRect(sPosX, sPosY, sWidth, sHeight);
- skud.setBounds(sPosX, sPosY, sWidth, sHeight);
- }
- }
- public void bevegelse() {
- if (left) {
- PosX -= 8;
- }
- if (right) {
- PosX += 8;
- }
- if (jump) {
- if (temp < PosY) {
- PosY -= 20;
- } else if (temp >= PosY) {
- jump = false;
- falling = true;
- }
- }
- if (dobbeljump) {
- if (dobbeltemp < PosY) {
- PosY -= 20;
- falling = false;
- } else if (dobbeltemp >= PosY) {
- dobbeljump = false;
- falling = true;
- sjekk = 1;
- }
- }
- if (playerRect.intersects(bakkeRect)) {
- falling = false;
- temp = PosY - jumpheight;
- dobbeljump = false;
- sjekk = 0;
- PosY--;
- }
- if (falling) {
- PosY += 15;
- }
- if (skutt) {
- if (PosX < sPosX) {
- sPosX += 20;
- } else if (PosX > sPosX) {
- sPosX -= 20;
- }
- }
- }
- public void regen(){
- if (cooldown(2000, "mana")){
- MP += MPregen;
- if (MP > maxMP){MP = maxMP;}
- }
- if (cooldown(5000, "health")){
- HP += HPregen;
- if (HP > maxHP){HP = maxHP;}
- }
- }
- public boolean cooldown(int tid, String r) {
- if (cooldowns.containsKey(r)) {
- if (cooldowns.get(r).getTime() > new Date().getTime()) {
- return false;
- }
- else {
- cooldowns.remove(r);
- cooldowns.put(r, new Date(new Date().getTime() + tid));
- return true;
- }
- }
- else {
- cooldowns.put(r, new Date(new Date().getTime() + tid));
- return true;
- }
- }
- public void fireball(){
- if (cooldown(1000, "ildball") && MP >= 5 && level >= 2) {
- if (sRetning == 0) {sPosX = PosX + 60;}
- else if (sRetning == 1) {sPosX = PosX - 60;}
- sPosY = PosY + 20;
- skutt = true;
- MP -= 5;
- }
- }
- public void levelUp(){
- maxHP += 2; HP +=2;
- maxMP += 5; MP +=5;
- XP = XP - maxXP;
- maxXP = 100 + level*20;
- level++;
- if (LevelInterval == 5){HPregen += 2;}
- if (LevelInterval == 2 || LevelInterval == 4){MPregen += 1;}
- LevelInterval++;
- if (LevelInterval==9){LevelInterval=0;}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement