2011-07-28 12 views
7

Tôi muốn tạo màn hình cấp độ cho trò chơi của mình tương tự như màn hình trong Angry Birds, Farm Tower và Cut the Rope (phần mà bạn chọn thế giới hoặc phần tương tự với tiện ích của thư viện). Tôi muốn biết cách dễ nhất để tấn công điều này là gì.Màn hình chọn mức độ như Tháp trang trại, Chim nổi giận, Cắt dây thừng, v.v ...?

Làm cách nào để sửa đổi chế độ xem Gallery để làm việc này?

+0

bạn có may mắn khi thực hiện chế độ xem này không? hãy chia sẻ. thnx –

+0

Không thực sự. Vẫn đang tìm kiếm câu trả lời! –

Trả lời

2

Đây là ý tưởng để tạo bộ chọn mức sử dụng chế độ xem Gallery.

Hãy làm theo ví dụ này chỉ để cho bạn có một cơ sở mã: http://developer.android.com/resources/tutorials/views/hello-gallery.html

Vì vậy, ở phía trên bạn sẽ có màn hình độ của bạn. Khi người dùng nhấp vào nó, phương pháp này được kích hoạt (lấy thẳng từ ví dụ).

gallery.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView parent, View v, int position, long id) { 
     startLevel(position); 
    } 
}); 

lẽ startLevel của bạn sẽ trông giống như thế này:

public void startLevel(int position){ 
    Resources res = getResources(); 
    String[] levels = res.getStringArray(R.array.level_classes); 
    try{   
     Intent i = new Intent(this, Class.forName(levels[position])); 
     startActivity(i); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
} 

Một lần nữa, một ví dụ rất cơ bản kể từ khi tôi không có ý tưởng làm thế nào bạn đang lưu trữ nồng độ của bạn, nếu bạn đang sử dụng một cơ sở dữ liệu hay không , vv Hơn nữa, các lớp của bạn cho mỗi cấp độ có thể sẽ nằm trong các gói khác nhau, (ví dụ: com.game.levelone, com.game.leveltwo) và bạn sẽ cần phải nhập các gói lớp để không nhận được một ClassNotFoundException Nhưng điều này sẽ giúp bạn bắt đầu đi đúng hướng.

4

Dạng xem là hierarchy. Tạo Gallery trong số GridView.

Nếu bạn muốn sửa lại mã từ hướng dẫn Bộ sưu tập, thay đổi ImageView để LevelSetView, và tạo ra một LevelSetAdapter kéo dài BaseAdapter, và ghi đè phương pháp getView của nó. Đây là một sự khởi đầu.

public class HelloLevelsGalleryActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Gallery g = (Gallery) findViewById(R.id.gallery); 
     g.setAdapter(new LevelSetAdapter(this)); 
    } 

Để hiểu bộ điều hợp tốt hơn: reference hoặc video này sau 2 phút.

Ngoài ra, câu hỏi đã được hỏi here.