Bây giờ, để
nó thành game hoàn chỉnh, ta cần thêm vào 2 thanh chắn nữa để tăng độ khó.
Do các thanh
song song có giá trị x như nhau nên ta chỉ khai báo thêm một biến xthanh34 để dùng chung.
Khởi tạo 2
thanh mới
thanh3 = BitmapFactory.decodeResource(getResources(), R.drawable.kb);
thanh4 = BitmapFactory.decodeResource(getResources(), R.drawable.kb);
Set vị trí của chúng cách thanh cũ 200dp.
xthanh34 = r+200;
Vẽ dịch lên so với thanh cũ để các lỗ trống không thẳng hàng.
canvas.drawBitmap(thanh3, xthanh34, -40, null);
canvas.drawBitmap(thanh4, xthanh34, 320, null);
Tạo các rect để xử lý va chạm.
Rect touch3 = new Rect(xthanh34, 0, xthanh34 + thanh.getWidth(),
thanh.getHeight()-40);
Rect touch4 = new Rect(xthanh34, 320, xthanh34 + thanh.getWidth(),
320 +
thanh.getHeight());
Thêm lệnh để cho hai thanh chạy.
xthanh34 = xthanh34 - 7;
Thêm lệnh để set cho thanh quay về khi chạy hết.
if (xthanh34 < -thanh.getWidth()) {
xthanh34 = r;
}
Trong lệnh case MotionEvent.ACTION_DOWN: set lại vị trí
xthanh34 khi bắt đầu
xthanh34 = r+200;
Chạy thử để biết chắc đã có các thanh thêm vào.
Thêm
các dòng để set va chạm con chim và các thanh mới
if (Rect.intersects(touch, touch3)) {
hit = true;
soundPool.play(bump, 0.9f, 0.1f, 1, 0, 0.7f);
}
if (Rect.intersects(touch, touch4)) {
hit = true;
soundPool.play(bump, 0.9f, 0.1f, 1, 0, 0.7f);
}
Tạo biến đếm
thứ 2 để đếm qua lỗ 2, khởii tạo giá trị của nó giống xdem, chỉ khác là dùng
xthanh34.
xdem2 = xthanh34 - 200 + thanh.getWidth() + chim.getWidth();
Cho luôn
dòng trên vào lệnh if (xthanh34 < -thanh.getWidth()) { để bật nó về đầu khi chạy đến cuối và trong case MotionEvent.ACTION_DOWN: để bắt đầu khi chơi lại
game.
Thêm lệnh để
nó chạy cùng với các thanh.
xdem2 = xdem2 - 7;
Thêm lệnh if
này vào để đếm qua lỗ 2
if (xdem2 < 0) {
xdem2 = r;
dem = dem + 1;
}
Vậy là xong
rồi, ta đã có chắn thứ hai, để thêm vào thanh chắn nữa bạn làm tương tự, chú ý
để lỗ trống thấp xuống cho nó khó chơi là được.
No comments:
Post a Comment