Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuții   




Cartea de oaspeți   




Mesaje   





Agora   





Clic aici
PC Magazine





Soluții - PC Magazine Romania, Mai 2004

Jocuri J2ME pe telefoane

Mircea Scărlătescu

Progresul în lumea IT este de multe ori condiționat și impulsionat de evoluția jocurilor. De la jocurile 2D cu care mulți dintre noi ne-am pierdut nopți întregi, până la 3D-urile din ziua de azi, în care grafica atinge din ce în ce mai mult performanțe cinematografice, jocurile pe calculator au reprezentat motorul industriei IT. Nu degeaba se spune că cele mai complexe programe realizate pentru calculatoare sunt jocurile.

Mai nou, și telefoanele mobile intră în atenția producătorilor de jocuri. Pentru că tot ceea ce înseamnă calculatoare începe să fie ´tradus´ în telefoane mobile, (chiar aplicații de tip office) jocurile încep să fie din ce în ce mai aproape de cei ce folosesc telefoane mobile ceva mai moderne. În ceea ce urmează încercăm să vă prezentăm o serie de sfaturi în legatură cu realizarea unui joc cu ajutorul platformei de programare Java Mobile.

Acțiunile unui joc pe un telefon mobil sunt dictate exclusiv (să excludem aici comenzile vocale) prin tastatură. Astfel, în jocurile unde direcțiile de deplasare (sau acțiunea jocurilor) necesită selectarea unuia dintre cele 4 direcții (stânga, dreapta, sus, jos) se recomandă utilizarea codurilor tastelor telefoanelor. Iată un exemplu pentru o astfel de aplicație:

class Taste extends Canvas 
{
void init ()
{
}
public void keyPressed(int keyCode)
{
int action = getGameAction
(keyCode);
switch (action)
{
case Canvas.LEFT:
moveBlockLeft();
break;
case Canvas.RIGHT:
moveBlockRight();
break;
}
}
}

În exemplul de mai sus capturăm două eventimente posibile, și anume apăsarea tastelor stânga, respectiv dreapta.

Metoda

getGameAction(int KeyCode) 

este recomandată pentru a ajuta utlizatorii într-o problemă aparent minoră, dar totuși remaracată de aceștia: apăsarea tastelor ´UP´ și ´2´ la un telefon ar trebui să aibă același effect într-un joc. Dacă se folosește echivalenul metodei de mai sus, și anume

public int getKeyCode
(int gameAction)

cele două taste vor avea coduri diferite, deci implementarea devine ceva mai complicată, sau, mai rău, tasta 2 nu va funcționa așa cum trebuie

O a doua problemă importantă a jocurilor moderne este reprezentată de apăsarea simultană a tastelor pentru a efectua o mișcare (o acțiune). Din cadrul seriei de telefoane Nokia Java Enabled, doar modelul 7650 suportă apăsări simultane ale tastelor. Nu trebuie să se conteze pe acest tip de mutări în jocuri (cel putin deocamdată, tehnologia avansează repede;))

Numele asociate tastelor nu trebuie să fie obținute decât prin metoda

public static String getKeyName
(int keyCode);

De reținut că numele tastelor este întors în limba engleză, indiferent de limba aleasă de utilizator din meniu. Este de așteptat ca în versiunile următoare să avem parte de un upgrade de la producător, și anume tastele să aibă numele localizat. La fel trebuie amintit că diferite tipuri de telefoane pot să intoarcă diferite rezultate la același parametru trimis către funcția getKeyName() (aceeași tastă are nume diferite).

Dacă în jocurile pe care le folosiți doriti să utilizați și funcții ceva mai avansate, de gen sunet, vibrații, și lumini, este recomandabil din mai multe puncte de vedere să oferiți unui utilizator posibilitatea de a inhiba aceste opțiuni (nu toți utilizatorii doresc vibrații într-un joc, sau nu doresc să deranjeze pe alții din jurul lor când jocul începe să scoată cine știe ce sunete ciudate ☺)

Aceste funcții prezentate mai sus prezintă însă și o mare problemă: consumul de memorie. Se stie că față de un sistem de calcul normal un telefon dispune de puțină memorie, deci aceasta trebuie să fie folosită cu mare atenție.

Telefoanele cu ecrane color folosesc multă memorie pentru a afișa imaginile unui joc. Chiar o imagine alb-negru poate să ocupe mai multa memorie pe un telefon color, decât pe unul alb-negru. De asemenea referințele către imagini și obiecte grafice care nu mai sunt utilizate trebuie să fie setate pe null imediat ce nu mai sunt utilizate.

Instalarea unui joc pe un telefon (dupa download-ul lui) se face de obicei în meniul Applications. Dacă se dorește instalarea sub un alt meniu, trebuie setată o valoare după dorința pentru parametrul Nokia-MIDlet-Category in .jad-ul middetului.

Acestea sunt primele sfaturi practice despre crearea unui joc cu J2ME. Vom încerca în alte articole să vă prezentăm și alte aspecte despre această sferă a programării dispozitivelor mobile.

Mult succes!


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2004 Agora Media.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

www.agora.ro

www.agora.ro

www.agora.ro