Một bài tập về đồ hoạ (quả bóng chuyển động,va đập bên trong hình chữ nhật)
Chào các bạn,mình có một bài tập như sau :
Do mình mới học lập trình C++ (qua các clip của bạn Đạt),chưa có kiến thức về đồ hoạ C++ nên mình vẫn chưa biết bắt đầu từ đâu.Mình đã tìm hiểu theo 2 hướng,1 là dùng nguyên thư viện graphics.h … hai là sử dụng các game library như allegro (allegro.cc),SFML… nhưng thời gian tìm hiểu chưa đủ để mình có thể sử dụng chúng giải quyết bài toán.Cũng như mong muốn của mình là sử dụng thuần code C++(OOP) để làm.Theo mình nghĩ thì cần có một lớp Circle(Ball) với các thuộc tính { vị trí tâm (x,y), bán kính,màu sắc} và các phương thức {khởi tạo,di chuyển,xét va chạm} .Sau đó thì mình chưa nghĩ thêm được gì,bạn nào biết thì định hướng cho mình cách làm một chút,mình xin chân thành cảm ơn.
Ngày trước mình cũng nghịch ngợm về C đồ họa nhưng chỉ dừng lại ở graphics.h còn đâu chưa nghịch thêm. Nhưng dù nghịch cái nào thì cũng dễ dàng vẽ được 1 quả bóng, giờ cho nó chuyển động chỉ là thay đổi tọa độ theo 1 công thức nào đó.
Bài toán quy về việc tìm công thức thay đổi tọa độ bóng. Cái này thì đơn giả, bạn cần 1 biến dx, dy để thể hiện, mô tả hướng đi, mỗi lần đi thì x += dx, y +=dy (x, y là tâm). VD dx = 1, dy = 2 thì sẽ đi chéo xuống từ phải qua trái nhưng y sẽ tăng nhanh hơn x tạo ra đường xiên gần đứng. Khi gặp tường theo chiều nào thì cho giá trị độ lệnh dx hoặc dy ngược lại. VD gặp cạnh dưới thì cho dy = -dy là bóng di chuyển lên trên, x vẫn tăng bình thường.
Và nhớ là để trong vòng lặp vô hạn cho nó chạy
Bạn xem video nào vậy.Cho m xin link.