Affichage des articles dont le libellé est programmation. Afficher tous les articles
Affichage des articles dont le libellé est programmation. Afficher tous les articles

mercredi 14 novembre 2007

Charger un TiledLayer en J2me


Un TiledLayer est un élément visuel composé d'une grille de cellules qui peuvent être remplis d'un ensemble de parties d'images.
Cette technique est couramment utilisée pour la réalisation de jeux java 2D sur téléphone .

Le code source suivant est celui de la classe DemoCanvas.java, pour pouvoir tester cet exemple et le faire fonctionner il faudra penser à créer une midlet qui fera appel à cette classe, je suppose que c'est assez simple donc nous n'allons pas en parler ici.

Code source J2me :



package exemple2;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.io.IOException;
/**
*
* @author java-Mobile
*/
public class DemoCanvas extends GameCanvas {

/** Creates a new instance of DemoCanvas */
protected DemoCanvas() {
super(true);
initLayer();
drawBackground();
}

public void initLayer() {

int backgroundWidth = 10;
int backgroundHeight = 10;
int tileWidth = 32;
int tileHeight = 32;
Image tilesImage = null;
try {
tilesImage = Image.createImage("/exemple2/modele.png");
} catch (IOException ex) {
throw new RuntimeException ("Unable to load Image - "+ex);
}
TiledLayer tiledLayer = new TiledLayer(
backgroundWidth, backgroundHeight,
tilesImage, tileWidth, tileHeight);

int[] map = {
1 , 5 , 5 , 5 , 5 , 5 , 5 , 4 , 4 , 4 ,
4 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 4 ,
4 , 5 , 5 , 5 , 2 , 2 , 5 , 5 , 5 , 4 ,
4 , 5 , 5 , 5 , 2 , 2 , 5 , 5 , 5 , 4 ,
4 , 4 , 5 , 5 , 2 , 2 , 5 , 5 , 5 , 4 ,
4 , 4 , 4 , 5 , 5 , 2 , 2 , 2 , 5 , 4 ,
1 , 1 , 3 , 3 , 5 , 5 , 2 , 2 , 5 , 4 ,
3 , 1 , 3 , 3 , 3 , 5 , 5 , 5 , 5 , 4 ,
3 , 1 , 1 , 3 , 3 , 3 , 5 , 5 , 1 , 1 ,
3 , 3 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 3 ,
3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 };
for (int y=0; y
for (int x=0; x
tiledLayer.setCell(y, x, map[y*backgroundWidth+x]);
}
}

setTiledLayer(tiledLayer);
}

public void drawBackground() {

// Get off-screen buffer
Graphics g = getGraphics();

// Clear the background
g.setColor(BACKGROUND_COLOR);
g.fillRect(0, 0, getWidth(), getHeight());

// Paint the tiled layer
TiledLayer tiledLayer = getTiledLayer();
if(tiledLayer != null) {
tiledLayer.paint(g);
}
}

public TiledLayer getTiledLayer() {
return tiledLayer;
}


public void setTiledLayer(TiledLayer tiledLayer) {
this.tiledLayer = tiledLayer;
}


private TiledLayer tiledLayer;

public static final int BACKGROUND_COLOR = 0x00000000;

}

Plus d'infos sur la Class TiledLayer

mardi 13 novembre 2007

J2me comment afficher une image?

Voici le code source d'une Midlet qui permet l'affichage d'une image, l'exemple est assez simple à comprendre.

package exemple1;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.*;
import java.io.IOException;

public class Affiche extends MIDlet {
private Display _display;
private Moteur _moteur;

public Affiche()
{
_moteur = new Moteur();
_display = Display.getDisplay(this);
}

class Moteur extends Canvas
{
private int _height,_zoneH;
private int _width,_zoneW;

public Moteur()
{
_height = getHeight();
_width = getWidth();
_zoneW = _width -5 ;
_zoneH = _height -5;

}

protected void paint(Graphics g)
{
//g.setColor(0);
g.fillRect(0, 0, _width, _height);
Image source;
try
{
source = Image.createImage("/exemple1/tux2.png");
}
catch (IOException e)
{
throw new RuntimeException ("Unable to load Image - "+e);
}
g.drawImage(source, _height/2, _width/2, Graphics.VCENTER|Graphics.HCENTER);

}



}

protected void keyPressed(int keyCode)
{

}

protected void keyReleased(int keyCode)
{

}
public void startApp() {
_display.setCurrent(_moteur);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}
}

un portage de Java sur l'iPhone ??



La communauté Java open source espère qu'Apple introduira la version phoneME de Java ME dans le SDK (kit de développement logiciel) de l'iPhone attendu pour le début 2008, c'est ce que sous entend Terrence Barr "évangéliste technique" pour la Java mobiles et systémes embarqués, de chez apple.
Source : web2linux

dimanche 11 novembre 2007

Un kit de développement pour l'iphone


Un kit de développement logiciel devrait finalement être présenté lors du Macworld, en janvier. Le report de la date de mise à disposition de ce kit pourrait bien être due à un certain Leopard...

William Hurley adore son iPhone. Mais il l'aimerait encore plus s'il pouvait créer pour lui des logiciels sur mesure. Et il n'est pas le seul. Des centaines de programmeurs ont pointé leur nez à un événement iPhone organisé par William Hurley, cadre dirigeant de l'éditeur de logiciel BMC, bien qu'Apple n'ait pas encore révélé le code source dont tous ces programmeurs ont besoin pour exploiter l'appareil. C'était en juillet, et depuis, les critiques soulevées par le refus d'Apple d'ouvrir l'iPhone restent vives.

Il semble toutefois qu'Apple leur donnera bientôt satisfaction. Selon des sources informées de la stratégie de l'entreprise, un kit de développement logiciel pour l'iPhone sortira au début de l'année 2008, permettant ainsi aux programmeurs de créer des jeux, des logiciels de gestion, ainsi qu'un nombre infini d'applications diverses et variées pour cet appareil. On ignore les détails, mais d'après nos sources, une annonce sera faite en janvier, probablement le 15, lors de l'allocution du pdg d'Apple, Steve Jobs, à la Macworld Expo de San Francisco.

Pourquoi cette attente ? Selon certains analystes, ce retard ne vise pas à frustrer les éditeurs. Il n'est pas dû non plus à la crainte de voir des logiciels tiers provoquer des bugs susceptibles de mettre en danger les réseaux de téléphonie portable. Il semblerait plutôt qu'Apple ait souhaité attendre au moins jusqu'au lancement du nouveau système d'exploitation des ordinateurs Macintosh. Connu sous le nom de code Leopard , ce système devait être dévoilé en juin 2007, mais il est sorti fin octobre. L'iPhone ayant été créé sur la base de la version Mac OS actuelle, les nouvelles possibilités offertes par Leopard permettront également d'intégrer à l'iPhone des fonctionnalités plus musclées.

Source : http://www.lepoint.fr

Création de la Premiére Midlet


Une fois votre environnement de développement correctement installé (si ce n'est pas le cas faites un petit tour ICI ), on peut procéder à la création de notre premier application Java mobile (Midlet).

Comme tout débutant on va commencer par la création de la Midlet hello world .

Voici la procédure sous eclipse, c'est à peu prés le méme principe que sous Netbeans :

- Tout d'abord commencer par créer un nouveau projet de type
« J2ME/J2ME Midlet Suite ».
- Cliquez sur le bouton « Suivant ».
- Donner un nom à votre projet puis cliquez sur le bouton « Suivant ».
- Sélectionnez la plate-forme et cliquez sur le bouton « Suivant ».
- Cliquez sur le bouton « Fin » pour créer le projet.

- Ensuite il faudra ajouter une midlet en créant une nouvelle entité de type
« J2ME/J2ME Midlet ».
- Cliquez sur le bouton « Suivant ».
- Là on spécifie le dossier source, le nom du package ainsi que le nom de notre Midlet genre BonjourMidlet.

Tout ce qui est écrit en noir est générée par le compilateur, le reste ce qui est écrit en vert est le code à taper.

package test; 
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class BonjourMidlet extends MIDlet {
private Display display;
private TextBox textbox;
public BonjourMidlet() {
super();
display = Display.getDisplay(this);
textbox = new TextBox("", "Bonjour", 20, 0);
}

/* (non-Javadoc)
* @see javax.microedition.midlet.MIDlet#startApp()
*/
protected void startApp() throws MIDletStateChangeException {
display.setCurrent(textbox);
}

/* (non-Javadoc)
* @see javax.microedition.midlet.MIDlet#pauseApp()
*/
protected void pauseApp() {
// TODO Raccord de méthode auto-généré
}

/* (non-Javadoc)
* @see javax.microedition.midlet.MIDlet#destroyApp(boolean)
*/
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Raccord de méthode auto-généré
}
}
Pour compiler la midlet et l'exécuter il suffit alors de sélectionner « Emulated J2ME Midlet » sous Eclipse ou faire un "Build" suivi d'un "run" sous Netbeans, pour lancer l'application dans l'émulateur.


Ensuite pour tester la Midlet sur votre téléphone mobile aller récupérer le .jar et .jad qui se situent dans votre espace de travail dans le répertoire "dist" (si vous utilisrr Netbeans).

si vous êtes sous Eclipse faites un click droit sur votre projet puis exporter jar et laisser vous guider.

une fois le .jad et .jar générer consulter la page ICI pour savoir comment transférer votre application sur votre téléphone mobile.

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best Web Hosting