Advertisement
Guest User

Model

a guest
Apr 19th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.43 KB | None | 0 0
  1. import org.w3c.dom.css.Rect;
  2.  
  3. import javax.swing.*;
  4. import java.awt.*;
  5. import java.util.ArrayList;
  6. import java.util.Date;
  7. import java.util.HashMap;
  8.  
  9. public class Model extends JPanel {
  10. /*
  11.     @Override
  12.     public void setDoubleBuffered(boolean aFlag) {
  13.         super.setDoubleBuffered(aFlag);
  14.     }*/
  15.  
  16.     int Width = 50, Height = 50;
  17.     Color farge = new Color(50, 50, 200);
  18.     Color farge2 = new Color(50, 50, 50);
  19.     int PosX = 100, PosY = 400;
  20.     private int bakkePosX = 0, bakkePosY = 500, bakkeWidth = 1000, bakkeHeight = 25;
  21.     boolean right = false, left = false, jump = false, falling = true, dobbeljump = false;
  22.     int jumpheight = 250, dobbeljumpheight = 150, temp, dobbeltemp, sjekk = 0;
  23.     public Rectangle playerRect = new Rectangle();
  24.     Rectangle bakkeRect = new Rectangle();
  25.     Rectangle skud = new Rectangle();
  26.     private HashMap<String, Date> cooldowns = new HashMap<>();
  27.  
  28.     boolean skutt = false;
  29.     private int sPosX = PosX + 60, sPosY = PosY, sWidth = 10, sHeight = 10;
  30.     int sRetning = 0;
  31.  
  32.     private int maxHP = 15, maxMP = 15, HP = 8, MP = 10, HPregen = 1, MPregen = 1, level = 1;
  33.     int maxXP = 100, XP = 0, LevelInterval = 1;
  34.  
  35.     public Model(){setDoubleBuffered(true);}
  36.  
  37.     public void kjor(Graphics2D g){
  38.         setDoubleBuffered(true);
  39.         tegne(g);
  40.         bevegelse();
  41.         regen();
  42.         if (maxXP <= XP){levelUp();}
  43.     }
  44.  
  45.     public void tegne(final Graphics2D g) {
  46.         setDoubleBuffered(true);
  47.         super.paint(g);
  48.         g.clearRect(0, 0, 10000, 10000);
  49.         g.setColor(farge);
  50.         g.fillRect(PosX, PosY, Width, Height);
  51.         playerRect.setBounds(PosX, PosY, Width, Height);
  52.         g.setColor(farge2);
  53.         g.fillRect(bakkePosX, bakkePosY, bakkeWidth, bakkeHeight);
  54.         bakkeRect.setBounds(bakkePosX, bakkePosY, bakkeWidth, bakkeHeight);
  55.  
  56.         //HUD
  57.         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;
  58.         int HPBar = (int)prosentHP, MPBar = (int)prosentMP, XPBar = (int)prosentXP;
  59.         g.setColor(Color.RED);
  60.         g.fillRect(50,60,(200*HPBar)/100,18);
  61.         g.setColor(Color.BLUE);
  62.         g.fillRect(50,90,(200*MPBar)/100,18);
  63.         g.setColor(Color.PINK);
  64.         g.fillRect(50,120,(200*XPBar)/100,18);
  65.         g.setColor(Color.BLACK);
  66.         g.drawRect(50,60,200,18);
  67.         g.drawRect(50,90,200,18);
  68.         g.drawRect(50,120,200,18);
  69.         g.drawString("HP: " + HP + "/" + maxHP, 100,74);
  70.         g.drawString("MP: " + MP + "/" + maxMP, 100,104);
  71.         g.drawString("XP: " + XP + "/" + maxXP, 100,134);
  72.         g.drawString("Level: " + level, 80, 50);
  73.  
  74.         if (skutt) {
  75.             g.setColor(Color.RED);
  76.             g.fillRect(sPosX, sPosY, sWidth, sHeight);
  77.             skud.setBounds(sPosX, sPosY, sWidth, sHeight);
  78.         }
  79.     }
  80.  
  81.     public void bevegelse() {
  82.  
  83.         if (left) {
  84.             PosX -= 8;
  85.         }
  86.         if (right) {
  87.             PosX += 8;
  88.         }
  89.         if (jump) {
  90.             if (temp < PosY) {
  91.                 PosY -= 20;
  92.             } else if (temp >= PosY) {
  93.                 jump = false;
  94.                 falling = true;
  95.             }
  96.         }
  97.         if (dobbeljump) {
  98.             if (dobbeltemp < PosY) {
  99.                 PosY -= 20;
  100.                 falling = false;
  101.             } else if (dobbeltemp >= PosY) {
  102.                 dobbeljump = false;
  103.                 falling = true;
  104.                 sjekk = 1;
  105.             }
  106.         }
  107.         if (playerRect.intersects(bakkeRect)) {
  108.             falling = false;
  109.             temp = PosY - jumpheight;
  110.             dobbeljump = false;
  111.             sjekk = 0;
  112.             PosY--;
  113.         }
  114.         if (falling) {
  115.             PosY += 15;
  116.         }
  117.         if (skutt) {
  118.             if (PosX < sPosX) {
  119.                 sPosX += 20;
  120.             } else if (PosX > sPosX) {
  121.                 sPosX -= 20;
  122.             }
  123.         }
  124.  
  125.     }
  126.  
  127.     public void regen(){
  128.         if (cooldown(2000, "mana")){
  129.             MP += MPregen;
  130.             if (MP > maxMP){MP = maxMP;}
  131.         }
  132.         if (cooldown(5000, "health")){
  133.             HP += HPregen;
  134.             if (HP > maxHP){HP = maxHP;}
  135.         }
  136.     }
  137.  
  138.     public boolean cooldown(int tid, String r) {
  139.         if (cooldowns.containsKey(r)) {
  140.             if (cooldowns.get(r).getTime() > new Date().getTime()) {
  141.                 return false;
  142.             }
  143.             else {
  144.                 cooldowns.remove(r);
  145.                 cooldowns.put(r, new Date(new Date().getTime() + tid));
  146.                 return true;
  147.             }
  148.         }
  149.         else {
  150.             cooldowns.put(r, new Date(new Date().getTime() + tid));
  151.             return true;
  152.         }
  153.     }
  154.  
  155.     public void fireball(){
  156.         if (cooldown(1000, "ildball") && MP >= 5 && level >= 2) {
  157.             if (sRetning == 0) {sPosX = PosX + 60;}
  158.             else if (sRetning == 1) {sPosX = PosX - 60;}
  159.             sPosY = PosY + 20;
  160.             skutt = true;
  161.             MP -= 5;
  162.         }
  163.     }
  164.  
  165.     public void levelUp(){
  166.         maxHP += 2; HP +=2;
  167.         maxMP += 5; MP +=5;
  168.         XP = XP - maxXP;
  169.         maxXP = 100 + level*20;
  170.         level++;
  171.         if (LevelInterval == 5){HPregen += 2;}
  172.         if (LevelInterval == 2 || LevelInterval == 4){MPregen += 1;}
  173.  
  174.         LevelInterval++;
  175.         if (LevelInterval==9){LevelInterval=0;}
  176.     }
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement