Disneyland 1972 Love the old s
↓↓xuống cuối trang↓↓
Chào mừng bạn đến với wap DinhLoi.XtGem.Com | Chúc bạn có 1 năm mới vui vẻ tốt lành hạnh phúc! Hãy giới thiệu website này cho bạn bè nhé!img
DinhLoi.XtGem.Com =>> CaFe9x.Gq
Bạn đến từ quốc gia:



Hôm nay ngày
09.05.26/00:36
img- Hi. Xin chào! Mozilla/5.0
logo
.
HOMECHÁTTruyệnFORUM
logo

Chatbox|Admin nhận làm wap/web, giá cả thương lượng... Thông tin admin tại mỗi bài viết.
Home · Bang hội ·
* Đăng Nhập hoặc Đăng Kí
để sử dụng hết chức năng của diễn đàn.
Hi, Khách!
HomeBang hội » Thủ thuật » Nokia s40 » » Xem bài viết
Xuống dưới »
avatar by Pham_loi Pham_loi
Chức vụ:
23:46:32, 28-07-2015

vẽ nền, bản đồ, khung cảnh
Trong game nhân vật của chúng ta không phải chỉ di chuyển trong một không gian nhỏ hẹp, mà đó thật sự là một thế giới rộng lớn. tuy nhiên tất cả chỉ là sự sắp xếp có tính tóan từ trước chỉ bằng vài hình ảnh cơ bản. có thể nói cũng như việc dùng gạch xây nhà, từ những viên gạch giống nhau nhưng cách sắp xếp khác nhau sẽ cho ra nhưng ngôi nhà khác nhau.
Vậy chúng ta hay xem cách xây dựng một thế giới rộng lớn từ những hình ảnh đơn giản như thế nào nhé.
Chúng ta cần chuẩn bị:
- một ảnh bao gồm nhiều ô nhỏ mỗi ô là một viên gạch
- một array chỉ định cách sắp xếp các viên gạch tạo thành map.
* hiểu một chút về TiledLayer:
Công thức
<?php
TiledLayer tl
=new TiledLayer(số cộtsố dòngảnh nguồndài mỗi ô trong ảnh nguồnrộng mỗi ô trong ảnh nguồn);
tl.setCell(col,row,index tile);
tl.setPosition(int xint y);// vẽ từ điểm nào trên màn hình
tl.paint(Graphics); // vẽ tl vào graphics
?>

Copy code

Tôi thì không có năng khiếu cho lắm khi vẽ hình trên máy tính nhưng tạm thời ta sẽ sử dụng tấm hình dưới đây làm gạch
Và map được tạo ra bằng phần mềm tiled map editor, như sau:
<?php
Int
map=={
4,4,4,1,1,4,4,4,4,4,
4,4,1,1,4,4,4,4,4,4,
4,4,1,1,4,4,1,1,4,4,
4,4,1,1,3,1,1,4,4,4,
4,4,1,1,1,1,1,1,4,4,
4,4,4,4,1,1,1,2,4,4,
1,4,4,4,1,1,4,4,4,4,
1,4,4,4,1,1,4,4,4,1,
1,4,4,4,4,4,4,4,4,1,
1,1,4,4,4,4,4,4,1,1
};
?>

Copy code

Xem code hoàn chỉnh dưới đây để thấy nó hoạt động như thế nào:
map.java
<?php
import javax
.microedition.lcdui.game.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class 
map extends GameCanvas implements Runnable
{
private 
vd main;
private 
Graphics g=getGraphics();
int w=getWidth();
int h=getHeight();
private 
Image t;
private 
TiledLayer tl;
private 
int x=0,y=0;
private 
boolean play=true;
private 
intmap={
4,4,4,1,1,4,4,4,4,4,
4,4,1,1,4,4,4,4,4,4,
4,4,1,1,4,4,1,1,4,4,
4,4,1,1,3,1,1,4,4,4,
4,4,1,1,1,1,1,1,4,4,
4,4,4,4,1,1,1,2,4,4,
1,4,4,4,1,1,4,4,4,4,
1,4,4,4,1,1,4,4,4,1,
1,4,4,4,4,4,4,4,4,1,
1,1,4,4,4,4,4,4,1,1
}; // dài và rộng là 10 <=> 100 phần tử, 4 và 1 là khung thứ 1 và khung thứ 4 trong ảnh nguồn mà TiledLayer tạo ra ở dưới.
public map(vd main){
super(false);
this.main=main;}
void start(){
Thread t=new Thread(this);
t.start();}
public 
void run()
{
try{
t=Image.createImage("/t.png");}catch(Exception e){}
tl=new TiledLayer(10,10,t,32,32);//tạo tiled layer với 10 cộ, 10 dòng, mỗi ô 10x10
for(int i=0;i<map.length;i++){
int col=i%10;//lay du cua i/10
int row=(i-col)/10;//lay nguyen cua (i-col)/10
tl.setCell(col,row,map[i);}
while(
play){ input();
g.setColor(0x000000);
g.fillRect(0,0,w,h);
tl.setPosition(x,y);
tl.paint(g);
flushGraphics();
try{
Thread.sleep(30);}catch(Exception e){}//cho ngung mot thoi gian
}
}
void input(){
int k=getKeyStates();
if(
k==UP_PRESSED){y++;}
if(
k==LEFT_PRESSED){x++;}
if(
k==RIGHT_PRESSED){x--;}
if(
k==DOWN_PRESSED){y--;}
}
}
?>

Copy code


Chỉnh sửa lúc 2016-07-10 20:55 bởi Pham_loi
Like: 0

Trực Tuyến: Khách: 1
Diễn đàn teen Việt Nam
CopyRight 2014
Tag:
Bạn đến từ:
Share: img img img img img

Thanks To:XtGem
Liên kết:U-ON