begin process at 2012 02 15 14:30:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > LE RUBIX CUBE EN 3D AVEC OU SANS IMAGES

LE RUBIX CUBE EN 3D AVEC OU SANS IMAGES


 Information sur la source

Note :
7,33 / 10 - par 3 personnes
7,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Niveau :Initié Date de création :14/11/2003 Vu / téléchargé :12 287 / 692

Auteur : artichaud

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

interactif mais injouable. c pur le fun!
projet manipulable sur Jbuilder perso
sans java3D

Source

  • //la classe principale
  • import java.applet.*;
  • import java.awt.*;
  • import java.awt.image.*;
  • import java.lang.Math;
  • import java.lang.Thread;
  • import java.lang.System;
  • import java.net.URL;
  • public class go extends Applet implements Runnable
  • {
  • int a,b,i,largeurEcran=800,hauteurEcran=700,nb,facettex[]=new int[4],
  • facettey[]=new int[4],jeupret[];
  • rubicube GO;
  • PixelGrabber grosPx;
  • Image entrez,chargement,jeu;
  • boolean toutDebut = true,toutouDebut = true;
  • Graphics g2;
  • Image Imagecachee;
  • //chargement d'images
  • public void init()
  • {
  • largeurEcran = new Integer(getParameter("largeurEcran")).intValue();
  • hauteurEcran = new Integer(getParameter("hauteurEcran")).intValue();
  • setBackground(new Color(125,125,152));
  • entrez = getImage(getDocumentBase(),"entrez.gif");
  • jeu = getImage(getDocumentBase(),"jeupret.gif");
  • MediaTracker myTracker=new MediaTracker(this);
  • myTracker.addImage(entrez,0);
  • chargement = getImage(getDocumentBase(),"chargement.gif");
  • myTracker.addImage(chargement,1);
  • myTracker.addImage(jeu,2);
  • try
  • {
  • myTracker.waitForID(0);
  • myTracker.waitForID(1);
  • myTracker.waitForID(2);
  • }
  • catch (InterruptedException e){}
  • Imagecachee = createImage(largeurEcran,hauteurEcran);
  • g2 = Imagecachee.getGraphics();
  • }
  • public void run(){}
  • //detection évennement
  • public synchronized boolean handleEvent(Event e)
  • {
  • if(!toutouDebut)
  • {
  • GO.xPointCourant = e.x;
  • GO.yPointCourant = e.y;
  • a = GO.xPointCourant - GO.xAncienPointCourant;
  • b = GO.yPointCourant - GO.yAncienPointCourant;
  • if (a != 0 || b != 0) {
  • GO.xDplt = a;
  • GO.yDplt = b;
  • }
  • switch (e.id) {
  • case Event.MOUSE_MOVE:
  • GO.OK = false;
  • break;
  • case Event.MOUSE_DRAG:
  • if (!toutDebut) {
  • if (GO.tournerCube)
  • GO.tournerCamera();
  • if (GO.tournerFacettes) {
  • if (!GO.rotationInitialisee)
  • GO.initialiserRotation();
  • GO.tournerFacettes();
  • }
  • }
  • break;
  • case Event.MOUSE_DOWN:
  • GO.OK = false;
  • if (!toutDebut) {
  • if (!GO.dansLeCube())
  • GO.tournerCube = true;
  • else
  • GO.tournerFacettes = true;
  • }
  • break;
  • case Event.MOUSE_UP:
  • if (!toutDebut) {
  • if (GO.tournerFacettes)
  • GO.estCEqueLEcube();
  • GO.tournerFacettes = GO.tournerCube = false;
  • }
  • break;
  • case Event.KEY_PRESS:
  • switch (e.key) {
  • case '2':
  • i = 2;
  • break;
  • case '3':
  • i = 3;
  • break;
  • case '4':
  • i = 4;
  • break;
  • case '5':
  • i = 5;
  • break;
  • case '6':
  • i = 6;
  • break;
  • case '7':
  • i = 7;
  • break;
  • case '8':
  • i = 8;
  • break;
  • case '9':
  • i = 9;
  • break;
  • default:
  • return false;
  • }
  • break;
  • default:
  • return false;
  • }
  • GO.xAncienPointCourant = GO.xPointCourant;
  • GO.yAncienPointCourant = GO.yPointCourant;
  • }
  • repaint();
  • return false;
  • }
  • public void update(Graphics g)
  • {
  • if(toutDebut || toutouDebut)//chargement images puis rotation puis zeu!
  • {
  • if(toutouDebut)
  • {
  • g2.drawImage(chargement,0,hauteurEcran/2-hauteurEcran/2*chargement.getHeight(this)/largeurEcran,largeurEcran,hauteurEcran*chargement.getHeight(this)/largeurEcran,this);
  • g.drawImage(Imagecachee,0,0,this);
  • GO = new rubicube(this);
  • jeupret = new int[jeu.getWidth(this)*jeu.getHeight(this)];
  • grosPx = new PixelGrabber(jeu,0,0,jeu.getWidth(this),jeu.getHeight(this),jeupret,0,jeu.getWidth(this));
  • try
  • {
  • grosPx.grabPixels();
  • }
  • catch(InterruptedException ee){}
  • GO.jeu = jeupret;
  • GO.face3 = jeu.getWidth(this);
  • GO.face4 = jeu.getHeight(this);
  • GO.largeurEcran = largeurEcran;
  • GO.hauteurEcran = hauteurEcran;
  • toutouDebut = false;
  • }
  • if(toutDebut && !toutouDebut)
  • {
  • g2.clearRect(0,0,largeurEcran,hauteurEcran);
  • g2.drawImage(entrez,0,hauteurEcran/2-hauteurEcran/2*entrez.getHeight(this)/largeurEcran,largeurEcran,hauteurEcran*entrez.getHeight(this)/largeurEcran,this);
  • if(i >= 2 && i <= 9)
  • {
  • g2.clearRect(0,0,largeurEcran,hauteurEcran);
  • GO.nombreParCote = i;
  • GO.toutDebut();
  • GO.stockerLesSommets();
  • GO.xDplt = 0;
  • GO.yDplt = 0;
  • GO.tournerCamera();
  • GO.aleatoire(g,g2,Imagecachee);
  • toutDebut = false;
  • GO.OK = true;
  • GO.dessiner(g);
  • }
  • else
  • g.drawImage(Imagecachee,0,0,this);
  • }
  • }
  • else
  • GO.dessiner(g);
  • }
  • }
//la classe principale 

import java.applet.*;
import java.awt.*;
import java.awt.image.*;
import java.lang.Math;
import java.lang.Thread;
import java.lang.System;
import java.net.URL;


public class go extends Applet implements Runnable
{

int a,b,i,largeurEcran=800,hauteurEcran=700,nb,facettex[]=new int[4],
facettey[]=new int[4],jeupret[];
rubicube GO;
PixelGrabber grosPx;
Image entrez,chargement,jeu;
boolean toutDebut = true,toutouDebut = true;
Graphics g2;
Image Imagecachee;


//chargement d'images
 public void init()
 {
  largeurEcran = new Integer(getParameter("largeurEcran")).intValue();
  hauteurEcran = new Integer(getParameter("hauteurEcran")).intValue();
  setBackground(new Color(125,125,152));
  entrez = getImage(getDocumentBase(),"entrez.gif");
  jeu = getImage(getDocumentBase(),"jeupret.gif");
  MediaTracker myTracker=new MediaTracker(this);
  myTracker.addImage(entrez,0);
  chargement = getImage(getDocumentBase(),"chargement.gif");
  myTracker.addImage(chargement,1);
  myTracker.addImage(jeu,2);
  try
  {
   myTracker.waitForID(0);
   myTracker.waitForID(1);
   myTracker.waitForID(2);
  }
  catch (InterruptedException e){}
  Imagecachee = createImage(largeurEcran,hauteurEcran);
  g2 = Imagecachee.getGraphics();
 }

 public void run(){}


//detection évennement
 public synchronized boolean handleEvent(Event e)
 {
  if(!toutouDebut)
  {
    GO.xPointCourant = e.x;
    GO.yPointCourant = e.y;
    a = GO.xPointCourant - GO.xAncienPointCourant;
    b = GO.yPointCourant - GO.yAncienPointCourant;
    if (a != 0 || b != 0) {
      GO.xDplt = a;
      GO.yDplt = b;
    }
    switch (e.id) {
      case Event.MOUSE_MOVE:
        GO.OK = false;
        break;
      case Event.MOUSE_DRAG:
        if (!toutDebut) {
          if (GO.tournerCube)
            GO.tournerCamera();
          if (GO.tournerFacettes) {
            if (!GO.rotationInitialisee)
              GO.initialiserRotation();
            GO.tournerFacettes();
          }
        }
        break;
      case Event.MOUSE_DOWN:
        GO.OK = false;
        if (!toutDebut) {
          if (!GO.dansLeCube())
            GO.tournerCube = true;
          else
            GO.tournerFacettes = true;
        }
        break;
      case Event.MOUSE_UP:
        if (!toutDebut) {
          if (GO.tournerFacettes)
            GO.estCEqueLEcube();
          GO.tournerFacettes = GO.tournerCube = false;
        }
        break;
      case Event.KEY_PRESS:
        switch (e.key) {
          case '2':
            i = 2;
            break;
          case '3':
            i = 3;
            break;
          case '4':
            i = 4;
            break;
          case '5':
            i = 5;
            break;
          case '6':
            i = 6;
            break;
          case '7':
            i = 7;
            break;
          case '8':
            i = 8;
            break;
          case '9':
            i = 9;
            break;
          default:
            return false;
        }
        break;
      default:
        return false;
    }
    GO.xAncienPointCourant = GO.xPointCourant;
    GO.yAncienPointCourant = GO.yPointCourant;
  }
  repaint();
  return false;
 }

 public void update(Graphics g)
 {
  if(toutDebut || toutouDebut)//chargement images puis rotation puis zeu!
  {
   if(toutouDebut)
   {
    g2.drawImage(chargement,0,hauteurEcran/2-hauteurEcran/2*chargement.getHeight(this)/largeurEcran,largeurEcran,hauteurEcran*chargement.getHeight(this)/largeurEcran,this);
    g.drawImage(Imagecachee,0,0,this);
    GO = new rubicube(this);
    jeupret = new int[jeu.getWidth(this)*jeu.getHeight(this)];
    grosPx = new PixelGrabber(jeu,0,0,jeu.getWidth(this),jeu.getHeight(this),jeupret,0,jeu.getWidth(this));
    try
    {
     grosPx.grabPixels();
    }
    catch(InterruptedException ee){}
    GO.jeu = jeupret;
    GO.face3 = jeu.getWidth(this);
    GO.face4 = jeu.getHeight(this);
    GO.largeurEcran = largeurEcran;
    GO.hauteurEcran = hauteurEcran;
    toutouDebut = false;
   }
   if(toutDebut && !toutouDebut)
   {
    g2.clearRect(0,0,largeurEcran,hauteurEcran);
    g2.drawImage(entrez,0,hauteurEcran/2-hauteurEcran/2*entrez.getHeight(this)/largeurEcran,largeurEcran,hauteurEcran*entrez.getHeight(this)/largeurEcran,this);
    if(i >= 2 && i <= 9)
    {
     g2.clearRect(0,0,largeurEcran,hauteurEcran);
     GO.nombreParCote = i;
     GO.toutDebut();
     GO.stockerLesSommets();
     GO.xDplt = 0;
     GO.yDplt = 0;
     GO.tournerCamera();
     GO.aleatoire(g,g2,Imagecachee);
     toutDebut = false;
     GO.OK = true;
     GO.dessiner(g);
    }
    else
     g.drawImage(Imagecachee,0,0,this);
   }
  }
  else
   GO.dessiner(g);
 }
}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip EBAUCHE DE MOTEUR 3D
Source avec Zip UNE TERRE QUI TOURNE (3D)
Source avec Zip UN LOGICIEL DE DESSIN 3D

 Sources de la même categorie

Source avec Zip Source avec une capture UN SIMPLE SNAKE EN JAVA par Niidhogg
Source avec Zip Source avec une capture [MIDP] SIMPLE CHESS BOARD par loloof64
Source avec Zip Source avec une capture JEU DE DAMES par Julien39
Source avec Zip BLACKBOX SWING ET JAVA2D par GodConan
Source avec Zip Source avec une capture COMBAT DE SERPENTS VERSION MIDLET par khilio

Commentaires et avis

Commentaire de azour le 29/03/2005 17:50:58

ca marche pas désolé

Commentaire de artichaud le 01/04/2005 03:12:26

va dans le répertoire compilation! et clique sur une des icônes html, je sais pu lakelle

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,794 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales