Bài 1: Hiện thị màu nền - LT Game với Andengine

Thảo luận trong 'Điện thoại, viễn thông' bắt đầu bởi khaipt, 2/9/12.

  1. khaipt New Member

    khaipt

    Tham gia ngày:
    30/6/12
    Bài viết:
    22
    Đã được thích:
    34
    Điểm thành tích:
    0
    Như các bạn đã biết hiện nay có rất nhiều framework để lập trình game cho hệ điều hành Android. Trong đó thì có 2 framework đang phát triển tại nước ta là E3droid và AndEngine. Cả 2 framework này đều có những ưu và nhược khác nhau. Mình đã nghiên cứu E3droid cũng được kha khá nhưng E3droid nay không được hỗ trợ nhiều, cộng đồng không đông lắm nên mình chuyển qua AndEngine. Mình đọc trên diễn đàn thì thấy mọi người rất thích lập trình game. Nhưng khó khăn mà các bạn mới học là không có tài liệu hướng dẫn, không có những bài phân tích cụ thể. Để giúp các bạn làm quen với framework này mình xin viết lại những gì mình học được, mong rằng những bài viết này sẽ giúp các bạn có thêm tài liệu để nghiên cứu. Chúc các bạn sẽ thành công với hướng đi lập trình game trên mobile.

    Bài đầu tiên cũng là một khó khăn đối với nhiều người, muốn chạy được ví dụ AndEngine cũng không đơn giản, các bạn có thể lên mạng copy bài ví dụ của nó nhưng thường không chạy được. Bài này mình hướng dẫn các bạn fix các lỗi thường gặp để chương trình có thể chạy được. Bài viết hướng dẫn này mình viết cho những bạn đã biết cách add thư viện, tạo project. Không hướng dẫn các bạn những điều đó nữa nó quá đơn giản rồi, mong các bạn hiểu cho điều đó.

    Click vào đây để tải source code demo.

    Đầu tiên chúng ta cần có thư viện andengine.jar đã, thư viện này có thể download trên trang web của Andengine. Các bạn download thư viện tại link sau:
    Free Cloud Storage - MediaFire. Ngoài ra các bạn có thể tải thư viện tại địa chỉ sau: https://docs.google.com/file/d/0Bx5t...JeXNHdlE/edit.

    Vậy ta đã có thư viện rồi. Tiếp tục ta tạo ra 1 project với tên tùy ý, mình lấy ví dụ là : TestAndengine, khi tạo xong project rồi thì ta tạo thêm 1 thư mục có tên là libs, bạn copy cái thư viện vừa download về vào thư mục này. Tiếp theo là bạn chọn vào file thư viện rồi add vào để chương trình có thể gọi được.

    Ok. Giờ ta sẽ xem code.
    PHP:
    package TestAndengine.Gioi;
     
    import org.anddev.andengine.engine.Engine;
    import org.anddev.andengine.engine.camera.Camera;
    import org.anddev.andengine.engine.options.EngineOptions;
    import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;
    import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
    import org.anddev.andengine.entity.scene.Scene;
    import org.anddev.andengine.entity.scene.background.ColorBackground;
    import org.anddev.andengine.ui.activity.BaseGameActivity;
     
    import android.os.Bundle;
     
    public class 
    TestAndengineActivity extends BaseGameActivity {
        
    //Khai báo thêm 2 biến quan trọng
        
    private Camera MyCamera;//Biến này thường để cấu hình màn hình
        
    private Scene MyScene;//Quản lý những gì bạn vẽ.
     
        
    private int WIDTH 320;
        private 
    int HEIGHT 480;
     
     
        
    /** Called when the activity is first created. */
        
    @Override
        
    public void onCreate(Bundle savedInstanceState) {
            
    super.onCreate(savedInstanceState);
        }
     
        @
    Override
        
    public Engine onLoadEngine() {
            
    //Khởi tạo vùng hiện thị là 320*480
            
    this.MyCamera = new Camera(00WIDTHHEIGHT);
            
    //Yêu cầu màn hình hiện thị nằm ngang thì ScreenOrientation.LANDSCAPE
            
    Engine engine =    new Engine(new EngineOptions(trueScreenOrientation.PORTRAIT,
                        new 
    RatioResolutionPolicy(WIDTHHEIGHT),
                        
    this.MyCamera));
            return 
    engine;
        }
     
        @
    Override
        
    public void onLoadResources() {
            
    // TODO Auto-generated method stub
         
        
    }
     
        @
    Override
        
    public Scene onLoadScene() {
            
    MyScene = new Scene();
            
    MyScene.setBackground(new ColorBackground(0.09804f0.6274f0.8784f));
            return 
    MyScene
        }
     
        @
    Override
        
    public void onLoadComplete() {
            
    // TODO Auto-generated method stub
         
        
    }
    }
    Code rất đơn giản thôi nhưng nhiều bạn không chạy được. Giờ ta cần thêm 1 quyền nữa.
    PHP:
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        
    package="TestAndengine.Gioi"
        
    android:versionCode="1"
        
    android:versionName="1.0" >
     
        <
    uses-sdk android:minSdkVersion="8" />
     
        <!-- 
    Cái mà ta cần thêm vào là dòng này -->
        <
    uses-permission android:name="android.permission.WAKE_LOCK"/>
     
        <
    application
            android
    :icon="@drawable/ic_launcher"
            
    android:label="@string/app_name" >
            <
    activity
                android
    :name=".TestAndengineActivity"
                
    android:label="@string/app_name" >
                <
    intent-filter>
                    <
    action android:name="android.intent.action.MAIN" />
     
                    <
    category android:name="android.intent.category.LAUNCHER" />
                </
    intent-filter>
            </
    activity>
        </
    application>
     
    </
    manifest>
    Giờ các bạn có thể chạy được ngay rồi đó. Kêt quả sẽ hiện thị một màn hình nền màu xanh.
    Giờ các bạn có thể chạy được ngay rồi đó. Kêt quả sẽ hiện thị một màn hình nền màu xanh.

    Bài viết có hay thì thanks nhé.
    Tác giả: vangioicnt nguồn Vietandroid
     
    2 people like this.
    Đang tải...
  2. bacbim New Member

    bacbim

    Tham gia ngày:
    18/12/12
    Bài viết:
    45
    Đã được thích:
    4
    Điểm thành tích:
    0
    Giới tính:
    Nam
    Bài viết của bạn rất hay.Rất mong bạn có thêm nhiều hướng dẫn về AndEngine trong android!
     
  3. Dong Dinh New Member

    Dong Dinh

    Tham gia ngày:
    4/1/13
    Bài viết:
    9
    Đã được thích:
    9
    Điểm thành tích:
    0
    minh chay sao bi loi hoai .hicc.
     
  4. Dong Dinh New Member

    Dong Dinh

    Tham gia ngày:
    4/1/13
    Bài viết:
    9
    Đã được thích:
    9
    Điểm thành tích:
    0
    Bạn ơi cho mình hỏi mình chay ví dụ trên Android 2.3.3 và AndEngine GLES 1.0 và làm y như ví dụ trên nhưng luôn bị lỗi mainifest. hic.hic. K hiểu tại sao. Mong giup đỡ
     
  5. Dong Dinh New Member

    Dong Dinh

    Tham gia ngày:
    4/1/13
    Bài viết:
    9
    Đã được thích:
    9
    Điểm thành tích:
    0
    kaipt : Nick Y/h của bạn là gì cho mình hoi vs. hic .,hic. Minh lam mây ngay hôm nay vẫn bị chay lỗi cái vi dụ đơn giản nhât .hiccc
     
  6. HuynhTuan New Member

    HuynhTuan

    Tham gia ngày:
    19/7/13
    Bài viết:
    1
    Đã được thích:
    0
    Điểm thành tích:
    0
    Giới tính:
    Nam
    Bạn cho mình hỏi chỗ độ phân giải màn hình, có cách nào làm tổng quát để áp dụng cho nhiều loại màn hình không.:)
     

Chia sẻ trang này