fenetrePrincipale.java
À propos du fichier
- Type de fichier
- Fichier JAVA de 29 Ko (text/plain)
- Confidentialité
- Fichier public, envoyé le 16 novembre 2012 à 18:47, depuis l'adresse IP 92.90.x.x (France)
- Sécurité
- Ne contient aucun Virus ou Malware connus - Dernière vérification: hier
- Statistiques
- La présente page de téléchargement a été vue 997 fois depuis l'envoi du fichier
- Page de téléchargement
-
Aperçu du fichier
package TM;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import java.awt.Component;
import java.awt.Container;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.LinkedList;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.imageio.ImageReader;
import java.awt.Component;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.AbstractButton;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class fenetrePrincipale {
//PRINCIPAUX COMPOSANTS
public static boolean begin = true;
JButton mario = new JButton();
int marioX = mario.getX();
int marioY = mario.getY();
JButton ennemi[] = new JButton[25];
int eX[] = new int[25];
int eY[] = new int[25];
JButton peach = new JButton();
int peachX = peach.getX();
int peachY = peach.getY();
JButton bas = new JButton();
int basY = bas.getY();
JButton etage1 = new JButton();
int etage1Y = etage1.getY();
JButton etage2 = new JButton();
int etage2Y = etage2.getY();
JButton bloc[] = new JButton[69];
int bX[] = new int[69];
int bY[] = new int[69];
JButton pieces = new JButton();
JButton vies = new JButton();
JButton countdown = new JButton();
JButton Score = new JButton();
int secondes;
int totalPieces = 0;
int vie = 3;
int score = 0;
int w = 19;
int h = 20;
int wE = 17;
int hE = 16;
int wP = 24;
int hP = 39;
int wPi = 12;
int hPi = 12;
int wC = 20;
int hC = 20;
int wT = 20;
int hT = 33;
int wB = 16;
int hB = 16;
int i;
int j;
boolean tortueDebout = true;
boolean marioDroite;
boolean marioToucheEnnemi = false;
boolean marioToucheTortue = false;
boolean marioTouchePiece = false;
boolean marioToucheChampi = false;
boolean marioToucheBlocDroite = false;
boolean marioToucheBlocGauche = false;
boolean marioATerre = true;
boolean marioPetit = true;
boolean marioBas = true;
boolean marioEtage1;
boolean marioEtage2;
Point p = mario.getLocation();
//METHODE DE LA FENETRE PRINCIPALE (CONSTRUCTEURS)
public fenetrePrincipale() {
JFrame fenetre = new JFrame();
JPanel panneauPrincipal = new JPanel(){
/**
*
*/
private static final long serialVersionUID = 1L;
protected void paintComponent(Graphics g) //DESSINE L'IMAGE DE FOND
{
super.paintComponent(g);
ImageIcon m = new ImageIcon("fondBleu.jpg");
Image monImage = m.getImage();
g.drawImage(monImage, 0, 0,this);
}
};
panneauPrincipal.setLayout(null);
fenetre.setTitle("Super Mario 2012");
fenetre.setSize(1680, 1050);
fenetre.add(panneauPrincipal);
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre.setVisible(true);
pieces.setText("Total de pieces:" +totalPieces);
pieces.setBounds(730,10,150,50);
vies.setText("Vies restantes:" +vie);
vies.setBounds(940,10,150,50);
Score.setText("score:" +score);
Score.setBounds(400,10,100,50);
countdown.setBounds(560,10,150,50);
mario.setIcon(new ImageIcon("petit normal.png"));
mario.setBounds(10,904,w,h);
marioX = mario.getX();
marioY = mario.getY();
marioDroite = true;
p = mario.getLocation();
eX[0] = 50;
eX[1] = 150;
eX[2] = 250;
eX[3] = 350;
eX[4] = 450;
eX[5] = 550;
eX[6] = 650;
eX[7] = 750;
eX[8] = 850;
eX[9] = 50;
eX[10] = 150;
eX[11] = 250;
eX[12] = 350;
eX[13] = 450;
eX[14] = 550;
eX[15] = 650;
eX[16] = 750;
eX[17] = 50;
eX[18] = 150;
eX[19] = 250;
eX[20] = 350;
eX[21] = 450;
eX[22] = 550;
eX[23] = 650;
eX[24] = 750;
eY[0] = 908;
eY[1] = 908;
eY[2] = 908;
eY[3] = 908;
eY[4] = 908;
eY[5] = 908;
eY[6] = 908;
eY[7] = 908;
eY[8] = 908;
eY[9] = 624;
eY[10] = 624;
eY[11] = 624;
eY[12] = 624;
eY[13] = 624;
eY[14] = 624;
eY[15] = 624;
eY[16] = 624;
eY[17] = 340;
eY[18] = 340;
eY[19] = 340;
eY[20] = 340;
eY[21] = 340;
eY[22] = 340;
eY[23] = 340;
eY[24] = 340;
/*for (i=0; i<0; i++) {
ennemi[i] = new JButton();
ennemi[i].setIcon(new ImageIcon("mŽchant.png"));
ennemi[i].setFocusable(false);
ennemi[i].setBounds(eX[i], eY[i] , wE, hE);
eX[i] = ennemi[i].getX();
eY[i] = ennemi[i].getY();
panneauPrincipal.add(ennemi[i]);
}
*/
peach.setIcon(new ImageIcon("peach.png"));
peach.setBounds(1640,318,wP, hP);
peachX = peach.getX();
peachY = peach.getY();
bas.setBounds(0,924,1700,20);
bas.setIcon(new ImageIcon("bas.png"));
basY = bas.getY();
etage1.setBounds(0,640,1680,10);
etage1.setIcon(new ImageIcon("etage.png"));
etage1Y = etage1.getY();
etage2.setBounds(0,356,1680,10);
etage2.setIcon(new ImageIcon("etage.png"));
etage2Y = etage2.getY();
bX[0] = 105;
bX[1] = 121;
bX[2] = 137;
bX[3] = 153;
bX[4] = 272;
bX[5] = 288;
bX[6] = 302;
bX[7] = 318;
bX[8] = 334;
bX[9] = 350;
bX[10] = 366;
bX[11] = 382;
bX[12] = 570;
bX[13] = 586;
bX[14] = 586;
bX[15] = 602;
bX[16] = 602;
bX[17] = 602;
bX[18] = 618;
bX[19] = 618;
bX[20] = 618;
bX[21] = 618;
bX[22] = 634;
bX[23] = 634;
bX[24] = 634;
bX[25] = 634;
bX[26] = 634;
bX[27] = 1320;
bX[28] = 1336;
bX[29] = 1336;
bX[30] = 1352;
bX[31] = 1352;
bX[32] = 1352;
bX[33] = 1368;
bX[34] = 1368;
bX[35] = 1384;
bX[36] = 135;
bX[37] = 175;
bX[38] = 215;
bX[39] = 255;
bX[40] = 295;
bX[41] = 335;
bX[42] = 375;
bX[43] = 415;
bX[44] = 431;
bX[45] = 447;
bX[46] = 455;
bX[47] = 471;
bX[48] = 487;
bX[49] = 495;
bX[50] = 527;
bX[51] = 550;
bX[52] = 590;
bX[53] = 630;
bX[54] = 670;
bX[55] = 710;
bX[56] = 750;
bX[57] = 790;
bX[58] = 830;
bX[59] = 870;
bX[60] = 910;
bX[61] = 950;
bX[62] = 1000;
bX[63] = 1000;
bX[64] = 1084;
bX[65] = 1084;
bX[66] = 1168;
bX[67] = 1168;
bX[68] = 1300;
bY[0] = 884;
bY[1] = 884;
bY[2] = 884;
bY[3] = 884;
bY[4] = 908;
bY[5] = 908;
bY[6] = 908;
bY[7] = 908;
bY[8] = 908;
bY[9] = 908;
bY[10] = 908;
bY[11] = 908;
bY[12] = 908;
bY[13] = 908;
bY[14] = 892;
bY[15] = 908;
bY[16] = 892;
bY[17] = 876;
bY[18] = 908;
bY[19] = 892;
bY[20] = 876;
bY[21] = 860;
bY[22] = 908;
bY[23] = 892;
bY[24] = 876;
bY[25] = 860;
bY[26] = 844;
bY[27] = 908;
bY[28] = 908;
bY[29] = 892;
bY[30] = 908;
bY[31] = 892;
bY[32] = 876;
bY[33] = 908;
bY[34] = 892;
bY[35] = 908;
bY[36] = 624;
bY[37] = 575;
bY[38] = 540;
bY[39] = 575;
bY[40] = 540;
bY[41] = 505;
bY[42] = 470;
bY[43] = 435;
bY[44] = 508;
bY[45] = 585;
bY[46] = 435;
bY[47] = 508;
bY[48] = 600;
bY[49] = 435;
bY[50] = 624;
bY[51] = 410;
bY[52] = 410;
bY[53] = 410;
bY[54] = 410;
bY[55] = 410;
bY[56] = 410;
bY[57] = 410;
bY[58] = 410;
bY[59] = 410;
bY[60] = 410;
bY[61] = 410;
bY[62] = 624;
bY[63] = 608;
bY[64] = 624;
bY[65] = 608;
bY[66] = 624;
bY[67] = 608;
bY[68] = 624;
for (i=0; i<bloc.length; i++) {
bloc[i] = new JButton();
bloc[i].setIcon(new ImageIcon("mur.png"));
bloc[i].setBounds(bX[i], bY[i] , wB, hB);
bX[i] = bloc[i].getX();
bY[i] = bloc[i].getY();
panneauPrincipal.add(bloc[i]);
bloc[i].setFocusable(false);
}
panneauPrincipal.add(peach);
panneauPrincipal.add(vies);
panneauPrincipal.add(mario);
panneauPrincipal.add(etage2);
panneauPrincipal.add(bas);
panneauPrincipal.add(etage1);
panneauPrincipal.add(countdown);
panneauPrincipal.add(Score);
panneauPrincipal.add(pieces);
vies.setFocusable(false);
peach.setFocusable(false);
etage2.setFocusable(false);
etage1.setFocusable(false);
bas.setFocusable(false);
pieces.setFocusable(false);
Score.setFocusable(false);
countdown.setFocusable(false);
Thread s = new Thread() {
public void run() {
for (secondes = 100; secondes >= 0; secondes--)
{
countdown.setText("temps restant:" +secondes);
if (secondes == 0)
gameOver();
try { Thread.sleep(1000); } catch (InterruptedException e) { }
}
}
};
s.start();
//DEPLACEMENTS DE MARIO
mario.addKeyListener(controleMario());
} // public fenetrePrincipale()
//METHODE DE FIN (DEFAITE)
public void gameOver() {
JFrame gameOver = new JFrame();
JPanel panneauGameOver = new JPanel();
panneauGameOver.setLayout(new GridLayout(4,1));
gameOver.setLocationRelativeTo(null);
gameOver.setTitle("Game Over");
gameOver.setSize(447, 600);
JButton perdu = new JButton("VOUS AVEZ PERDU!");
perdu.setIcon(new ImageIcon("marioDefaite0.jpg"));
perdu.setFocusable(false);
JButton enregistrer = new JButton();
enregistrer.setIcon(new ImageIcon("marioDefaite1.jpg"));
enregistrer.addActionListener(new Action1());
enregistrer.setFocusable(false);
JButton recommencer = new JButton();
recommencer.setIcon(new ImageIcon("marioDefaite2.jpg"));
recommencer.addActionListener(new Action2());
recommencer.setFocusable(false);
JButton quitter = new JButton();
quitter.setIcon(new ImageIcon("marioDefaite3.jpg"));
quitter.addActionListener(new Action3());
quitter.setFocusable(false);
panneauGameOver.add(perdu);
panneauGameOver.add(enregistrer);
panneauGameOver.add(recommencer);
panneauGameOver.add(quitter);
gameOver.add(panneauGameOver);
gameOver.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gameOver.setVisible(true);
}
//METHODE DE FIN (VICTOIRE)
public void victoire(){
JFrame victoire = new JFrame();
JPanel panneauVictoire = new JPanel();
panneauVictoire.setLayout(new GridLayout(4,1));
victoire.setTitle("Victoire!");
victoire.setSize(700,933);
victoire.setLocationRelativeTo(null);
JButton bravo = new JButton();
bravo.setIcon(new ImageIcon("marioVictoire0.jpg"));
JButton enregistrer = new JButton();
enregistrer.setIcon(new ImageIcon("marioVictoire1.jpg"));
enregistrer.addActionListener(new Action1());
JButton recommencer = new JButton();
recommencer.setIcon(new ImageIcon("marioVictoire2.jpg"));
recommencer.addActionListener(new Action2());
JButton quitter = new JButton();
quitter.setIcon(new ImageIcon("marioVictoire3.jpg"));
quitter.addActionListener(new Action3());
panneauVictoire.add(bravo);
panneauVictoire.add(enregistrer);
panneauVictoire.add(recommencer);
panneauVictoire.add(quitter);
victoire.getContentPane().add(panneauVictoire);
victoire.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
victoire.setVisible(true);
}
class Action1 implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
enregistrerScore();
}
}
class Action2 implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
TM.fenetrePrincipale fenetre3 = new fenetrePrincipale();
}
}
class Action3 implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
//METHODE POUR ENREGISTRER LE SCORE
public void enregistrerScore() {
String nom;
String chaine ="";
String fichier = "meilleurs scores.txt";
//demande le nom du joueur pour les highscores.
nom=(String)JOptionPane.showInputDialog("Entrez votre nom:");
try{
InputStream ips=new FileInputStream(fichier);
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);
String ligne;
while ((ligne=br.readLine())!=null){
chaine+=ligne+"\n";
}
br.close();
}
catch (Exception e)
{
System.out.println(e.toString());
}
try {
FileWriter fw = new FileWriter (fichier);
BufferedWriter bw = new BufferedWriter (fw);
PrintWriter fichierSortie = new PrintWriter (bw);
fichierSortie.println ("\n" +chaine+ "\n" + nom + " a fait " + score + "points");
fichierSortie.close();
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
//METHODE DU CONTACT
public void contact() {
//CONTACT MARIO + ENNEMI
/*for (i=0;i<0;i++)
if ((marioX + w >= eX[i]) //CONTACT PAR LE HAUT AVEC ENNEMI
&!(marioX > eX[i] + wE)
&(marioY + h >= eY[i])
&!(marioY > eY[i] + hE)
&(marioY + h -5 <= eY[i])
&(ennemi[i].isEnabled())) {
ennemi[i].setEnabled(false);
ennemi[i].setVisible(false);
score = score + 50;
Score.setText("score:" +score);
}
if ((marioX + w >= eX[i]) //CONTACT PAR LE COTE AVEC ENNEMI
&!(marioX > eX[i] + wE)
&(marioY + h >= eY[i])
&!(marioY > eY[i] + hE)
&!(marioY + h -5 <= eY[i])
&(ennemi[i].isEnabled())) {
if (marioPetit) {
marioToucheEnnemi = true;
vie--;
vies.setText("Vies restantes:" +vie);
if (vie == 0)
gameOver();
mario.setBounds(10,904,w,h);
marioX = mario.getX();
marioY = mario.getY();
p = mario.getLocation();
}
else {
mario.setSize(w,h);
if (marioDroite)
mario.setIcon(new ImageIcon("petit normal.png"));
else
mario.setIcon(new ImageIcon("petit normal 2.png"));
}
}
//CONTACT MARIO + PIECE
for (i=0; i<XX; i++)
if ((marioX + w >= piX[i])
&!(marioX > piX[i] + wPi)
&(marioY + h >= piY[i])
&!(marioY > piY[i] + hPi)
&(piece.isEnabled()))
{
piece[i].setEnabled(false);
piece[i].setVisible(false);
totalPieces++;
pieces.setText("Total de pieces:" + totalPieces);
if (totalPieces == 10) {
totalPieces = 0;
vie++;
vies.setText("Vies restantes:" +vie);
}
score = score + 10;
Score.setText("score:" +score);
}
*/
//CONTACT MARIO + PEACH
if ((marioX + w >= peachX)
&!(marioX > peachX + wP)
&(marioY + h >= peachY)
&!(marioY > peachY + hP))
victoire();
//CONTACT MARIO + TORTUE //CONTACT DEPUIS DESSUS SUR TORTUE DEBOUT
/* for (i=0; i<XX; i++)
if ((marioX + w >= tX[i])
&!(marioX > tX[i] + wT)
&(marioY + h >= tY[i])
&!(marioY > tY[i] + hT)
&(marioY + h -5 <= tY[i])
&(tortue.isEnabled())
&(tortueDebout[i])) {
tortueDebout[i] = false;
tortue[i].setSize(12,12);
tortue[i].setIcon(new ImageIcon("carapace.png"));
score = score + 50;
Score.setText("score:" +score);
}
if ((marioX + w >= tX[i]) //CONTACT DEPUIS LE COTE AVEC TORTUE DEBOUT
&!(marioX > tX[i] + wT)
&(marioY + h >= tY[i])
&!(marioY > tortueY + hT)
&!(marioY + h -5 <= tY[i])
&(tortue.isEnabled())
&(tortueDebout[i])) {
if (marioPetit) {
marioToucheTortue = true;
vie--;
vies.setText("Vies restantes:" +vie);
if (vie == 0)
gameOver();
mario.setBounds(10,904,w,h);
marioX = mario.getX();
marioY = mario.getY();
p = mario.getLocation();
}
else {
if (marioDroite)
mario.setIcon(new ImageIcon("petit normal.png"));
else
mario.setIcon(new ImageIcon("petit normal 2.png"));
mario.setSize(w,h);
tortue[i].setEnabled(false);
tortue[i].setVisible(false);
}
}
if ((marioX + w >= tX[i]) //CONTACT TORTUE CARAPACE
&!(marioX > tX[i] + wT)
&(marioY + h >= tY[i])
&!(marioY > tY[i] + hT)
&(tortue.isEnabled())
&!(tortueDebout[i]) {
tortue[i].setEnabled(false);
tortue[i].setVisible(false);
score = score + 50;
Score.setText("score:" +score);
}
//CONTACT MARIO + CHAMPI
for (i=0; i<champi.length; i++)
if ((marioX + w >= cX[i])
&!(marioX > cX[i] + wC)
&(marioY + h >= cY[i])
&!(marioY > cY[i] + hC)
&(champi.isEnabled())
&(marioATerre)) {
champi[i].setEnabled(false);
champi[i].setVisible(false);
if (marioPetit) {
if (marioDroite){
marioPetit =false;
mario.setLocation(p.x,p.y-12);
mario.setIcon(new ImageIcon("gros normal.png"));
mario.setSize(19,32);
}
else {
marioPetit =false;
mario.setLocation(p.x,p.y-14);
mario.setIcon(new ImageIcon("gros normal 2.png"));
mario.setSize(20,34);
}
}
else {
score = score + 50;
Score.setText("score:" +score);
}
}
*/
//CHANGEMENT D'ETAGE
if ((marioATerre)
&(marioX >= 1630)
&(marioY>324)) {
if (marioBas) {
marioBas = false;
marioEtage1 = true;
}
else
if (marioEtage1) {
marioEtage1 = false;
marioEtage2 = true;
}
mario.setLocation(p.x-1630, p.y-284);
marioX = mario.getX();
marioY = mario.getY();
p = mario.getLocation();
}
//CONTACT BORD GAUCHE
if (marioX<=3) {
i = 1;
if (marioBas) {
if (marioPetit) {
while (marioY + h < basY)
{
mario.setLocation(p.x-4, p.y+i);
marioX = mario.getX();
marioY = mario.getY();
p = mario.getLocation();
try {
Thread.sleep(30);
}
catch (InterruptedException e) {
e.printStackTrace();
}
marioATerre = false;
i++;
}
}
else {
while (marioY + 34 < etage2Y) {
mario.setLocation(p.x-4, p.y+i);
marioX = mario.getX();
marioY = mario.getY();
p = mario.getLocation();
try {
Thread.sleep(30);
}
catch (InterruptedException e) {
e.printStackTrace();
}
marioATerre = false;
i++;
}
}
}
if (marioEtage1) {
if (marioPetit) {
while (marioY + h < etage1Y) {
mario.setLocation(p.x-4, p.y+i);
marioX = mario.getX();
marioY = mario.getY();
p = mario.getLocation();
try {
Thread.sleep(30);
}
catch (InterruptedException e) {
e.printStackTrace();
}
marioATerre = false;
i++;
}
}
else {
while (marioY + 34 < etage2Y) {
mario.setLocation(p.x-4, p.y+i);
marioX = mario.getX();
marioY = mario.getY();
p = mario.getLocation();
try {
Thread.sleep(30);
}
catch (InterruptedException e) {
e.printStackTrace();
}
marioATerre = false;
i++;
}
}
}
if (marioEtage2) {
if (marioPetit){
while (marioY + h < etage2Y) {
mario.setLocation(p.x-4, p.y+i);
marioX = mario.getX();
marioY = mario.getY();
p = mario.getLocation();
try {
Thread.sleep(30);
}
catch (InterruptedException e) {
e.printStackTrace();
}
marioATerre = false;
i++;
}
}
else {
while (marioY + 34 < etage2Y) {
mario.setLocation(p.x-4, p.y+i);
marioX = mario.getX();
marioY = mario.getY();
p = mario.getLocation();
try {
Thread.sleep(30);
}
catch (InterruptedException e) {
e.printStackTrace();
}
marioATerre = false;
i++;
}
}
}
marioATerre = true;
}
}
/**
* Déplacement de Mario
* @param dx déplacement sur les X
* @param dy déplacement sur les Y
*/
private void deplacementMario(int dx, int dy)
{
double dxy = Math.sqrt(dx*dx+dy*dy); // distance à parcourir
LinkedList<Point> chemin = new LinkedList<Point>(); // points à traverser au cours du déplacement
int x = mario.getX(), y = mario.getY();
Point r = null;
for (double d=0; d<=dxy; d+=0.5)
{
Point p = new Point((int) (x+d*dx/dxy),(int) (y+d*dy/dxy)); // le prochain point de déplacement
if (!p.equals(r)) // s'il s'agit d'un nouveau point on l'ajoute à la liste
{
chemin.add(p);
r = p;
}
}
r = null;
// On contrôle que chaque point de déplacement n'est pas sur un obstacle
// Au premier obstacle on s'arrête
p: for (Point p : chemin) // pour chaque case du chemin
{
for (int i=0; i<bloc.length; i++) // pour chaque obstacle
{
if (((bX[i]>=p.x && bX[i]<=p.x+w) // si le bord gauche d'un obstacle est sur le trajet de Mario
Partager le fichier fenetrePrincipale.java sur le Web et les réseaux sociaux:
Télécharger le fichier fenetrePrincipale.java
Télécharger fenetrePrincipale.java