用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - android代码库

打地鼠游戏

2016-11-02 作者: 云代码会员举报

[android]代码库



package com.example.game.gamehit;





 





import android.annotation.SuppressLint;





import android.app.Activity;





import android.app.AlertDialog.Builder;





import android.content.Context;





import android.content.DialogInterface;





import android.media.AudioManager;





import android.media.MediaPlayer;





import android.media.SoundPool;





import android.os.Bundle;





import android.view.Gravity;





import android.view.KeyEvent;





import android.view.Window;





import android.view.WindowManager;





import android.widget.ImageView;





import android.widget.TextView;





 





import com.example.game.gamehit.common.Const;





import com.example.game.gamehit.util.MUtils;





 





@SuppressLint("ResourceAsColor")





public class MainActivity extends Activity {





 





    private MediaPlayer mBgMediaPlayer;





    private boolean isMusic = true;





    private Context mContext;





    private static SoundPool mSoundPool = new SoundPool(1,





            AudioManager.STREAM_MUSIC, 0);





    /** 0:打;1:打中;2死机 */





    private int[] soundIds = { -1, -1, -1, -1, -1 };





    public boolean isPause;





    public GameView gameView;





 





    @Override





    public void onCreate(Bundle savedInstanceState) {





        super.onCreate(savedInstanceState);





        // setContentView(R.layout.activity_main);





        requestWindowFeature(Window.FEATURE_NO_TITLE);// 无标题





        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,





                WindowManager.LayoutParams.FLAG_FULLSCREEN);// 全屏





        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // 应用运行时,保持屏幕高亮,不锁屏





        init();





        gameView = new GameView(MainActivity.this);





        setContentView(gameView);





 





        // playBackgroundVoide();





    }





 





    /**





     * 





     */





    private void init() {





        mContext = MainActivity.this;





        initGameMode();





        mBgMediaPlayer = MediaPlayer.create(mContext, Const.voiceBackground);





        mBgMediaPlayer.setLooping(true);// 循环





        soundIds[Const.voiceShoot] = mSoundPool.load(mContext, R.raw.shoot, 1);





        soundIds[Const.voiceHit] = mSoundPool.load(mContext, R.raw.hit, 1);





        soundIds[Const.voiceNo] = mSoundPool.load(mContext, R.raw.no, 1);





        soundIds[Const.voiceNextlevel] = mSoundPool.load(mContext,





                R.raw.nextlevel, 1);





        soundIds[Const.voiceGameover] = mSoundPool.load(mContext,





                R.raw.gameover, 1);





 





        adMethod();





    }





 





    /**





     * 





     */





    private void adMethod() {





        MUtils.getInstance(mContext);





        MUtils.showRight();





        MUtils.getInstance(mContext);





        MUtils.showBtoom();





    }





 





    /*





     * (non-Javadoc)





     * 





     * @see android.app.Activity#onKeyDown(int, android.view.KeyEvent)





     */





    @Override





    public boolean onKeyDown(int keyCode, KeyEvent event) {





        switch (event.getKeyCode()) {





        case KeyEvent.KEYCODE_BACK:





            finish();





            return true;





        }





        // super.onKeyDown(keyCode, event)





        return false;





    }





 





    /**





     * @return





     */





    private boolean isGotomenu() {





        isPause = true;





        boolean flag = false;





        Builder gotoMenu = new Builder(mContext);





        TextView textView = new TextView(mContext);





        textView.setText("要返回菜单吗?");





        textView.setTextSize(24);





        textView.setTextColor(getResources().getColor(R.color.fontColor));





        textView.setGravity(Gravity.CENTER);





        textView.setBackgroundColor(getResources().getColor(





                android.R.color.darker_gray));





        gotoMenu.setView(textView);





        gotoMenu.setPositiveButton("是", new DialogInterface.OnClickListener() {





            @Override





            public void onClick(DialogInterface dialog, int which) {





                finish();





            }





        });





        gotoMenu.setNegativeButton("否", null);





        gotoMenu.show();





        return flag;





    }





 





    public void nextLevel() {





        playVoice(Const.voiceNextlevel);





        TextView textView = new TextView(mContext);





        textView.setText("成功过关!你真棒!");





        textView.setTextSize(24);





        textView.setTextColor(getResources().getColor(R.color.fontColor));





        textView.setGravity(Gravity.CENTER);





        textView.setBackgroundColor(getResources().getColor(





                android.R.color.darker_gray));





        Builder nextLevel = new Builder(mContext);





        nextLevel.setView(textView);





        nextLevel.setPositiveButton("下一关",





                new DialogInterface.OnClickListener() {





                    @Override





                    public void onClick(DialogInterface dialog, int which) {





                        gameView.startGame();





                    }





                });





        nextLevel.setNegativeButton("返回菜单",





                new DialogInterface.OnClickListener() {





                    @Override





                    public void onClick(DialogInterface dialog, int which) {





                        finish();





                    }





                });





        nextLevel.setCancelable(false);





        nextLevel.show();





    }





 





    public void gameOver() {





        playVoice(Const.voiceGameover);





        ImageView imgView = new ImageView(mContext);





        imgView.setBackgroundColor(getResources().getColor(





                android.R.color.darker_gray));





        imgView.setBackgroundResource(R.drawable.gameover);





        Builder gameOver = new Builder(mContext);





        gameOver.setView(imgView);





        gameOver.setPositiveButton("重新挑战",





                new DialogInterface.OnClickListener() {





                    @Override





                    public void onClick(DialogInterface dialog, int which) {





                        gameView.initGameInfo();





                    }





                });





        gameOver.setNegativeButton("返回菜单",





                new DialogInterface.OnClickListener() {





                    @Override





                    public void onClick(DialogInterface dialog, int which) {





                        finish();





                    }





                });





        gameOver.setCancelable(false);





        gameOver.show();





    }





 





    @SuppressLint("ResourceAsColor")





    public void showTimerGrade(int grade, int killnum) {





        playVoice(Const.voiceNextlevel);





        Builder timerGrade = new Builder(mContext);





        TextView textView = new TextView(mContext);





        textView.setText("本次" + Const.timeNum + "秒计时\r\n击中:" + killnum





                + "个\r\n得分:" + grade + "分");





        textView.setTextColor(getResources().getColor(R.color.fontColor));





        textView.setTextSize(24);





        textView.setGravity(Gravity.CENTER);





        textView.setBackgroundColor(getResources().getColor(





                android.R.color.darker_gray));





        timerGrade.setView(textView);





        timerGrade.setPositiveButton("重新挑战",





                new DialogInterface.OnClickListener() {





                    @Override





                    public void onClick(DialogInterface dialog, int which) {





                        gameView.initGameInfo();





                    }





                });





        timerGrade.setNegativeButton("返回菜单",





                new DialogInterface.OnClickListener() {





                    @Override





                    public void onClick(DialogInterface dialog, int which) {





                        finish();





                    }





                });





        timerGrade.setCancelable(false);





        timerGrade.show();





    }





 





    public void initGameMode() {





        switch (Const.gameMode) {





        case Const.gameMode_Level:// 闯关模式





            // Const.backgroundImgResid = R.drawable.maplevel48_001;





            Const.backgroundImgResid = R.drawable.mapds48_001;





            Const.gameArrayStrResid = R.string.didong_level;





            Const.voiceBackground = R.raw.level;





            break;





        case Const.gameMode_Random:// 随机模式





            Const.backgroundImgResid = R.drawable.mapds48_001;





            Const.gameArrayStrResid = R.string.didong_001;





            Const.voiceBackground = R.raw.random;





            break;





        case Const.gameMode_Timer:// 计时模式





            Const.voiceBackground = R.raw.time;





            Const.backgroundImgResid = R.drawable.mapds48_001;





            Const.gameArrayStrResid = R.string.didong_level;





            break;





        case Const.gameMode_Super:// 无尽模式





            Const.voiceBackground = R.raw.supers;





            Const.backgroundImgResid = R.drawable.mapds48_001;





            Const.gameArrayStrResid = R.string.didong_001;





            break;





        }





    }





 





    /** 播放背景音乐 */





    public void playBackgroundMusic() {





        if (Const.backgroundMusicOn && mBgMediaPlayer != null) {





            mBgMediaPlayer.start();





        } else {





            if (mBgMediaPlayer.isPlaying()) {





                mBgMediaPlayer.pause();





            }





        }





    }





 





    // /**播放无效攻击音效*/





    // public void playHitVoice(){





    // if(Const.voiceMusicOn && soundIds[0]!=-1){





    // mSoundPool.play(soundIds[0], 1.0f, 1.0f, 1, 0, 1.0f);





    // }





    // }





    //





    // /**播放击中音效*/





    // public void playDishuDeadVoice(){





    // if(Const.voiceMusicOn && soundIds[1]!=-1){





    // mSoundPool.play(soundIds[1], 1.0f, 1.0f, 1, 0, 1.0f);





    // }





    // }





 





    /** 播放指定音效 */





    public void playVoice(int idx) {





        if (Const.voiceMusicOn && soundIds[idx] != -1) {





            mSoundPool.play(soundIds[idx], 1.0f, 1.0f, 1, 0, 1.0f);





        }





    }





 





    /*





     * (non-Javadoc)





     * 





     * @see android.app.Activity#onDestroy()





     */





    @Override





    protected void onDestroy() {





        if (this.mBgMediaPlayer != null) {





            if (this.isMusic) {





                this.mBgMediaPlayer.stop();





                this.mBgMediaPlayer.release();





                this.mBgMediaPlayer = null;





            }





        }





        super.onDestroy();





    }





}


网友评论    (发表评论)

共3 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...