西蒙说游戏java android

时间:2012-08-06 22:45:06

标签: java android

我是java和android的初学者,现在我正在尝试编写“simon说”游戏来学习这门语言,但这不行。 : - (

第一个也是最重要的问题:当我尝试用seq_show()方法显示存储在数组seq []中的颜色顺序[数字1到4] ....请调用but_show(x)来改变每个按钮的背景颜色......但我看不到相应线性布局的背景颜色的变化...... 我也擦除了READY?源代码按钮因为在seq_show()之前没有关闭。

我不明白这种java的编程方式......不是一行一行,一步一步......我的事情是线程,我不明白执行代码的指针在哪里。 : - (

有人可以帮助我吗?

然后,在方法seq_input()中我抓住了LinearLayout上的点击...我运行正常......但我需要先解决seq_show()问题才能继续使用该程序。

谢谢!!

public class MainActivity extends Activity {
public LinearLayout l1, l2, l3, l4;
public GestureDetector gd1,gd2,gd3,gd4;
public static int seq[] = new int[25]; 
public int seq_pos = 0; 

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

    // Array pos[] amb 25 clics del joc simon 
    //
    for (int i = 0; i < 25; i++) {
        seq[i] = (int) (Math.random() * 4) + 1;
    }


    // declaració 4 onClickListener
    //
    l1 = (LinearLayout) findViewById(R.id.layout_green);
    l1.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            seq_input(1);
        }
    });

    l2 = (LinearLayout) findViewById(R.id.layout_red);
    l2.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            seq_input(2);
        }
    });
    l3 = (LinearLayout) findViewById(R.id.layout_yellow);
    l3.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            seq_input(3);
        }
    });
    l4 = (LinearLayout) findViewById(R.id.layout_blue);
    l4.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            seq_input(4);
        }
    });

    seq_show(0);
}


// Mostra la sequencia de botons a pulsar
//
public void seq_show(int seq_end) {
    for (int i=0; i <= seq_end; i++){

        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        but_show(seq[i]);
    }
 }


// Espera la pulsació de la sequencia de botons
//
public void seq_input(int but_pushed){
    if (seq[seq_pos] == but_pushed) {
        seq_pos++;
        but_show(seq[but_pushed]);

        seq_show(seq_pos);

    }else{

        MediaPlayer sound = MediaPlayer.create(this, R.raw.wrong);
        sound.start();
        new Handler().postDelayed(new Runnable() {
            public void run() {
                }
        }, 1000);

    }
}


// Canvia el color i emet un so al botó but_num
//
public void but_show(int but_num) {

    if (but_num == 1) {
        l1.setBackgroundResource(color.green_on);
        MediaPlayer sound = MediaPlayer.create(this, R.raw.tone_green);
        sound.start();
        new Handler().postDelayed(new Runnable() {
            public void run() {
                l1.setBackgroundResource(color.green_off);
            }
        }, 200);
    } else if (but_num == 2) {
        l2.setBackgroundResource(color.red_on);
        MediaPlayer sound = MediaPlayer.create(this, R.raw.tone_red);
        sound.start();
        new Handler().postDelayed(new Runnable() {
            public void run() {
                l2.setBackgroundResource(color.red_off);
            }
        }, 200);
    } else if (but_num == 3) {
        l3.setBackgroundResource(color.yellow_on);
        MediaPlayer sound = MediaPlayer.create(this, R.raw.tone_yellow);
        sound.start();
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            public void run() {
                l3.setBackgroundResource(color.yellow_off);
            }
        }, 200);
    } else if (but_num == 4) {
        l4.setBackgroundResource(color.blue_on);
        MediaPlayer sound = MediaPlayer.create(this, R.raw.tone_blue);
        sound.start();
        // SLEEP HERE ...
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            public void run() {
                l4.setBackgroundResource(color.blue_off);
            }
        }, 200);
    }
}   

再见!!

0 个答案:

没有答案
相关问题