package com.study.fundroid.game.kickit;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import com.ntu.fundroid.game.kickit.R;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.view.MotionEvent;
import android.view.View;
public class KickView extends View{
public static Random random = new Random();
private MediaPlayer player;
private MediaPlayer hitPlayer;
private MediaPlayer hitDevilPlayer;
private Context context ;
boolean isMute = true;
static int crazyHide = 0;
public KickView(Context context) {
super(context);
this.context = context;
Score.cleanScore();
self = this;
if (((KickKick) context).mode.equals("crazy"))
player = MediaPlayer.create(this.context, R.raw.crazy);
else
player = MediaPlayer.create(this.context, R.raw.flightlessbird);
hitPlayer = MediaPlayer.create(this.context, R.raw.hit);
hitDevilPlayer = MediaPlayer.create(this.context, R.raw.stick);
playMusic();
KickView.this.postDelayed(flush80ms, 80);
KickView.this.postDelayed(flush1000ms, 1000);
}
private List<Pic> holeQuite = new ArrayList<Pic>(Constants.HOLE_COUNT);
{
for(int i=0; i<Constants.HOLE_COUNT; i++){
holeQuite.add(new Pic());
}
}
int startX = 35;
int startY = 60;
static KickView self;
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if(hp<=0||progress<aimProgress){
getHandler().removeCallbacks(flush1000ms);
getHandler().removeCallbacks(flush80ms);
doGameOver();
return ;
}
canvas.drawColor(Color.WHITE);
drawInfoPanel(canvas);
for(int i=0; i<holeQuite.size(); i++){
Pic pic = holeQuite.get(i);
int y = i / Constants.COLUMN_COUNT;
int x = i % Constants.COLUMN_COUNT;
Bitmap bm = ImageManager.getBitmap(pic.currentType);
canvas.drawBitmap(bm, startX + x*Constants.TILE_SIZE,
startY + y*Constants.TILE_SIZE,
PaintSuite.paintForQuite);
pic.toNext();
}
if (((KickKick) context).mode.equals("crazy")){
Bitmap bm = null;
if (crazyHide > 0 && crazyHide-- > 10)
bm = ImageManager.getBitmap(Pic.CRAZY_SHOW1);
else if (crazyHide > 5)
bm = ImageManager.getBitmap(Pic.CRAZY_SHOW2);
else if (crazyHide > 0)
bm = ImageManager.getBitmap(Pic.CRAZY_SHOW3);
if (crazyHide > 0)
canvas.drawBitmap(bm, 0, 0, PaintSuite.paintForQuite);
}
}
private void doGameOver() {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
((KickKick)context).setRecord(Score.score);
builder.setTitle("Game Over");
builder.setMessage("Click for new Game. Your final score is:" + Score.score + ". Record is:" + ((KickKick)context).getRecord() + ".");
builder.setCancelable(false);
builder.setPositiveButton("Replay", new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
KickKick kk = (KickKick)getContext();
kk.resetGame();
}
});
builder.setNegativeButton("Back to Menu", new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Intent intentMainMenu = new Intent(getContext(), MainMenu.class);
//getContext().startActivity(intentMainMenu);
System.exit(0);
}
}).show();
player.stop();
}
public int hp = 20;
public int progress = 800;
public int aimProgress = 0;
private void drawInfoPanel(Canvas canvas){
canvas.drawText("HP:" + hp, 29, 20, PaintSuite.KV4text);
canvas.drawText("Progress:" + (int)((800-progress)*100/800) + "%", 29, 50, PaintSuite.KV4text);
Bitmap bm = ImageManager.getBitmap(Pic.SOUND_MUTE);
canvas.drawBitmap(bm, 50, 400, PaintSuite.paintForQuite);
bm = ImageManager.getBitmap(Pic.SOUND_PLAY);
canvas.drawBitmap(bm, 170, 400, PaintSuite.paintForQuite);
}
/**
* Mute background music
*/
public synchronized void setMute(){
if(!isMute){
player.pause();
isMute = true;
}
}
/**
* Play background music
*/
public synchronized void playMusic(){
if (isMute) {
isMute = false;
player.start();
}
}
/**
* Play hit music
*/
public synchronized void playHitMusic(){
if(!isMute)
{
hitPlayer.start();
}
}
public synchronized void playHitDevilMusic(){
if(!isMute)
{
hitDevilPlayer.start();
}
}
Runnable flush80ms = new Runnable(){
public void run(){
KickView.this.invalidate();
KickView.this.postDelayed(this, 100);
}
};
Runnable flush1000ms = new Runnable(){
public void run(){
LinkedList<Pic> temp = new LinkedList<Pic>();
for(Pic each : holeQuite){
if(each.currentType == Pic.NOTHING){
temp.add(each);
}
}
int size = temp.size();
if(size == 1){
temp.poll().toShow();
KickView.this.invalidate();
}else if(size > 1){
for (int i = 0; i < random.nextInt(2) + 1; i++) {
if (((KickKick) context).mode.equals("crazy")) {
int tempNum = random.nextInt(10);
if (tempNum > 7)
temp.remove(random.nextInt(temp.size())).toShow();
else
temp.remove(random.nextInt(temp.size())).toDevil();
}
else {
int tempNum = random.nextInt(10);
if (tempNum > 4)
temp.remove(random.nextInt(temp.size())).toShow();
else
temp.remove(random.nextInt(temp.size())).toDevil();
}
}
KickView.this.invalidate();
}
if (((KickKick) context).mode.equals("crazy")) {
KickView.this.postDelayed(this, progress);
}
else
KickView.this.postDelayed(this, progress + random.nextInt(500));
progress -= 10;
}
};
@SuppressLint("NewApi")
@Override
public boolean onTouchEvent(MotionEvent event) {
// multi-touch version
if (((KickKick) context).mode.equals("multi")) {
int action = event.getAction();
boolean reset = false;
switch (action) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
reset = true;
break;
}
if (!reset) {
int pointCount = event.getPointerCount();
for (int i = 0; i < pointCount; i++) {
float x = event.getX(i);
float y = event.getY(i);
// mute after clicking mute button
if (x > 50 && x < 115 && y > 400 && y < 465) {
setMute();
}
// play music after clicking play music button
if (x > 170 && x < 235 && y > 400 && y < 465) {
playMusic();
}
float offsetIndexX = x - startX;
float offsetIndexY = y - startY;
int indexX = (int) offsetIndexX / 80;
int indexY = (int) offsetIndexY / 80;
if (indexX >= 3 || indexX < 0 || indexY >= 4 || indexY < 0) {
return true;
}
holeQuite.get(indexY * 3 + indexX).click(this);
}
}
return true;
} else {
if (event.getAction() != MotionEvent.ACTION_DOWN) {
return true;
}
float x = event.getX();
float y = event.getY();
// mute after clicking mute button
if (x > 50 && x < 115 && y > 400 && y < 465) {
setMute();
}
// play music after clicking play music button
if (x > 170 && x < 235 && y > 400 && y < 465) {
playMusic();
}
float offsetIndexX = x - startX;
float offsetIndexY = y - startY;
int indexX = (int) offsetIndexX / 80;
int indexY = (int) offsetIndexY /
没有合适的资源?快使用搜索试试~ 我知道了~
android打老鼠游戏源码
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共104个文件
class:27个
png:21个
jpg:16个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
温馨提示
对打老鼠基本源码进行了修改。 新增功能: 音乐,音效,第二种老鼠角色,多种模式,计分。
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 104 条
- 1
- 2
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- zqykaka2014-06-10哈哈,还可以的学习一下吧。。。。
- 幻想无极2014-07-20很好很强大,容易理解,开发性强
![avatar](https://profile-avatar.csdnimg.cn/a532cc7569fa40668417951853899c13_csxiaohao001.jpg!1)
Evan学习中
- 粉丝: 2
- 资源: 3
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)