home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / novinky / Interval / clanek01.htm next >
Encoding:
Extensible Markup Language  |  2005-05-05  |  16.3 KB  |  132 lines

  1. <?xml version='1.0' encoding='windows-1250'?>
  2. <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
  3. <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='cs' lang='cs'>
  4. <head>
  5. <meta http-equiv='Content-Type' content='text/html; charset=windows-1250' />
  6. <meta http-equiv='Content-language' content='cs' />
  7. <meta http-equiv='Cache-control' content='no-cache' />
  8. <meta http-equiv='Pragma' content='no-cache' />
  9. <meta http-equiv='Expires' content='-1' />
  10. <meta name='robots' content='index,follow' />
  11. <meta name='googlebot' content='index,follow,snippet,noarchive' />
  12. <meta name='description' content='Interval.cz - Internetov² magazφn o webdesignu, v²voji webov²ch aplikacφ a e-komerci. VÜe podstatnΘ o technologiφch XHTML, HTML, CSS, DHTML, JavaScript, XML, .NET, ASP, PHP, Java, J2ME, SQL, WAP...' />
  13. <meta name='keywords' content='Interval' />
  14. <meta name='ICBM' content='49.1915, 16.626' />
  15. <meta name='DC.Title' content='Interval.cz' />
  16. <meta name='DC.Identifier' content='http://interval.cz' />
  17. <meta name='DC.Language' content='cs' />
  18. <meta http-equiv='pics-label' content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline EN v2.0" l gen true for "http://interval.cz" r (nz 1 vz 1 lz 1 oz 1 cz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://interval.cz" r (n 0 s 0 v 0 l 0))' />
  19. <meta http-equiv='imagetoolbar' content='no' />
  20. <meta http-equiv='MSThemeCompatible' content='no' />
  21. <meta name='MSSmartTagsPreventParsing' content='true' />
  22. <link rel='shortcut icon' type='image/x-icon' href='favicon.ico' />
  23. <link rel='alternate' type='application/rss+xml' title='RSS Interval.cz' href='http://interval.cz/__rss/rss.asp' />
  24. <link rel='home' href='http://interval.cz' />
  25. <link rel='search' href='http://interval.cz/search_ex.asp' />
  26. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/html4.css' />
  27. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/interval-display.css' />
  28. <link rel='stylesheet' type='text/css' media='print' href='__services/styles/interval-print.css' />
  29. <title>Kdo si J2ME, nezlobφ - ·vod pro ka₧dΘho -- J2ME -- V²voj aplikacφ -- Interval.cz</title>
  30. </head>
  31. <body class='interval interval-articles'>
  32. <div id='page-header'><div id='interval-logo'><h1 title='Interval.cz - denn∞ o tvorb∞ webu a e-komerci (logo & index link)'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz'>Interval.cz<span></span></a></h1></div><div id='advertising-page-header'></div><div class='page-maker'> </div></div>
  33. <div id='page-topmenu'><h2 class='textversion'>Navigace</h2><div id='page-mainmenu'><h3 class='textversion'>Hlavnφ menu</h3><ul><li class='first selected'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz'>Titulnφ strana</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=14'>Webdesign</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=15'>V²voj aplikacφ</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=18'>E-komerce</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=17'>Nßstroje</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=16'>Magazφn</a></li><li class='right selected'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.inshop.cz'>Knihkupectvφ</a></li><li class='right'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interforum.interval.cz'>Interforum</a></li></ul></div><div id='page-mainmenu-maker'> </div></div>
  34. <div id='page-body'><div id='page-left'><div id='article'>
  35.  
  36.  
  37. <h2>Kdo si J2ME, nezlobφ - ·vod pro ka₧dΘho</h2>
  38. <p id='prepend'>V nßsledujφcφch Φlßncφch vytvo°φme jednoduchou hru. Pro zaΦßtek si hlavn∞ rozebereme vÜe, na co by m∞l Φlov∞k myslet d°φve, ne₧ se skuteΦn∞ pustφ do psanφ. I kdy₧ nejste p°φmo programßto°i, sm∞le se do Φlßnku pus¥te, proto₧e neobsahuje ₧ßdn² k≤d...</p>
  39.  
  40. <h3>Z Φeho se hra sklßdß</h3>
  41. <p>Ka₧dß hra se obvykle sklßdß z n∞kolika komponent:</p>
  42.  
  43. <ul>
  44. <li><strong>┌vodnφ obrazovka</strong> (splashscreen) - obrßzek (m∙₧e to b²t i animace nebo n∞kolik obrßzk∙ za sebou), kter² se zobrazφ p°i spuÜt∞nφ aplikace. Obsahuje obvykle nßzev hry a logo v²robce, m∙₧e zobrazovat pr∙b∞h nahrßvßnφ hry.</li>
  45. <li><strong>Menu</strong> - obsahuje obvykle standardnφ polo₧ky, jako nap°φklad <em>hrßt</em>, <em>nastavenφ</em>, <em>nßpov∞da</em>, <em>sk≤re</em>, <em>o aplikaci</em> a <em>konec</em>.</li>
  46. <li><strong>Vlastnφ hra</strong> - i kdy₧ hry mohou b²t diametrßln∞ odliÜnΘ, existuje n∞kolik kritΘriφ, kterß by m∞ly spl≥ovat. P°i odstran∞nφ vlastnφ hry z displeje by m∞l b²t b∞h hry pozastaven a p°i jejφm zobrazenφ op∞t spuÜt∞n. Je-li aplikace urΦena na vφce cφlov²ch za°φzenφ, je vhodnΘ, je-li logika hry odd∞lena od t°φdy, kterß hru zobrazuje, proto₧e logika hry z∙stßvß stßle stejnß, i kdy₧ je nutnΘ psßt zobrazovßnφ hry pro r∙znß za°φzenφ zvlßÜ¥.</li>
  47. <li><strong>Sk≤re</strong> - seznam nejvyÜÜφho dosa₧enΘho sk≤re. Sk≤re m∙₧e b²t odesφlatelnΘ na server, aby se mohli hrßΦi porovnßvat mezi sebou. V tom p°φpad∞ musφ hra obsahovat i formulß° pro registraci u₧ivatele na server, mß-li jmΘno jednoznaΦn∞ identifikovat u₧ivatele.</li>
  48. <li><strong>Nastavenφ</strong> - hra obvykle mφvß n∞jakΘ nastavitelnΘ parametry, jako je nap°φklad ·rove≥ obtφ₧nosti, rozm∞ry hernφho plßnu a podobn∞. V∞tÜinou staΦφ nastavenφ parametr∙ aplikace implementovat jako jednoduch² formulß°.</li>
  49. </ul>
  50.  
  51. <p>Nßsledujφcφ moduly sice nejsou "vid∞t", p°esto na n∞ nesmφme zapomenout:</p>
  52.  
  53. <ul>
  54. <li><strong>Perzistentnφ data</strong> - uklßdat si data do trvalΘ pam∞ti m∙₧e chtφt vφce nezßvisl²ch modul∙ aplikace. Bylo by neefektivnφ (vzhledem k omezenΘ velikosti aplikace), kdyby si p°φstup k t∞mto dat∙m zajiÜ¥oval ka₧d² modul sßm.</li>
  55. <li><strong>HTTP modul</strong> - zde platφ to samΘ jako u perzistentnφch dat. Komunikovat po sφti m∙₧e ·vodnφ obrazovka (sta₧enφ aktußlnφch informacφ), vlastnφ hra (je-li sφ¥ovß) i seznam nejlepÜφch sk≤re.</li>
  56. </ul>
  57.  
  58. <p>Pohled na aplikaci jako na spojenφ n∞kolika modul∙ p°es n∞jakΘ vlastnφ, jasn∞ definovanΘ rozhranφ, je v²hodn² ze dvou d∙vod∙. Prvnφm z nich je <strong>znovuvyu₧itelnost komponent</strong>. N∞kterΘ komponenty jsou u v∞tÜiny aplikacφ stejnΘ (·vodnφ obrazovka, sk≤re), tak₧e je staΦφ napsat jednou u prvnφ aplikace a u dalÜφch aplikacφ je m∙₧eme pou₧φt tak, jak jsou, pouze s v²m∞nou obrßzku.</p>
  59. <p>Druh²m d∙vodem je jednoduchß <strong>nahraditelnost komponent</strong>. Vezm∞me si jako p°φklad t°eba menu aplikace. Pro telefony s mal²m displejem je menu tvo°enΘ pouze obyΦejn²m seznamem polo₧ek (t°φda <code>javax.microedition.lcdui.List</code>) zcela dostaΦujφcφ. OvÜem u v∞tÜφch telefon∙, kterΘ se velikostφ blφ₧φ k PDA, vypadß takovΘ menu dost neesteticky a nenφ od v∞ci nahradit tuto komponentu novou verzφ, kterß kreslφ menu s pou₧itφm nφzko·rov≥ovΘho rozhranφ (<code>javax.microedition.lcdui.Canvas</code> nebo v MIDP 2.0 polo₧ky typu <code>javax.microedition.lcdui.CustomItem</code> vlo₧enΘ do formulß°e <code>javax.microedition.lcdui.Form</code>).</p>
  60.  
  61. <h3>Ne₧ zaΦneme programovat</h3>
  62. <p>Ne₧ se pustφme do programovßnφ, je Φas na n∞kolik ·vah.</p>
  63.  
  64. <h4>Popis hry</h4>
  65. <p>Prvnφm krokem je p°esn∞ popsat, jak se mß hra chovat. I pak se sice m∙₧e mnohΘ v pr∙b∞hu programovßnφ zm∞nit, ale rozhodn∞ bude k≤d p°ehledn∞jÜφ, ne₧ kdy₧ zaΦneme rovnou ₧iveln∞ psßt.</p>
  66. <p>NßÜ scΘnß° bude vypadat takto:</p>
  67.  
  68. <blockquote>
  69. <p>H°e °φkejme t°eba Blabouch. Pod mostem plave lo∩. U₧ivatel ovlßdß lo∩ stiskem Üipky doleva nebo doprava. Dokud u₧ivatel Üipku dr₧φ, lo∩ se pohybuje, kdy₧ Üipku pustφ, lo∩ se zastavφ. Prav² a lev² okraj displeje jsou pro lo∩ nepr∙chozφ, zarazφ se o n∞. Z mostu padajφ mince r∙znΘ hodnoty a bomby. Cφlem hry je chytit lodφ co nejvφce mincφ, jejich₧ hodnoty se sΦφtajφ do celkovΘho sk≤re. Dotkne-li se lodi bomba, lo∩ exploduje a hra konΦφ.</p>
  70. </blockquote>
  71.  
  72. <h4>Popis cφlovΘ platformy</h4>
  73. <p>Dßle je t°eba rozmyslet, na jakß vÜechna za°φzenφ je hra urΦena a jak se vypo°ßdßme s jejich r∙zn²mi vlastnostmi - velikost displeje, poΦet barev displeje, ovlßdßnφ klßvesnicφ nebo stylusem, maximßlnφ velikost aplikace, r∙znß implementovanß proprietßrnφ a rozÜi°ujφcφ rozhranφ a podobn∞.</p>
  74. <p>Ovlßdßnφ klßvesnicφ nebo stylusem lze implementovat najednou, nenφ-li aplikace nabitß k prasknutφ a nebojujeme-li tedy o ka₧d² bajt velikosti.</p>
  75.  
  76. <blockquote>
  77. <p>Jak je poznat u₧ ze scΘnß°e, ovlßdßnφ stylusem nebudeme °eÜit, jinak by bylo pot°eba i zp∙sob tohoto ovlßdßnφ naplßnovat dop°edu.</p>
  78. </blockquote>
  79.  
  80. <p>HorÜφ je to s r∙zn²mi displeji. Zde mohou nastat v zßsad∞ t°i varianty:</p>
  81.  
  82. <ol>
  83. <li><strong>Hra bude beze zm∞ny b∞hat na vÜech mo₧n²ch rozliÜenφch displeje.</strong> P°φkladem tΘto varianty m∙₧e b²t hra na Üachovnici, ve kterΘ vÜe kreslφme pomocφ nφzko·rov≥ovΘ grafiky, rozm∞ry vypoΦteme podle velikosti displeje a nepou₧φvßme hotovΘ obrßzky. Tento stav by byl asi ideßlnφ, ale obvykle se bez hotov²ch obrßzk∙ neobejdeme.</li>
  84. <li><strong>Pro r∙znß rozliÜenφ displeje je pot°eba vytvo°it r∙znΘ obrßzky.</strong> TΘto variant∞ odpovφdß v∞tÜina her. Do verze pro telefony s v∞tÜφm displejem se prost∞ dajφ stejnΘ obrßzky, jako pro telefony s menÜφm displejem, jen budou mφt v∞tÜφ velikost. Mezi obrßzky musφme poΦφtat i ikony v menu tvo°enΘm seznamem polo₧ek a ikony p°ed jmΘnem hry v seznamu aplikacφ. A zde trochu komplikuje ₧ivot, ₧e nejprve Φlov∞k musφ zjistit velikosti t∞chto ikon metodou pokus-omyl, proto₧e specifikace telefon∙ tyto ·daje obvykle neuvßdφ, a pak zjistφ, ₧e i telefony s velmi podobnou velikostφ displeje majφ velikosti ikon Φasto dost odliÜnΘ.</li>
  85. <li><strong>Pro r∙znß rozliÜenφ je pot°eba nastavit n∞kterΘ parametry odliÜn∞ Φi dokonce p°epsat zdrojov² k≤d.</strong> Tato situace nastane, pokud se aplikace Üije na mφru displeji a je pot°eba zachovat proporce a p°esnost na pixel (t°eba u fotbalu musφ aplikace znßt p°esn∞ pozice branky, aby nehlßsila g≤l, aΦkoli by Üel mφΦ mimo branku).</li>
  86. </ol>
  87.  
  88. <blockquote>
  89. <p>V naÜem p°φpad∞ bude platit druhß varianta. Pro zaΦßtek se hodφ zvolit si jeden telefon, na kter² se aplikace vyvφjφ, a p°enos na ostatnφ telefony °eÜit eventußln∞ a₧ na zßv∞r, kdy je hra prakticky hotovß.</p>
  90. </blockquote>
  91.  
  92. <p>Mezi dalÜφ ·koly, kterΘ je pot°eba p°edem zvß₧it, pat°φ takΘ °eÜenφ vφcejazyΦnosti aplikace a zp∙sob organizace projektu (obrßzk∙, text∙, modul∙, sestavovßnφ cφlov²ch aplikacφ a podobn∞). P°i takovΘ variabilit∞ za°φzenφ, jakß panuje, je tento ·kol velmi d∙le₧it². Plßnujeme-li psßt aplikace nejen pro vlastnφ pot∞Üenφ, je pot°eba co nejvφce ·kon∙ automatizovat, aby se zabrßnilo chyb∞ lidskΘho faktoru p°i ruΦnφm kopφrovßnφ tam a zase zpßtky a takΘ aby se lidsk² faktor z toho vÜeho nezblßznil. Jeliko₧ zatφm budeme psßt zcela jednoduchou aplikaci v jednom jazyce a na jedno za°φzenφ, nechßme si komplikovan∞jÜφ organizaci projektu a₧ na pozd∞ji.</p>
  93.  
  94. <div id='article-author'>
  95. <a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/autor.asp?author=144'>Bittnerovß, Lucie R·t</a> (25. 4. 2005)
  96. <div id='article-about-author'>programßtor û analytik <a href="http://www.amaio.cz">Amaio Technologies</a></div>
  97. </div>
  98.  
  99. <div class='refer'><h3><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/serial.asp?serial=225' title='p°ehled Φlßnk∙ vΦetn∞ anotacφ'>Kdo si J2ME, nezlobφ</a></h3><p>Projdeme si na konkrΘtnφm p°φkladu krok po kroku vznik J2ME hry a budeme p°itom °eÜit r∙znΘ problΘmy, kterΘ v²voj aplikace na mobilnφ telefon provßzejφ. P°edpokladem je znalost syntaxe programovacφho jazyka Java. Tato sΘrie Φlßnk∙ dosud nebyla ukonΦena!</p><ul><li><strong>Kdo si J2ME, nezlobφ - ·vod pro ka₧dΘho</strong> (prßv∞ Φtete)</li></ul></div>
  100.  
  101.  
  102. </div></div>
  103. <div id='page-right'><h2 class='textversion'>Prav² sloupek</h2>
  104. <div id='search'><h3 class='textversion'>Vyhledßvßnφ</h3><form method='get' action='http://interval.cz/search.asp'><div><input type='text' name='hledej' class='text' /><input type='submit' class='submit' value='Najdi!' /></div></form><div><a href='http://interval.cz/search_ex.asp'>RozÜφ°enΘ vyhledßvßnφ</a></div></div>
  105.  
  106.  
  107.  
  108. <div class='page-right-box book'>
  109.     <h3>Kni₧nφ novinka</h3>
  110.     <div class='page-right-box-in'>
  111.         <div class='book-top'>
  112.             <h4><a href='http://interval.cz/__redirect/redirect.asp?what=interval_booknews&url=http://interval.inshop.cz/inshop/scripts/detail.asp?ItemID=290'>PHP - moduly, rozÜφ°enφ a akcelerßtory</a></h4>
  113.         </div>
  114.         <div class='image'>
  115.             <img src='podklady/knihy/image.jpg' alt='obßlka' title='obßlka' /></a>
  116.         </div>
  117.         <div class='book-bottom'>Cena: <span class='book-price-old'>299 KΦ</span> <span class='book-price-new'>269 KΦ</span></div>
  118.     </div>
  119. </div>
  120.  
  121.  
  122.  
  123. <div class='page-right-box reading'><h3 title='NejΦten∞jÜφ Φlßnky za poslednφch 14 dn∙'>NejΦten∞jÜφ</h3><div class='page-right-box-in'><ul><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3863'>Firefox - od webdesignu po tuning</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3861'>Kdo si J2ME, nezlobφ - ·vod pro ka₧dΘho</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3862'>Multimetoda a Java</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3877'>Perl-compatible regulßrnφ v²razy v PHP - tvrzenφ v praxi, podmφn∞nΘ subv²razy</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3878'>Novß ekonomika a globßlnφ informaΦnφ spoleΦnost</a></li></ul></div></div><div class='page-right-box cauldron'><h3 title='Nejdiskutovan∞jÜφ Φlßnky za poslednφch 21 dn∙'>Diskuznφ kotel</h3><div class='page-right-box-in'><ul><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3863' title='(25 komentß°∙)'>Firefox - od webdesignu po tuning</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3484' title='(17 komentß°∙)'>OhleduplnΘ otevφrßnφ nov²ch oken s JavaScriptem</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3861' title='(5 komentß°∙)'>Kdo si J2ME, nezlobφ - ·vod pro ka₧dΘho</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3877' title='(4 komentß°∙)'>Perl-compatible regulßrnφ v²razy v PHP - tvrzenφ v praxi, podmφn∞nΘ subv²razy</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3859' title='(2 komentß°∙)'>Perl-compatible regulßrnφ v²razy v PHP - lokßlnφ modifikßtory, tvrzenφ</a></li></ul></div></div>
  124.  
  125.  
  126.  
  127. <div class='page-right-box emailserv'><h3>Email servis</h3><div class='page-right-box-in'><form action='prihlaseni.asp' method='post'><div class='shell'><input class='text' type='text' name='adresa' /></div><div class='shell'><input class='radio' type='radio' value='1' name='co' checked='checked' />T²dennφ p°ehled Φlßnk∙</div><div class='shell'><input class='radio' type='radio' value='2' name='co' />HELP konference</div><div class='shell'><input class='submit' type='submit' value='P°ihlßsit' /></div></form></div></div>
  128. </div>
  129. <div class='page-maker'> </div><div class='page-maker-white'> </div></div>
  130. <div id='page-foot'><div id='page-foot-menu'><a href='http://interval.cz/reklama.asp'>Inzerce na Interval.cz</a> | <a href='http://interval.cz/redakce.asp'>Redakce Interval.cz</a> | <a href='http://interval.cz/autori.asp'>Hledßme novΘ autory</a></div><div id='issn'>ISSN 1212-8651</div><div id='page-foot-zoner'>© Zoner software, s.r.o., vÜechna prßva vyhrazena, tento server dodr₧uje <a href='http://interval.cz/privacy.asp'>prßvnφ p°edpisy</a>o ochran∞ osobnφch ·daj∙.</div></div>
  131. </body>
  132. </html>