Bạn
muốn icon trong Game xuất hiện ngẫu nhiên tại vị trí nào đó, ví dụ nó chạy qua
màn hình rồi lại chạy vào ở vị trí khác không cùng vị trí cũ.
Hãy
dùng hàm Random để làm việc này.
Copy
những dòng sau vào trong hàm onDraw.
Random generato = new Random();
int so =
generato.nextInt(3);
Paint paint = new Paint();
paint.setTextSize(45);
paint.setColor(Color.parseColor("#FF00FF"));
canvas.drawText(so+"",
r/2, 100, paint);
Chạy
thử để thấy có các số từ 0 đến 2 hiện ra liên tiếp. Hàm random tạo ra các số
trong khoảng từ 0 đến nextInt, dùng các số ngẫu nhiên này gán cho vị trí tọa độ
của icon sẽ khiến nó xuất hiện ngẫu nhiên.
Giả
sử ta có một icon mcuoi chạy qua màn hình.
Nếu
ta để y cố định, mỗi lần xuất hiện lại icon đều ở cùng một vị trí.
Ta
muốn nó ở vào một vị trí bất kỳ nào đó dọc theo chiều cao của màn hình.
Hãy
thêm vào trong lệnh if.
Random generato = new Random();
y = generato.nextInt(c)
- mcuoi.getHeight();
Bây
giờ icon đã có vị trí ngẫu nhiên mỗi lần xuất hiện lại.
Giả
sử ta muốn icon mỗi lần lại là một cái khác, hãy dùng Random để khởi tạo bitmap
ngẫu nhiên.
Random generato = new Random();
int so = generato.nextInt(3);
switch (so){
case 0:
mcuoi = BitmapFactory.decodeResource
(this.getResources(), R.drawable. cuoi1);
break;
case 1:
mcuoi =
BitmapFactory.decodeResource
(this.getResources(), R.drawable.cuoi2);
break;
case 2:
mcuoi =
BitmapFactory.decodeResource
(this.getResources(), R.drawable.cuoi3);
break;
}
Sau
đó trong lệnh if ta cũng để Random mỗi lần icon xuất hiện lại.
if(x>r){
x=-mcuoi.getWidth();
Random generato = new Random();
y = generato.nextInt(c) - mcuoi.getHeight();
Random generato2 = new Random();
int so =
generato2.nextInt(3);
switch (so){
case 0:
mcuoi =
BitmapFactory.decodeResource
(this.getResources(), R.drawable. cuoi);
break;
case 1:
mcuoi =
BitmapFactory.decodeResource
(this.getResources(), R.drawable.cuoi2);
break;
case 2:
mcuoi =
BitmapFactory.decodeResource
(this.getResources(), R.drawable.cuoi3);
break;
}
}
Bây
giờ thì icon mỗi khi xuất hiện ra lại là một ảnh ngẫu nhiên không biết trước được.
No comments:
Post a Comment