Sprite là một phần mở rộng của Entity (xem bài mở đâu). Thường được dùng để vẽ các bức ảnh tỉnh lên scene. Bài này mình sẽ hướng dẫn cách vẽ một sprite lên scene và các phương thức thường dùng của nó.
Download ảnh bên dưới và copy vào thư mục assets trong project.
- Khởi tạo 2 biến
- private BitmapTextureAtlas mBitmapTextureAtlas;
- private ITextureRegion mPlayerTextureRegion;
- Trong phương thức onCreateResources khởi tạo các biến như sau:
- mBitmapTextureAtlas = new BitmapTextureAtlas(this.getTextureManager(), 214, 320);
- //214 chiều rộng + độ cao của ảnh
- mPlayerTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "minion.png", 0, 0);
- mBitmapTextureAtlas.load();
- Màu đỏ là vùng được BitmapTextureAtlas định nghĩa. Màu vàng là vùng TextureRegion được hiển thị theo các tọa độ khác nhau.
Nếu bạn đặt ảnh trong folder con của assets thêm phương thức sau để xác định đường dẫn cho anh :
- BitmapTextureAtlasTextureRegionFactory
- .setAssetBasePath("path");
Sau khi đã load texture tạo một đối tượng Sprite .Có rất nhiều contructor cho bạn lựa chọn mình thường tạo Sprite sử dụng contructor như sau:
- Sprite image = new Sprite(0, 0, mPlayerTextureRegion, mEngine.getVertexBufferObjectManager());
Và vẽ ảnh này lên scene:
- currentScene.attachChild(image);
- setPosition : set theo vị trí của Entity khác hoặc theo tọa độ x,y.
- setAlpha : chỉnh độ trong suốt .
- setScale : phóng to, thu nhỏ.
- setFlipped : lật ảnh 180 độ theo chiều x và y.
- setSize : chỉnh size của sprite.
- setVisible : ẩn hoặc hiển thị sprite.
- setZIndex : chỉnh vị trí sprite theo tọa độ Z khá quan trong khi bạn làm với nhiều layer.
Sau đây là toàn bộ code sau khi hoàn thành :
- public class MyGameActivity extends BaseGameActivity {
- private Camera mCamera;// tạo camera, lưu ý camera không thể thay đổi
- private int CAMERA_HEIGHT = 720;// khai báo chiều cao cho camera
- private int CAMERA_WIDTH = 480;// khai báo chiều dọc cho camera
- private BitmapTextureAtlas mBitmapTextureAtlas;
- private ITextureRegion mPlayerTextureRegion;
- @Override
- public EngineOptions onCreateEngineOptions() {
- // Cài đặt EngineOptions với 1 camera. Ngoài ra bạn có thể tùy chọn có
- // music,sound hay có Multi Touch
- mCamera = new BoundCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
- EngineOptions eni = new EngineOptions(true,
- ScreenOrientation.PORTRAIT_SENSOR, new FillResolutionPolicy(),
- this.mCamera); // set fullscreen = true , theo chiều dọc =
- // PORTRAIT_SENSOR, full màn hình = new
- // FillResolutionPolicy()
- eni.getAudioOptions().setNeedsMusic(true);// set game có music
- eni.getAudioOptions().setNeedsSound(true);// set game có Sound
- eni.getTouchOptions().setNeedsMultiTouch(true);
- if (MultiTouch.isSupported(this)) {
- if (MultiTouch.isSupportedDistinct(this)) {
- } else {
- }
- } else {
- Toast.makeText(
- this,
- "Sorry your device does NOT support MultiTouch!\n\n(Falling back to SingleTouch.)\n\nControls are placed at different vertical locations.",
- Toast.LENGTH_LONG).show();
- } // set game co multi touch
- return eni;
- }
- @Override
- public void onCreateResources(
- OnCreateResourcesCallback pOnCreateResourcesCallback)
- throws Exception {
- mBitmapTextureAtlas = new BitmapTextureAtlas(this.getTextureManager(),
- 214, 320);
- // 214 chiều rộng + độ cao của ảnh
- mPlayerTextureRegion = BitmapTextureAtlasTextureRegionFactory
- .createFromAsset(this.mBitmapTextureAtlas, this, "minion.png",
- 0, 0);
- mBitmapTextureAtlas.load();
- // Tạo tất cả các Resources. Load các Resourt như ảnh, font chữ,
- // music,sound.
- // Phần này mình sẽ hướng dẫn ở các bài sau. Thêm câu lệnh sau
- pOnCreateResourcesCallback.onCreateResourcesFinished();
- }
- @Override
- public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback)
- throws Exception {
- // Tạo scene và attach các thứ mà bạn vẽ vào scene
- Sprite image = new Sprite(0, 0, mPlayerTextureRegion,
- mEngine.getVertexBufferObjectManager());
- Scene currentScene = new Scene();
- currentScene.attachChild(image);
- pOnCreateSceneCallback.onCreateSceneFinished(currentScene);
- }
- @Override
- public void onPopulateScene(Scene pScene,
- OnPopulateSceneCallback pOnPopulateSceneCallback) throws Exception {
- // Attach các thứ mà bạn thường xuyên hiển thị trên Scene.
- pOnPopulateSceneCallback.onPopulateSceneFinished();
- }
- }
Thank bạn đã post bài. Bạn có thể cho link down thư viện andengine luôn không. Hiện tại thư viện mình đang tìm hiểu không thấy có các lớp giống như ví dụ của bạn.
ReplyDeleteSorry vì reply muộn. Link down thì bạn có thể lên trang chủ để down https://github.com/nicolasgramlich/AndEngine.
ReplyDeleteImport nhiều lúc gặp lỗi. Bạn có thể PM mình để mình giúp bạn cài nhé !
OK Thank bạn
ReplyDeleteDạo này bận không viết blog nữa ah bạn ơi ?
ReplyDeleteUh! Dao nay minh cung dang ban, chua co thoi gian viet.
ReplyDeleteMa ban can minh viet phan nao thi post len ! Luc nao ranh minh viet !
Thanks for sharing the post.Your article is very nice thank you for share this such a wonderful article. I know that you explain it in very good manner.
ReplyDeletefacebook help chat live chat on facebook, autoketing app
Hmm is anyone else experiencing problems with the images on this
ReplyDeleteblog loading? I’m tryhing to determine if its a problem on my end or if it’s the blog.
autoketing
Free shipping bar
Shopify free shipping bar app
Good day. I discovered your online journal utilizing msn.I study one thing tougher on completely different blogs everyday.
ReplyDeleteDiscount master app 2018, Product discount app, autoketing
email with love free app
ReplyDeleteemail with love by autoketing
apps autoketing
I could not refrain from commenting. Exceptionally well written!
The article is really good and useful, thanks so much for sharing this.
ReplyDeletecurrency converter box free, currency converter app download, best autoketing app
I guess you are a smart cookie because of your knowledge and insight.They are my cup of tea.I want to thank you for sharing.
ReplyDeletefriv10games club, kizi-2018 games, gogy xyz games
Best work you have done, this online website is cool with great facts and looks. I have stopped at this blog after viewing the excellent content. I will be back for more qualitative work.
ReplyDeleteFortnite Building Simulator GamePlay
Shell Shockers Game
Sling-drift Game
Everything you provide in your blog site is so superb topic. This was a wonderful site and I really enjoy it the data you shared.It's nice to see that some people still understand how to write a quality post!
ReplyDeletegogy play now juegos motox3m3 abcya3 play now
ReplyDeleteI don t have the time at the moment to fully read your site but I have bookmarked it and also add your RSS feeds. I will be back in a day or two. thanks for a great site.
Games of madalin stunt cars 2 club , the world cup soccer 2018 clubunblocked , jogos geometry jump club ,
Games xmas magic tiles
ReplyDeleteTruck physics free
Gunmaster onslaught games for kid
Have you ever considered writing an e-book or guest authoring on other sites? I have a blog centered on the same information you discuss and would really like to have you share some stories/information. I know my subscribers would value your work. If you are even remotely interested, feel free to shoot me an email.
Nice blog and absolutely outstanding. You can do something much better but i still say this perfect.Keep trying for the best
ReplyDeletemr dubstep for girls , moto x3m 4 winter unblocked games , santa claus jumponline ,
This website basically beautiful points and things right.This was a wonderful site and I really enjoy it the data you shared.Cheers for sharing with us your wonderful blog.
ReplyDeleteRide The Bus Simulator funny game Mommy Elsa Baby Caring play for free Tomb Runner best online game
thank you a ton for sharing your knowledge! I am very Happy to find your blog.This is one wonderful blog article.I am sure that if I ask enough people, they'll agree with me, too
ReplyDeletePapa's Scooperia free game for kids game Def Island Kick The Buddy game for kids
Awesome substance material and incredible design. Your site merits the majority of the positive input it's been getting.
ReplyDeletecars simulator free , game nighty knight , fnaf world unblocked games ,
therefore significantly for the blog.Thanks Again. Much obliged.I truly recognize that website article.Really getting excited about read more. Much obliged.I can't thanks enough for the blog article.Really getting excited about study more. Great
ReplyDeleteminiclip online, play a10games, Jogos live
Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. io jogos for kids
ReplyDeleteplay free 2 player game
friv free online juegos
ReplyDeletefood games 2019 online
basketball games online
soccer games play
Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post.
ReplyDeleteBarbie Beauty Bath free games
Golf Park games online 2019
Football Heads: 2013-14 Serie A games
If it's not too much trouble share more like that.