Muskampen 2025: Segraren korad!

[Java] Vad krävs för att utveckla spel resp. program på mobiler?

Permalänk
Medlem

[Java] Vad krävs för att utveckla spel resp. program på mobiler?

Jag och en kompis funderar på att utveckla lite program/spel till våra mobiler. Och eftersom vi pluggar Java just nu och det stödjs på många så är det ju tjäckt
Hört att det finns speciella dev-packs för detta, men jag hittar inte runt på java.sun.com. Behöver lite guidning.

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem
Permalänk

Tidningen Mobil hade ju en liten artikelserie i nr 11-12 2004 och nr 1 2005, ni kanske kan låna dem på bibblan. Filerna till artiklarna finns på www.mobil.se/spel kan ju vara intressant att titta på kanske?

Edit: Kan ha fel ang. vilka nummer det var...

Permalänk
Medlem

Aaah, nice.
Verkar som den behövde min gamla java installation. Oki, får se hur detta går

Edit: Tack persson78. Men innehåller inte J2ME Wireless toolkit emulatorer? Eller har tillverkarna egna specifika som man kan testa på?

Jag har nu j2sdk1.4.2_06 samt WTK22 så jag får kolla efter tidningarna i bibblan imorrn.

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem

Emulatorer och developerkits finns på respektive tillverkares hemsida, ofta har väl de olika märkena vissa saker (typ hantering av ljud, viss grafik och annat) färdigkodat. kolla tex på ericssons developer avdelning, finns fina grejjer (bla exempelkod) där.

Visa signatur

Core 2 Quad Q6600 | Gigabyte GA-P35-DS3 | Corsair XMS2-6400 2x2048MB | Corsair HX 520W | BFG 8800GT

Permalänk

Kika om du hittar J2ME wireless toolkit på java.sun.com, det innehåller en enkel emulator och tutorials för att komma igång.

Edit: jag bjuder på en länk: http://java.sun.com/products/j2mewtoolkit/

Edit igen: såg att du hade WTK, det ska innehålla emulator. Starta KToolbar, där kan du välja att öppna projekt, testa games. Därpå borde en emulator startas när du väljer "Run".

Visa signatur

System.out.print(madness ? this.is.SPARTA : "");

Permalänk
Medlem

Japp, jag håller på och leker.
Dock är det lite svårt när jag inte vet hur man matar in info etc.

public void function(int var){} vill ju ha lite siffror t ex, hur matas det in? Jag får bara uncatched error.

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem

ren gissning:

int a = 0; blabla(a); public void blabla(int bla) { a += bla; }

Permalänk
Medlem

Jojo, men detta gäller ju telefoner, så jag vill kunna lägga in en text-sträng t ex.

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem

Um?
Förlåt om jag inte fattar ett smack vad du menar, men det är inte:

String s = "ngt"; ngt(s); public void ngt(String jaha) { s += jaha; }

?
*suck*, jag måste verkligen ta en titt på de där paketen.

<EDIT> Förlåt om jag frågar men har inte J2ME samma logik som J2SE?
Det är iallafall det intrycket jag har fått utav det.

Permalänk
Medlem

Jo, men alltså jag vill att ska kunna mata in ett värde från telefon-emulatorn.
Det du skriver är rätt, men innan har jag kört i BlueJ och då får man upp en ruta som man får mata in i.

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Zapher
Jo, men alltså jag vill att ska kunna mata in ett värde från telefon-emulatorn.
Det du skriver är rätt, men innan har jag kört i BlueJ och då får man upp en ruta som man får mata in i.

Get away from BLUEJ.....

Nej skämt å sido det är bara göra en klass som läser in från tangentbordet(knappsatsen) det bästa är nog att göra det med en Observer/Observable grej. Jag har aldrig programmerat en telefon men jag har pratat med vänner som gjort det och jag tror inte det skall vara någon skillnad från SE versionen.

Vet dock inte hur bra det är med trådar i Mobiler..

Kanske någon som vet detta blev sugen på testa i alla fall ska kanske testa det i natt när jag får tid..

Men det borde väl gå bra med trådar när jag tänker efter borde ju bli svårt att göra ett vettigt spel annars utan att få känslan att spelet fryser hela tiden.

Visa signatur

ABIT KN9 Ultra :: AMD Athlon 64 X2 4600+ :: Hiper ATX 580W :: Crucial DDR2 BallistiX PC5300 2048MB

Permalänk
Medlem

Tänkte merpå program nu i början. Spel får det bli när projektarbetet är över.
Keyboard-klassen borde väl funka? Den läser iofs från terminalen.

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Zapher
Tänkte merpå program nu i början. Spel får det bli när projektarbetet är över.
Keyboard-klassen borde väl funka? Den läser iofs från terminalen.

Keyboardklassen fungerar inte, inte heller System.in/System.out, AWT eller JFC/Swing.

J2ME är utvecklat för små 'handenheter' (pratar om MIDP) som har begränsade egenskaper jämfört med en vanlig persondator (som liten skärm, möjligtvis färg, kanske tangentbord eller knappsats).
Därför har man dels begränsat klassbiblioteket så att det är avsevärt mindre än J2SE.

För att också göra utveckling smidigare (för praktiska applikationer) så tog man fram ett nytt api för in och utdata kallat lcdui. Detta paket (javax.microedition.lcdui) innehåller både högnivå- och lågnivåfunktioner. Med högnivå menar jag färdiga funktioner för att bygga upp ett gränssnitt (som Swing/Awt där du skapar ett fönster, lägger in knappar i det och anger egenskaper för hur komponenterna ska se ut). Lågnivå är mer när man begär att få tillgång till hela skärmen och ansvarar själv i detalj hur allt ska ritas upp. I lcdui finns också stöd för att fånga upp lågnivåhändelser på knappsatsen (telefoner har ju oftast en numerisk knappsats och ibland ett styrkors och 'välj'-knapp(ar)).

Så om du vill göra ett icke-spel till telefonen så brukar tillvägagångssättet vara.

1) Skapa dig en midlet-klass, se till så att du fångar start och stopphändelserna (metoder som du får överlagra)
2) Skapa en javax.microedition.lcdui.Form , lägg in andra lcdui-komponentern i Form:et (som textfält till exempel för att hämta indata)
3) Skapa en Command (i princip knapp, men den är oftast placerad vid systemknapparna för val, dvs knapparna precis under skärmen på de flesta Nokiatelefoner till exempel) som bearbetar indatat (kan visa andra forms, eller vad som helst)
4) Använd javax.lcdui.Display.getDisplay(minFinaMidlet).setDisplay(minSkapadeForm)

Ett starkt tips är att titta i javadocen som följer med the Wireless Toolkit (WTK). Javadocen täcker CLDC/MIDP vilket är den konfigurering som används till mobiltelefoner. Där ser du också vilka klasser som finns till skillnad från J2SE.

(Tyvärr så lyckades jag inte hitta någon sida hos Sun som jag kunde direktlänka till)

//C

Permalänk
Medlem

Tack! Det där hjälpte mycket faktiskt!
Jag tror jag såg någon API-guide för gojset som kom med.
Ska kolla in det, men det verkar ju bra med lcpui iaf

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem

Det är ju bra att ens svar är till hjälp 8-).

Välkommen in i J2ME världen, den är faktiskt ganska rolig. Det är mycket roliga och användbara applikationer man kan göra.

//C

Permalänk
Medlem

Sen kan ni ju passa på att titta in mina fina RGB-"raster"bars gjort i MIDP(2).
Screenshot : http://www.netrogenic.com/public/midp/rasterBars/rasterBars.j...
Source : http://www.netrogenic.com/public/midp/rasterBars/

Permalänk
Medlem

SKulle du kunna förklara lite mer hur jag gör?
Jag kan ju skapa en MIDlet med KToolbar, men sen? Start och stopp?

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem

För att starta så trycker du på "run" och för att stoppa så stänger du ner emulatorfönstret.

Permalänk
Medlem

iXam: Haha, jo det vet jag Läst lite i FAQ:en.
Du postade medans jag skrev, så min fråga var mer riktad till conio.

Jag ska kolla lite på dina RGB-raster.

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'