Game touch Pikachu miễn phí trên android

Game touch Pikachu miễn phí trên android

Bài lab này mình tổng hợp kiến thức của các bài lab trước như ImageView, Touch Screen, Mảng, Random, Bộ đếm giờ. Do đó, các bạn nên xem qua các bài lab sau:

Mục tiêu thực hiện:

Chương trình hiển thị một lưới chứa nhiều con thú pokemon, sau mỗi 1 giây pikachu sẽ nhảy vào ô của 1 con thú bất kỳ, nhiệm vụ của người chơi là nhanh chóng touch vào Pikachu trước khi hết giờ.

Bộ đếm giờ cho người chơi có 15 giây.

Mách nhỏ:: Các bạn có thể tăng độ khó trò chơi bằng việc chỉnh sửa các thông số ví dụ tăng thêm nhiều thú hơn, chỉnh thời gian nhảy nhanh hơn (nửa giây) hoặc giảm thời gian chơi 15 giây xuống còn 10 giây.

Game touch Pikachu miễn phí trên android

Chuẩn bị:

Một bộ ảnh các con thú pokemon có kích thước bằng nhau. (down ảnh). Copy hình ảnh vào thư mục res/drawable-hdpi.

Lập trình:

Bước 1: Kéo các ImageView vào giao diện thiết bị.

2 TextView, TextView 1 hiện lời giới thiệu, TextView2 hiển thị thời gian chạy.

Bước 2: Tạo mảng chứa đối tượng ImageView

final ImageView mang[]={img1,img2,img3,img4,
                img5,img6,img7,img8,
                img9,img10,img11,img12,
                img13,img14,img15,img16,
                img17,img18,img19,img20,
                img21,img22,img23,img24};

Tạo mảng chứa hình của đối tượng ImageView

final int mang_hinh[]={R.drawable.icon_03,R.drawable.icon_17,R.drawable.icon_06,R.drawable.icon_12,
                                R.drawable.icon_26,R.drawable.icon_42,R.drawable.icon_09,R.drawable.icon_24,
                                R.drawable.icon_38,R.drawable.icon_40,R.drawable.icon_115,R.drawable.icon_118,
                                R.drawable.icon_114,R.drawable.icon_116,R.drawable.icon_119,R.drawable.icon_121,
                                R.drawable.icon_123,R.drawable.icon_122,R.drawable.icon_120,R.drawable.icon_124,
                                R.drawable.icon_127,R.drawable.icon_129,R.drawable.icon_125,R.drawable.icon_126};

Bước 3: Tạo một bộ đếm thời gian CountDownTimer, truyền tham số là 15 giây kết thúc đếm, sau mỗi 1 giây thực hiện hành động.

new CountDownTimer(15000, 1000) {
           
            [USER=123941]override[/USER]
            public void onTick(long millisUntilFinished) {
                // TODO Auto-generated method stub
               
            }
           
            [USER=123941]override[/USER]
            public void onFinish() {
                // TODO Auto-generated method stub   
               
            }
        }.start();

Tạo hàm xuất ra định dạng lại thời gian để người dùng dễ theo dõi. Tham số truyền vào là một dãy số mili giây. Xuất ra định dạng phút : giây.

public String formatTime(long millis) {
        String output = "00:00";
        long seconds = millis / 1000;
        long minutes = seconds / 60;
 
        seconds = seconds % 60;
        minutes = minutes % 60;
 
        String sec = String.valueOf(seconds);
        String min = String.valueOf(minutes);
 
        if (seconds < 10)
            sec = "0" + seconds;
        if (minutes < 10)
            min= "0" + minutes;
 
        output = min + " : " + sec;
        return output;
    }//formatTime

Gọi formatTime trong hàm onTick để sau mỗi giây đồng hồ đếm giờ nhảy số 1 lần

 tv.setText("" + formatTime(millisUntilFinished));  

Bước 4: Tạo biến random để sau mỗi giây ảnh Pikachu hiển thị ngẫu nhiên

Trong hàm onTick tạo ra một biến Random:

Random ran=new Random();
x = ran.nextInt(24);

Nghĩa là sau 1 giây sẽ c

Lấy ra phần tử x trong mảng và thay hình phần tử đó bằng hình Pikachu

 mang[x].setImageResource(R.drawable.icon_25);    

Bước 5: Nhả về hình cũ sau khi Pikachu sang vị trí khác

 xtam_old=x;
mang[xtam_old].setImageResource(mang_hinh[xtam_old]);
 
mang[xtam_old].setOnClickListener(new View.OnClickListener() {
                               
                                [USER=123941]override[/USER]
                                public void onClick(View arg0) {
                                    // TODO Auto-generated method stub
                                               
                                }
                            });

Bước 6: Touch vào Pikachu sẽ hiện text thông báo

 mang[x].setOnClickListener(new View.OnClickListener() {
                           
                            [USER=123941]override[/USER]
                            public void onClick(View arg0) {
                                // TODO Auto-generated method stub
                                tv.setText("Chiến thắng!!!");
                            }
                        });
File: 
Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Quảng cáo việc làm

 

Thích hợp các bạn nữ mảng thợ may làm việc tại nước NGA

Đơn hàng Tuyển dụng 100 Thợ may đi Nga(đợt 1 tháng 3.2021, đợt 2 tháng 5.2021). Lương thực lãnh 800 USD, bao ăn ở, vé máy bay và visa, phí xuất cảnh(1800 USD)trả khi đi làm có lương. Bạn có thể liên hệ CÔNG TY qua Phone/Zalo: (+84) 944 225 212. Công ty sẽ tư vấn cho bạn.

Xem chi tiết: >>> https://bit.ly/3o9NOfR

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Making region content available to node templates in Drupal 8

Đưa region block vào trong node templates của Drupal 8

Why would you need to render the content from Drupal’s block layout via a node template file? Normally, that is the territory of page templates. 

Google xác nhận Pixel 3a sau Google Pixel 3 và 3 XL dự kiến ra mắt tại Google I/O 2019

Google xác nhận Pixel 3a sau Google Pixel 3 và 3 XL dự kiến ra mắt tại Google I/O 2019

Ngay sau khi bộ đôi Google Pixel 3 và 3 XL, Goolge lại tiếp tục ra mắt các phiên bản rẻ hơn mang tên Pixel 3 Lite và Pixel 3 XL Lite. Và mới đây, bộ đôi này đã chính thức đạt chứng nhận của FCC.

Cập nhật các key Workflow phổ biến trong Open Atrium 2

Cập nhật các key Workflow phổ biến trong Open Atrium 2

The Open Atrium Workbench module, along with several dependent modules, was a collaboration between Phase2 (srjosh and myself) and the Community (dsnopek).