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!
|