XtGem Forum catalog
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ụ:
19:25:23, 28-07-2015

Sự điều khiển: keyPressed() và getKeyStates()
Bây giờ thì ta sẽ học cách để đưa lệnh vào cho một trò chơi thông qua các nút bấm. lấy ví dụ của bài học trước, ta sẽ cho di chuyển hình chữ nhật khi các nút được nhấn:
File vd.java vẫn như cũ, file a.java thêm và chỉnh sửa như sau:
<?php
import javax
.microedition.lcdui.game.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class 
extends GameCanvas implements Runnable
{
private 
vd main;
private 
Graphics g=getGraphics();
int w,h;
public 
a(vd main){
super(false);
this.main=main;}
void start(){
w=getWidth();//chieu rong man hinh
h=getHeight();//chieu cao man hinh
Thread t=new Thread(this);
t.start();}
public 
void run()
{
boolean play=true;
while(
play){
g.setColor(0x000000);
g.fillRect(0,0,w,h);
g.setColor(0xffffff);
g.drawRect(w/2,h/2,w/4,h/4);
flushGraphics();
try{
Thread.sleep(30);}catch(Exception e){}//cho ngung mot thoi gian
}
}
protected 
void keyPressed(int key){
if(
key==KEY_NUM2){h-=3;}
if(
key==KEY_NUM4){w-=3;}
if(
key==KEY_NUM6){w+=3;}
if(
key==KEY_NUM8){h+=3;}
}
void input(){
int k=getKeyStates();
if(
k==UP_PRESSED){h--;}
if(
k==LEFT_PRESSED){w--;}
if(
k==RIGHT_PRESSED){w++;}
if(
k==DOWN_PRESSED){h++;}
}
}
?>

Copy code

Ta thấy trong khi sử dụng protected void keyPressed(int key){} mỗi lần nhấn nút chỉ có tác dụng một lần, còn đối với getKeyStates() thì lại có tác dụng khi nhấn giữ. Đó là do getKeyStates() đựơc sử dụng trong một function tự tạo và được gọi vào vòng lặp liên tục mỗi khi vòng lặp lại.
keyPressed(int key) nhận các giá trị theo nút bấm: KEY_NUM0 ->KEY_NUM9 và 48-> 57 (từ 0->9), KEY_STAR (phím *), KEY_POUND (phím #), -6(phím chọn trái), -7(phím chọn phải), -1(phím chuyển lên),-2(phím chuyển xuống), -3(phím chuyển trái), -4(phím chuyển phải), -5(FIRE, phím OK)
và getKeyStates() nhận các giá trị: UP_PRESSED (lên), DOWN_PRESSED (xuống), LEFT_ PRESSED (trái), RIGHT_ PRESSED (phải), FIRE_ PRESSED (phím OK)


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

Trực Tuyến: Khách: 1
Diễn đàn teen Việt Nam
CopyRight 2014