Vậy là mình đã "xử lý" xong phần texture từ gốc tới rễ. Giờ mình sẽ giới thiệu một phần quan trọng không kém là Actor. Nó cũng chính là tên lớp. Vậy Actor là gì ?
Bạn có thể hiểu nôm na là diễn viên cũng được, nhưng ở đây là diễn viên trong libgdx. Diễn viên thường hay diễn xuất để trở thành nhân vật anh ta diễn thì Actor cũng diện một cái gì đó. Để các bạn dễ hiểu thì các bạn hãy xem bức ảnh ở dưới:
| Actor? |
Các bạn chắc đã hiểu về Actor rồi nhỉ :)) giờ sẽ là đôi nét về Actor:
Actor thuộc Actor class :)
Khi bạn tạo bất kỳ Actor nào, vị trí (0,0) của Actor đều là bottom left nhé ( góc bên trái dưới cùng ). Điều đó có nghĩa là nếu bạn đính actor vào bất kỳ vị trí nào trong game của bạn, thì GÓC BÊN TRÁI DƯỚI CÙNG sẽ được đính vào chỗ đó nhé. Không phải ngay giữa Actor hay góc bên trái trên cùng.
VD:
Game của bạn có chiều cao 1720 pixel và chiều rộng 720 pixel. Bạn muốn cho Actor của bạn ở vị trí chính giữa. Bạn code như thế này :
actor.setPosition(360,860);
Bạn sẽ thấy actor của mình sẽ không nằm ở vị trí chính giữa mà sẽ hơi lệch một tí về bên phải lên trên. Đó là do ví trí bên trái dưới cùng của actor sẽ nằm ở vị trí đó. Chính vì thế, để cho actor nằm ở vị trí chính giữa, bạn phải làm sao cho vị trí chính giữa của actor nằm đúng với vị trí chính giữa của game bạn. Để làm được điều đó, bạn phải dịch chuyển vị trí góc trái dưới cùng của actor đi về phía bên trái xuống dưới .
actor.setPosition(360 - actor.width /2, 860 - actor.height / 2);
Actor có khá nhiều phương thức hỗ trợ. Sau đây là một số phương thức hay dùng nhất và theo mình là khá quan trọng:
Đầu tiên là các phương thức giúp các bạn thao tác với vị trị của Actor:
Đặt vị trí cho actor :
setPosition(float x, float y);
Đặt vị trí riêng biệt cho actor:
setX();
setY();
Lấy vị trí actor:
getX();
getY();
Di chuyển actor đến một khoảng cách x , y:
moveBy(float x, float y);
Tiếp theo là phương thức thao tác với góc của Actor:
Đặt góc cho actor (lưu ý là 0 độ của actor là trên cùng nhé):
setRotation(float độ);
Di chuyển góc actor với ? độ ( lưu ý là góc actor di chuyển theo ngược chiều kim đồng hồ ):
rotateBy(float độ);
Actor có một điểm trừ là không có phương thức gắn ảnh vào do actor thuộc lớp Scene 2d ( lớp chuyên làm menu ). nên bạn không thể gắn ảnh bằng cách thông thường được nhé. Bạn phải tự tạo cho mình phương thức riêng để gắn ảnh vào Actor ( mình sẽ hướng dẫn trong bài sau ).
Đây là những thứ cơ bản về Actor bạn nên nắm chắc vì rất quan trọng. Phần sau mình sẽ nói về stage, và những thứ còn lại về Actor :))
No comments:
Post a Comment