Title: ???????????? ?? ???? ?? ??????? ???????? ? J2ME
1???????????? ?? ???? ?? ??????? ???????? ? J2ME
????? ???????
Blue Edge Bulgaria
academy.devbg.org
www.devbg.org
2???????????? ?? ???? ?? ??????? ???????? ? J2ME
- ?? ????? ?????? ?? ???????? ? ?????????
- ???? API ?? J2ME CLDC
- ???????? ????????? ?? ???? ?? ??????? ???????
- ????? ?????????? ???????
- ????? ????? ?? ????????, ?????? ??????? ?? ??????
3?? ????? ?????? ?? ???????? ? ?????????
- 1. ???????? ???-????? ????????????
- ??????? ?? ?????? ?? ? ????????????? ????????
- ???????? ????? ?????
- ???????? ?? ???????????? ???????????????
- ???? ?? ???????? ? ?????? ?? ????????? ???
4?? ????? ?????? ?? ???????? ? ?????????
- 2. ?????????? ?? ???????? ????? ????????
- ??????? ??????? (5 -10) ??????????
- ? ?????? ??????????????
- ?? ???? ? ???? ????????????
- ????? ???? ?? ????????
- ??????????? ?????? ?? ???????? ?? ?????
- ???? ???? ???????? ??? ?????? ????????
- ?????? ?? ?? ???? ?????????? ?? ?????? ??????????
?? ????? ?????? (MIDP 1.0 / MIDP 2.0)
5?? ????? ?????? ?? ???????? ? ?????????
- 3. ???????? ?? ? ?????????????
- ??????? ?? ????????????????
- ????????? ?? ???????????? ?? ????????? ??
??????????? ?????? ?? .jar ????? - ??? ??? ????? ?? ?????????? ???? ???????? ??
????????? ????/??? - ???????? ? ???????????? ?? ???????? ??
??????????? ?? ?????? ??????
6???? API ?? J2ME CLDC
- ????? javax.microedition.lcdui
- ?? MIDP 1.0
- ?????? Canvas
- ????????? ???????? ????? ???? ?? ??????
- protected abstract void paint(Graphics g)
- ?????? ??????????? ?? ??????
- ??????? ?? ???? ?? KVM
7???? API ?? J2ME CLDC
- ?????? Canvas
- repaint()
- ????????? ??????
- ????????? ?????? ???? ?? ?? ?????? paint(Graphics
g) !!! - keyPressed(int keyCode) / keyReleased(int
keyCode) - ??????? ?? ?? KVM
- keyRepeated(int keyCode)
- ???? ??? ???????????? ???????? ????? ??? ???????
8???? API ?? J2ME CLDC
- ?????? Graphics
- ?????????? API ?? ????????/???????
- ???????????? ??????? ?????? ?? ????? Graphics ??
J2SE - drawLine(), drawRect(), drawString(),
drawImage(), translate() ? ?. ?. - ????????? drawXxxx(..., int x, int y, int
anchor) - Graphics.TOP Graphics.LEFT
9???? API ?? J2ME CLDC
- ?????? Image
- ?????????? ?? API ?? ?????? ? ???????????
- createImage(byte imageData, int imageOffset,
int imageLength) - createImage(String name)
- name ??? ?? ???????? ???????? ????
- createImage(int width, int height)
- ??????? ?????? ???????????, ????? ? ????????????
- getGraphics()
- ????? ????????? ?? Graphics, ??? ? ????????
????????
10???? API ?? J2ME CLDC
- ??????? javax.microedition.lcdui.game
- ?? MIDP 2.0
- ?????? GameCanvas
- ????????? Canvas
- ???????????? ??????
- getGraphics()
- ?????????? ????????? ?? ????? Graphics
- ????????? ?? ???????? ? ?????????? ?????
- getKeyStates()
- ????? int, ? ????? ?? ???????? ??????????? ??
?????????
11???? API ?? J2ME CLDC
- ?????? Sprite
- ?? ??????????? ?? ???????? ???????? ?????
12???? API ?? J2ME CLDC
- ?????? Sprite
- Sprite(Image image)
- Sprite(Image image, int frameWidth, int
frameHeight) - collidesWith(...) ????????? ?? ??????? ? ????
???????? ????? - setTransform(int) ??????? ?????? ??? ???????
????(?????? ?? 90) ??? ????????? - ?????? ?? ????????? - nextFrame(), setFrame(),
getFrame(), ...
13???? API ?? J2ME CLDC
- ?????? TiledLayer
- ???????? ?? ?? ??????????? ?? ???????? ????????
??????
14???? API ?? J2ME CLDC
- ?????? TiledLayer
- TiledLayer(int columns, int rows, Image image,
int tileWidth, int tileHeight) - setCell(int col, int row, int tileIndex)
- ??????? ?????? ? ?????????? ????????
(????????????? ?? ????) - fillCells(int col, int row, int numCols, int
numRows, int tileIndex) - ??????? ?????? ?? ?????? ? ??????? ????????
- getCell(int col, int row), getColumns()
15???? API ?? J2ME CLDC
- ????????? Sprite ? TiledLayer ?? ?????????? ??
Layer - ?????? LayerManager
- ?????????? ?? ?????????? ?????? (layers)
- append(Layer l)
- ?????????? ???? ???????? ???-?????
??????(???-?????? ? ? ?????????) - getLayerAt(int index)
- remove(Layer l)
- insert(Layer l, int index)
16???? API ?? J2ME CLDC
- setViewWindow(int x, int y, int width, int
height) - ?????? ???????? ????
- paint(Graphics g, int x, int y)
17???? API ?? J2ME CLDC
- Mobile 3D Graphics API (JSR-184) - ???????? ?? ??
????? ???? ????????. - ????? ???????????? ??????? ????????? ?????? ??
???????? ? ??????????????? ?? ???? (MIDI) - Nokia ??????????? API ?? ??-????? ????????????
(com.nokia.mid.ui) - ?????? FullCanvas ???? ?????? ?? ????? ?????
18???? API ?? J2ME CLDC
- ??????????? ?? ??????????
- ???? ????????
- ??? ????????(lag) 2 s
- HttpConnection ?????? ?? ???? ?? ????
???????????? ?? ??? - SocketConnection / ServerSocketConnection ??
MIDP 2.0 - Bluetooth API (JSR-82 No OBEX)
19???????? ????????? ?? ???? ?? ??????? ???????
- ???????? ????????? ?? ???? ?? ??????? ???????
AI
MIDlet
Canvas
Game State
Storage
Communication
20???????? ????????? ?? ???? ?? ??????? ???????
- 1. MIDlet
- ??????? ????????? ?? Canvas, ???????? ??????? ? ?
? ??????? ???????????? - ????? ?? ?? ???????????? ?? ??????????? ?? ??????
??? suspend / resume - 2. Canvas
- ????????? ?? ???? ??????? ?????
- ????? ?? ?? ?????? ???????? ? ?????????????? ??
??????????? ?? ??????
21???????? ????????? ?? ???? ?? ??????? ???????
- 2. Canvas
- ????????? ?? ???????????? ?? ?????????? ??????
- ????????? ?????????????? ????
- ??? ????? ??????? ???? ??????????? ?? ??????
- ?????? ????????? ?? Canvas ????? ?????? ? ????
???? - ??? ??????? ?????????
- Loading, Menu, GameRuns, GameOver ? ??.
22???????? ????????? ?? ???? ?? ??????? ???????
- 3. Game State (??????????????)
- ??????? ??????????? ?? ??????
- 4. AI (??????????????)
- ????????? ????????? ????????
- 5. Storage (??????????????)
- save game
- ????????? ?? ?????????
- high scores ? ??.
23???????? ????????? ?? ???? ?? ??????? ???????
- 6. Communication (??????????????)
- ????? ?? ????????? ???? ??????? ?????
- ????? ?? ?? ????????? ?? ????? ??? ??????????
- Upload ?? high scores
- ????????? ?? ??????? ?? ???????? ? ??????? ?? ?
Storage
24????? ?????????? ???????
- ????????????
- 1. ????????? ?? ??????? ?????
- 2. ??????????? ?? ??????? ?????????? ??
??????????? (??????/???????) - 3. ????????? ?? ?????? paint(Graphics g)
- 4. ?????? ?? ???????? ????
25????? ?????????? ???????
- ??????? ? ??????????????
- KVM ?? ?? ?????? ??????? ? ??????? ??????????????
?? ??????? (heap) - ?? ???? ?? ?? ?????? ????? ?? ????? ????? (Image)
- Runtime.getRuntime().freeMemory()
- ??????? ?? ??????????? ?? ?????? ? ?????? ? ?????
26????? ????? ?? ????????, ?????? ??????? ?? ??????
- ????? ????? ?? ????????, ?????? ??????? ?? ?????
- I. ???????????? ????? ?? ?????????? ?? ??????? ??
.jar ????? - 1. ???????????
- ??????????? ? ? 10 20,
- ????????? ?? ?? ?????????? ?????????? ????? ??
?????? ? ?????? - ???????? ????
27????? ????? ?? ????????, ?????? ??????? ?? ??????
- II. ????????? ????? ?? ?????????? ?? ??????? ??
.jar ?????. - 1. ???????????? ?? ??????????? ? ??? ??????????
?? ??????? ?? - 2. ????????? ?? ?????????? ?? ??? ? ???????
?????? - 3. ??????????? ?? ?????? ? ?????
28????? ????? ?? ????????, ?????? ??????? ?? ??????
- ?????????? ??????
- Image backgroundImage
- Image gameOverImage
- ...
- backgroundImage Image.createImage(...)
- gameOverImage Image.createImage(...)
- ...
- g.drawImage( backgroundImage, 0, 0, 0)
- g.drawImage( gameOverImage, x, y, 0)
29????? ????? ?? ????????, ?????? ??????? ?? ??????
- ???????????? ??????
- private final static int IMAGE_BACKGROUND 0
- private final static int IMAGE_GAME_OVER 1
- ...
- private Image images null
- for (int i0 iltimages.length i)
- imagei Image.createImage(...)
-
- ...
- g.drawImage(imagesIMAGE_BACKGROUND, 0, 0, 0)
30????? ????? ?? ????????, ?????? ??????? ?? ??????
- III. ???? ? ????? ??????
- 1. ???????? ?? ??????? (????????, ????? ? ???????
???????) ? ???????? - ????????? ?? ?????????? ? ??????? ?????(lt?????
?? ??????gtlt?????gt.res) - ???????? ?? ??????????????, ????? ?? ?????
????????? ? ?? ?? ??????? ? Storage - ?????? ?? ??? Loading Screen
31????? ????? ?? ????????, ?????? ??????? ?? ??????
- 2. ?????????? ?? ???? ?? ?????????
- ????? ???? ????????? ??????? ?? .jar ????? ???
100 ?????, ??????? ? ????? ?? ? - ???????? ??????? ?? ??????????? ??-?????
- ????????? ?? ?????????? ? ?????????? ???????
- ????? ?? ????????? ?? ?????? ?? 2 ????????????
?? MIDlet, Canvas
32????? ????? ?? ????????, ?????? ??????? ?? ??????
- ??????? ????????
- ??????????? ???-????? ???????????? ???????
- ????????? ???????????
- ???? ?? ??????? ???????? ? J2ME / CLDC ?? ?????
?????
33???????????? ?? ???? ?? ??????? ???????? ? J2ME
- ??????? ?????????
- http//www.forum.nokia.com/main/
- http//developer.sonyericsson.com/site/global/prod
ucts/phones - http//www.motocoder.com/motorola/pcsHome.jsp
- http//www.benqmobile.com/developer
- http//developer.samsungmobile.com/
- http//panasonic.co.jp/pmc/products/en/
- http//www.my-onetouch.com/worldwide/com/
products/phones/
34???????????? ?? ???? ?? ??????? ???????? ? J2ME