Công việc tiếp theo là xây dựng lớp Ball. Theo như tinh thần hướng đối tượng thì trong game, mỗi quả bóng sẽ là một đối tượng riêng biệt. Như vậy ta cần đi xây dựng một lớp định nghĩa “thế nào là một quả bóng”, đồng thời lớp này kiêm luôn nhiệm vụ
T ì m h i ể u A n d r o i d | 45 vẽ quả bóng (vẽ chính nó) ra màn hình cũng như kiểm tra tọa độ (sẽ được sử dụng trong doTouch()).
Lớp Ball được thiết kế như sau:
public class Ball {
public Ball(Canvas c){}
public void draw(Canvas c, Paint p){} public void update(Canvas c){}
public Boolean check(int x, int y){} public Boolean checkColor(int color){} public int score(){}
}
Giải thích các phương thức trong lớp Ball:
Ball()
Phương thức khởi tạo. Tạo một quả bóng với màu sắc, kích thước, vị trí, hướng di chuyển và tốc độ ngẫu nhiên. Phương thức này cần truyền vào tham số là một
Canvas bởi vì khi tạo mới một quả bóng, tọa độ của quả bóng sẽ được xác định
ngẫu nhiên, nhưng vẫn cần phải nằm trong vùng màn hình nên ta cần truyền vào
Canvas hiện tại để xác định kích thước của Canvas đó, từ đó xác định tọa độ cho
quả bóng.
draw()
Phương thức này dùng để vẽ quả bóng ra màn hình, tham số cần truyền vào là
Canvas được sử dụng để vẽ hình lên, và một bút vẽ (Paint) hiện tại. Phương
thức này sẽ được gọi bởi phương thức run() trong lớp AnimationThread.
update()
Phương thức này sẽ xác định lại tọa độ mới cho quả bóng, nhờ phương thức này quả bóng mới có thể bay qua lại trên màn hình theo một quỹ đạo nhất định. Phương thức này cần truyền vào một Canvas, mục đích là để xác định kích thước màn hình như phương thức khởi tạo.
check()
Phương thức này trả về một giá trị Boolean , được dùng để kiểm tra tọa độ truyền vào (x, y) có nằm trong quả bóng hay không. Được gọi bởi phương thức
doTouch() trong lớp AnimationThread.
checkColor()
Phương thức này trả về một giá trị Boolean, dùng để kiểm tra màu truyền vào (color) có giống với màu hiện tại của quả bóng hay không. Được gọi bởi phương
thức doTouch() trong lớp AnimationThread.
score()
Phương thức này trả về một số kiểu Int, dùng để xác định lượng điểm số tương ứng với kích thước quả bóng. Bán kính càng nhỏ thì lượng điểm càng lớn.