Vi n i H c M Hà N i Khoa Công ngh Tin H c

BÁO CÁO MÔN L P TRÌNH JAVA Tài:
Gi ng Viên :

Game API
Th y Lê H u D ng

Sinh Viên Th c Hi n:
Hà Minh H i Nguy n Ng c Minh Nguy n Thanh Tùng

Gi i Thi u
MIDP 2.0 cung c p m t Game API n gi n hóa vi c vi t game 2D. API này nh g n, ch bao g m n m l p trong gói javax.microedition.lcdui.game. N m l p này cung c p hai kh n ng quan tr ng: - M t L p có th v lên màn hình và áp ng l i d li u nh p trong ph n thân c a vòng l p game, thay vì d a vào các thread v và nh p li u c a h th ng. - M t API dùng qu n lý layer m nh và linh ho t giúp vi c xây d ng các c nh game ph c t p m t cách hi u qu h n.

Gói ³javax.microedition.lcdui.game´ g m 5 l p
1. 2. 3. 4. 5.

Game Canvas Layer Layer Manager TiledLayer Sprite

L p ³GameCanvas´ 

K th a t l p Canvas. Nó cung c p tính n ng màn hình c b n và có kh n ng truy v n tr ng thái phím Ph ng th c: public void flushGraphics( ) flushGraphics( protected Graphics getGraphics() getGraphics() public int getKeyStates() getKeyStates() 

1. 2. 3.

L p ³GameCanvas´
Nh n bi t phím c nh n

Nh n bi t phím b m Fire

Phím ch c n ng

C u trúc game MIDP 2.0
public class MyGameCanvas extends GameCanvas implements Runnable { ... public void run() { Graphics g = getGraphics(); while (true) { /*your game code updating state*/ int keyState = getKeyStates(); /*your key press code */ /*your Painting code*/ flushGraphics(); /*Thread sleep } } ... }

L p ³Layer´
Layer là m t l p tr u t ng. Nó c ng i di n cho các ph n t tr c quan các trò ch i nh Sprite hay TiledLayer. Nó t o c s c a framework Layer và cung c p các thu c tính c b n nh v trí, kích th c, và kh n ng hi n th . Các ph ng th c c a l p Layer là:

Public void setPosition(int x, int y) Public void Move (int dx, int dy) Public void setVisible (booleanvisible)

L p ³LayerManager ´  

LayerManager là m t l p ti n d ng theo dõi t t c các layer trong c nh game. Th c ch t là trình qu n lý h a. Tr t t các l p gi ng nh chi u th 3 trong không gian 3 chi u (tr c z). Ch m c 0 là l p g n ng i ch i nh t, ng c l i l p có ch s cao nh t s xa v i ng i dùng nh t. V i s giúp c a l p này, b n có th thi t l p m t khung nhìn(view), i di n cho khung nhìn c a game và t ng render các layer c a game, th c hi n khung nhìn mong mu n.

L p ³LayerManager ´ 

Ph
//cho it

ng Th c:
ng vào LayerManager

public void append(Layer l) public void getSize() // l y s l p hi n t i public void insert(Layer l, int index)
//thêm layer v i ch s xác // g b layer nh index

public void remove(Layer l) pubic void getLayerAt(int index) getLayerAt(int
//l y l p v i ch s xác nh

L p ³LayerManager ´
public void setViewWindow(int x, int y, int width, int height) setViewWindow(int
//xác nh khung nhìn v v it a x y v i c a s có kích th c width height

Hình 1: xác

nh khung nhìn

L p ³LayerManager ´
public void paint(Graphics,int x,int y)
//hi n th l i các Layer ch a trong nó theo t a xy

Hình 2:V l i màn hình

L p ³TiledLayer ´
TileLayer g m có m t l i(grid) các cell, và ây là m t ph n t tr c quan. Các grid c a các cell có th c fill v i nh ng tile image. Hình nh ngu n có th c chia thành các b u có kích th c tile v i chi u r ng và chi u cao b ng nhau. Hàm t o: TiledLayer(int TiledLayer(int columns, int rows, Image image, int tileWidth, int tileHeight)

L p ³TiledLayer ´

Hình nh v vi c s d ng l p TiledLayer

T o Background
int[] gridCells = { 0,0,1,3,0,0,0,0,0,0,0,0 0,1,4,4,3,0,0,0,0,1,2,2 1,4,4,4,4,3,0,0,1,4,4,4 5,5,5,5,5,5,5,5,5,5,5,5 };

L p ³TiledLayer ´
M t s ph ng th c:

public void setCell(int col, int row, int tileIndex) setCell(int // t tile có v trí col row trong TiledLayer public void fillCells(int col, int row, int numCols, int numRows, fillCells(int int tileIndex) // t mi n ch nh t trong TiledLayer public void setStaticTileSet(Image image, int tileWidth, int tileHeight) setStaticTileSet(Image //

public void setAnimatedTile(int animatedTileIndex, setAnimatedTile(int int staticTileIndex)

Ví d

n gi n v TiledLayer

T o hình n n có c 192 x 32 (px) Xây d ng 1 màn hình n n g m 10 dòng 10 c t theo int[] map = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, };

Tài li u tham kh o
-

Sách L p trình JAVA c a khoa CNTH vi n H M HN. http://mobilesprogramming.wordpress.com/ http://www.javavietnam.org/ Tham kh o m t s ví d t : http://www.huudungle.net/

Sign up to vote on this title
UsefulNot useful