Wednesday, August 10, 2016

Actor


   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?
   Bạn có thể thấy hình một tên béo màu vàng và cái đồng hồ được mình chỉ mũi tên đỏ và ghi Actor. Vậy bạn thử nghĩ Actor là diễn viên đi thì bạn sẽ thấy tên béo màu vàng mình chỉ vào hoàn toàn là Actor rồi nhưng có một số sẽ nói vậy tại sao chiếc đồng hồ lại là Actor ? Mình sẽ giải thích như sau: ở đây bạn nên hiểu Actor là Diễn viên TRONG libgdx. Hoàn toàn khác với diến viên ngoài đời nhé ! Vậy diễn viên trong libgdx là gì? Diễn viên trong libgdx không cần phải diễn mới được gọi là diễn viên mà đơn giản chỉ cần đóng bất kỳ vai trò nào trong game là được. Vì vậy, gọi cái đồng hồ cũng là Actor là hoàn toàn hợp lý! Đơn giản vì đồng hồ cũng sẽ đóng một vai trò nào đó trong game. Nếu các bạn vẫn băn khoăn tại sao đất ( thứ mà bigguy đang đứng) mình không chỉ Actor, thì các bạn muốn gọi Actor cũng được nếu các bạn có đất thật ( Có nghĩa là tạo đất riêng ra như là mình tạo đồng hồ với tên béo ). Còn đối với mình thì đó chính là cái hình background của mình :)) mình chỉ cho vị trí của tên béo làm sao đứng ở trên cái " đất " thôi.

   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