Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
LE RUBIX CUBE EN 3D AVEC OU SANS IMAGES
Information sur la source
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
Sources de la même categorie
Commentaires
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | | | | 1 | 2 | 3 |
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|
|