关闭

简易打地鼠游戏开发

标签: 游戏开发 打地鼠小游戏开发
785人阅读 评论(0) 收藏 举报

最近看了“微微一笑很倾城”,我对开发游戏越来越有兴趣了,今下午就自己弄了一个简单的打地鼠游戏。哈哈,界面太美,不敢直视。。。

说明:运行程序,在屏幕上将随机显示地鼠,触摸地鼠后,该地鼠将不显示。同时再屏幕上通过消息提示框显示打到了几只地鼠。

技术:如何在指定的位置随机显示地鼠,主要是通过县城与消息处理进行控制的。首先使用Thread线程对象记录地鼠的出现位置。然后通过Handler消息控制地鼠的出现。使用Thread线程对象记录地鼠出现位置。

实现:

1.main.xml

2.MainActivity.java  时间问题,代码粗暴的上来,详尽,注释清晰

public class MainActivity extends AppCompatActivity {
    //声明打地鼠游戏所需要的成员变量
    private int i = 0;//记录打到了几只地鼠
    private ImageView mouse;//声明一个imageView对象
    private Handler handler;//声明一个handler对象
    //创建一个表示地鼠位置的数组
    public int[][] position = new int[][]{{131,325},{324,249},{321,356},{243,296},{319,469},{432,292},{172,258}};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //
        MouseMove();
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                int index = 0;//创建一个记录地鼠位置的索引值
                while(!Thread.currentThread().isInterrupted()){
                    index = new Random().nextInt(position.length);//产生一个随机数
                    Message msg = handler.obtainMessage();//获取一个message
                    msg.arg1 = index;//保存地鼠标位置的索引值
                    msg.what = 0x101;//设置消息标识
                    handler.sendMessage(msg);//发送消息
                    try {
                        Thread.sleep(new Random().nextInt(500) + 500);//休眠一段时间
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
        thread.start();//开启线程
        handler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                int index = 0 ;
                if(msg.what == 0x101){
                    index = msg.arg1;//获取位置索引值
                    mouse.setX(position[index][0]);//设置x轴位置
                    mouse.setY(position[index][1]);//设置y轴位置
                    mouse.setVisibility(View.VISIBLE);//设置地鼠显示

                }
                super.handleMessage(msg);
            }
        };

    }


    private void MouseMove() {
        mouse = (ImageView) findViewById(R.id.iv);
        mouse.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                mouse.setVisibility(View.INVISIBLE);
                i++;
                Toast.makeText(
                        MainActivity.this,"打到["+ i + "]只老鼠",Toast.LENGTH_SHORT
                ).show();
                return false;
            }
        });
    }
}



1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18164次
    • 积分:496
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:13篇
    • 译文:0篇
    • 评论:1条
    最新评论