2012-02-23 2 views
0

Я делаю игру с маленькими пузырьками, где на экране будет много пузырей (изображение). Теперь будет 15 пузырьков уже размещены на levelScreen ... Там будет три уровня ... Скажем, первый уровень с его Б.Г. и его 15 объектов в одной раскладке level.xml Это мой XML для ровном1Хотите сделать случайное изображение как unclickable

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:background="@drawable/gmw_01" 
android:onClick="onClick" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:id="@+id/relativeLayout1" > 
<ImageView 
android:onClick="objectClick" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:id="@+id/imageView1" 
android:src="@drawable/bb01" 
android:layout_marginLeft="998dp" 
android:layout_marginTop="593dp" 
android:layout_alignParentTop="true" 
android:layout_alignParentLeft="true"/> 
<ImageView 
android:onClick="objectClick" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:id="@+id/imageView2" 
android:src="@drawable/bb02" 
android:layout_marginLeft="20dp" 
android:layout_marginTop="39dp" 
android:layout_alignParentTop="true" 
android:layout_alignParentLeft="true"/> 
<ImageView 
android:onClick="objectClick" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:id="@+id/imageView3" 
android:src="@drawable/bb03" 
android:layout_marginLeft="497dp" 
android:layout_marginTop="153dp" 
android:layout_alignParentTop="true" 
android:layout_alignParentLeft="true"/> 

как тот 15 ImageView, который содержит 15 пузырьков в выше макете ....

Теперь у меня есть один экран, на котором выбирается уровень и в зависимости я поставил level1 в этом gamplayScreen.xml, т.е. я раздуть его в gamePlayScreen, который имеет Головной дисплей слева и этот экран уровня, который будет продолжать меняться ....

Перед тем, как вздохнуть ng мой уровень на gamePlayScreen .... Я хочу, чтобы выбрать случайные 8 пузырьков, которые могут быть доступны только пользователю. На каждом уровне будет 15 пузырьков видно, но я хочу, чтобы выбрать случайный 8 каждый уровень в зависимости от соответствующих пузырьков на этом уровне ... здесь является gamePlayActivity

public class GamePlayActivity extends Activity { 

    static int ObjectsFound; 


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


      // ViewGroup where n number of view is going to added 
      ViewGroup layout= (ViewGroup) findViewById(R.id.GamePlayScreen); 

      // inflating the layout depending on the level 
      View level = View.inflate(this, LevelSelectionActivity.levelscreen, null); 
    // adding level bg for the respective selected level 
      layout.addView(level); 
} 

public void objectClick(View objectClicked) 
    { 
     Toast msg; 
     int Object = objectClicked.getId(); 
     ImageView img= (ImageView)findViewById(objectClicked.getId()); 
     switch (Object) { 
     case R.id.imageView1: 
      img.setVisibility(View.INVISIBLE); 
      msg = Toast.makeText(GamePlayActivity.this, "Bubble Found", Toast.LENGTH_SHORT); 
      msg.setGravity(Gravity.CENTER, msg.getXOffset()/2, msg.getYOffset()/2); 
      msg.show(); 

      break; 

     } 
} 

Теперь, как выполнить что случайные 8 объектов из из 15 объектов, которые у меня есть в ImageView, я хочу установить их как незаметные? Я надеюсь, что я объяснил вещь, где им слишком смущен ...

ответ

1

псевдокод, не проверял это, но должно работать для вас:

private int[] ids = { 
    R.id.imageView1, 
    R.id.imageView2, 
    R.id.imageView3, 
    R.id.imageView4, 
    ... 
} 


public void randomize() { 
    Random generator = new Random(); 
    for(int i = 0; i<8 ; i++) { 
     while(true) { 
      View v = findViewById(generator.nextInt(ids.length)); 
      if(!v.isClickable()) { 
       v.setClickable(false); 
       break; 
      } 
     } 
    } 
} 

В основном мы выбираем 8 случайных взглядов и установить их в качестве не -clickable. Если мы нарисуем представление, которое уже было сделано не кликабельным (потому что мы сделали это на предыдущем шаге), мы нападаем. Удачи!

Смежные вопросы