Lỗi không hiển thị khi lập trình game board năm 2024
Đã là game thì phải có sự tương tác giữa người chơi với đối tượng trong game. Giờ thì chúng ta sẽ sử dụng nút ấn để điều khiển đối tượng trên. Cụ thể khi nhấn nút “Left” thì nó sang trái, “right” đi sang phải. Show Nối nút ấn với arduinoĐây là cách nối dây phù hợp với code ví dụ bên dưới. Chúng ta sẽ sử dụng các chân Analog để nhận tín hiệu từ nút nhấn. Chú ý nút nhấn được nối theo kiểu Pullup nhé (một đầu nối xuống GND). Dùng hàm Pullup_4 có sẵn trong thư viện để kiểm tra xem nút nào đang được nhấn byte Pullup_4(byte right_pin, byte up_pin, byte left_pin, byte down_pin); Hàm sẽ trả về chỉ số của nút tương ứng khi chúng được nhấn:
Tính theo chiều dương của 4 góc phần tư _______[2] ___[3]_____[1] _______[4] Sau khi nối xong hãy copy và chạy trên chương trình để test nhé. include "ST7565_homephone.h"ST7565 lcd(3,4,5,6); void setup() { }
void loop(){ }Test hoàn thiện, Giờ thì cùng quay lại chủ đề nàoVậy thì thuật toán sẽ ra sao để khi nhấn nút thì nó (đối tượng hình tròn bên trên) sẽ di chuyển trái phải. Tìm thuật toán đơn giản nhất chính là cách tư duy trong lối phát biểu của chúng ta, mình sẽ phát biểu thế này :
Triển khai thuật toán: include "ST7565_homephone.h"ST7565 lcd(3,4,5,6); void setup() { }
int x=60;//hoành độ khảo sát
byte button;
void loop(){ }
//Hãy mở cửa sổ monitor để xem hoành độ thay đổi ra sao khi nhấn hoặc không nhấn.Vậy là ok, thuộc tính (x) đã phản ứng theo đúng ý ta. Giờ thì cần thay đổi phương thức từ xem X qua cửa sổ monitor thành phương thức di chuyển trên màn hình. Đơn giản là mình thay dòng Serial.println() với đoạn code đã viết để xử xí chuyển động hình tròn: include "ST7565_homephone.h"ST7565 lcd(3,4,5,6); void setup() { }
int x=60;//hoành độ khảo sát
byte button;
void loop(){ }Vậy là ta đã điều khiển được một đối tượng rồi, từ đây bạn có thể tự tin hơn rồi đấyTự tin hơn thì nghịch nghịch tý nhỉ: Bây giờ còn tung độ của hình tròn thì chúng ta thay nốt xem sao: Thuật toán:
Chú ý lại quy tắc hệ trục tọa độ tại bài viết này nhé: http://arduino.vn/tutorial/1319-st7565-huong-dan-su-dung-glcd-st7565-homephone-va-chia-se-thu-vien include "ST7565_homephone.h"ST7565 lcd(3,4,5,6); void setup() { lcd.ON(); lcd.SET(23,0,0,0,4); }
int x=60;//hoành độ khảo sát
int y=30;// tung độ khảo sát
byte button;
void loop(){ }Tìm hiểu các chức năng còn lại của Pullup_4 xem saoNgoài 0,1,2,3,4 nó còn trả về các số sau:
Bây giờ mình muốn nó di chuyển chéo thì sao nhỉ :Thuật toán:
include "ST7565_homephone.h"ST7565 lcd(3,4,5,6); void setup() { }
int x=60;//hoành độ khảo sát
int y=30;// tung độ khảo sát
byte button;
void loop(){ }Giờ mình cần giới hạn chuyển độngKhông cho đối tượng chạy mất khỏi màn hình. Thuật toánKiểm tra xem: nếu đối tượng nằm trong biên thì cho phép di chuyển, ngược lại thì không cho phép di chuyển. |