用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


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

Android 打地鼠游戏 源代码

2013-02-11 作者: 小蜜锋举报

[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();
	}
}

[代码运行效果截图]


Android 打地鼠游戏 源代码

[源代码打包下载]




网友评论    (发表评论)

共84 条评论 1/4页  1  2   3   4  >

发表评论:

评论须知:

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


扫码下载

加载中,请稍后...

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

加载中,请稍后...