Projet d'Exploration Informatique Index du Forum
Projet d'Exploration Informatique
Les élèves de 6TT Informatique vous présentent leurs projets de fin d'études
 
Projet d'Exploration Informatique Index du ForumFAQRechercherS’enregistrerConnexion

:: Rapport d'activité [2] ::

 
Poster un nouveau sujet   Répondre au sujet    Projet d'Exploration Informatique Index du Forum -> Les projets de l'année 2018-2019 -> 41 Gary - Jeu 'hack & slash' dans l'école en Java pour Windows
Sujet précédent :: Sujet suivant  
Auteur Message
garydaneels
6TT-2018

Hors ligne

Inscrit le: 16 Oct 2017
Messages: 5
Localisation: belgique
Masculin

MessagePosté le: Jeu 27 Sep - 11:58 (2018)    Sujet du message: Rapport d'activité [2] Répondre en citant

cette semaine, j'ai coder les animations et les utilisables. ( objets )
La Flèche
Code:
package Model;

import java.util.ArrayList;

//Arme à distance + bonus, classe servant à lancer un ThreadFlèche

public class Flèche extends Bonus implements Usable, Deletable, Directable {
   
   private int range;
   private int direction;
   private ArrayList<DeletableObserver> observer = new ArrayList<DeletableObserver>();
   
   public Flèche(int posX, int posY, int direction, int range, Game game) {//constructeur
      super(posX, posY, 10, game);
      this.direction = direction;
      this.range = range;
   }
   
   public int getRange() {//getteurs
      return this.range;
   }

   public int getDirection() {//méthode de l'interface Directable
      return this.direction;
   }
   
   public void setDirection(int direction) {//setteur
      this.direction = direction;
   }
   
   public boolean isObstacle() {//méthode utile lors du placement de chaque élément sur la Map
      return false;
   }
   
   public void use() {//méthode de l'interface Usable
      Hero hero = this.getGame().getHero().get(0);
      this.setPosX(hero.getPosX());
      this.setPosY(hero.getPosY());
      this.setDirection(hero.getDirection());
      ArrayList<GameObject> objects = this.game.getGameObjects();
      if (hero.getArme() == 2) {
         objects.add(this);
         Thread thread = new Thread(new ThreadFlèche(hero, range, this));
         thread.start();
      }
   }
   
   public void crush(){//méthode permettant de supprimer un élément de la Map
        notifyDeletableObserver();
    }

    public void attachDeletable(DeletableObserver po) {//méthode de l'interface Deletable
        observer.add(po);
    }

    public void notifyDeletableObserver() {//méthode de l'interface Deletable
        int i = 0;
        for (DeletableObserver o : observer) {
            i++;
            o.delete(this, null);
        }
    }
}

Bloc Toxic
Code:
package Model;

//Bloc retirant de la vie au héros lorsqu'il passe dessus

public class BlockToxic extends Block implements Runnable {

   private Thread thread;
   private Hero hero;
   static int x = 0;
   
   public BlockToxic(int posX, int posY, Game game) {
      super(posX, posY, 2, false, game);
      hero = game.getHero().get(0);
      this.thread = new Thread(this);
      this.thread.start();
   }
   
   public void run() {
      while(0 < hero.getLife() ) {
         try {
            Thread.sleep(100);
         }
         
         catch (Exception e1) {
            e1.printStackTrace();
         }
         
         int posXHero = hero.getPosX();
         int posYHero = hero.getPosY();
         int posXBlockToxic = this.getPosX();
         int posYBlockToxic = this.getPosY();
         if (posXHero == posXBlockToxic && posYHero == posYBlockToxic && hero.getAttackable() == true) {
            try {
               this.attackHero(hero);
               Thread.sleep(1000);
            }
      
            catch(Exception e) {
               e.printStackTrace();
            }
         }
      }
   }   
   
   public void attackHero(Hero hero) {
      hero.setLife(hero.getLife() - 1);
      game.notifyView();
            
      if (hero.getLife() == 0) {
         hero.getGame().setGameOver(true);
      }
   }
   
   public boolean isObstacle() {
      return false;
   }
}

La Bombe
Code:
package Model;

import java.util.ArrayList;

//Bonus qui retire de la vie aux ennemis et aux blocs cassables dans un certain rayon pendant une certaine durée en lancant un ThreadExplosion

public class Bombe extends Bonus implements Usable{
   
   private int timeExplosion;
   private int range;
   
   public Bombe(int posX, int posY, int timeExplosion, int range, Game game) {
      super(posX, posY, 8, game);
      this.timeExplosion = timeExplosion;
      this.range = range;
   }

   public int getTimeExplosion() {
      return this.timeExplosion;
   }
   
   public int getRange() {
      return this.range;
   }
   
   public void use() {
      Hero hero = this.getGame().getHero().get(0);
      ArrayList<GameObject> objects = this.game.getGameObjects();
      Thread thread = new Thread(new ThreadExplosion(hero, timeExplosion, range));
      thread.start();
      game.notifyView();
   }
}

La Potion De Soin
Code:
package Model;

//Bonus rendant un certain nombre de PV au héros

public class PotionSoin extends Bonus implements Usable {

   private int returnedPV;
   
   public PotionSoin(int posX, int posY, int returnedPV, Game game) {//constructeur
      super(posX, posY, 7, game);
      this.returnedPV = returnedPV;
   }
   
   public int getReturnedPV() {//getteur
      return this.returnedPV;
   }
   
   public void use() {//méthode de l'interface Usable
      Hero hero = game.getHero().get(0);
      if (hero.getLife() <= 15 - returnedPV) {
         hero.setLife(hero.getLife() + returnedPV);
      }
      
      else {
         hero.setLife(15);
      }
   }   
}

_________________
Revenir en haut
Publicité






MessagePosté le: Jeu 27 Sep - 11:58 (2018)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Projet d'Exploration Informatique Index du Forum -> Les projets de l'année 2018-2019 -> 41 Gary - Jeu 'hack & slash' dans l'école en Java pour Windows Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  

Portail | Index | Panneau d’administration | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Texno x0.3 © theme by Larme D'Ange 2006
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com