package com.cosina.game.kickkick;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.view.MotionEvent;
import android.view.View;
public class KickView extends View{
private static Random random = new Random();
public KickView(Context context) {
super(context);
self = this;
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();
}
}
private void doGameOver() {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("Game Over");
builder.setMessage("CLick for new Game");
builder.setCancelable(false);
builder.setNeutralButton("CLick", new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
KickKick kk = (KickKick)getContext();
kk.resetGame();
}
}).show();
}
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("Prgoress:" + (int)((800-progress)*100/800) + "%", 29, 50, PaintSuite.KV4text);
}
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++){
temp.remove(random.nextInt(temp.size())).toShow();
}
KickView.this.invalidate();
}
KickView.this.postDelayed(this, progress + random.nextInt(500));
progress -= 10;
}
};
@Override
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction() != MotionEvent.ACTION_UP){
return true;
}
float x = event.getX();
float y = event.getY();
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();
return true;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
android 打地鼠游戏源码 public class KickView extends View{ private static Random random = new Random(); static KickView self; public KickView(Context context) { super(context); self = this; KickView.this.postDelayed(flush80ms, 80); KickView.this.postDelayed(flush1000ms, 1000); }
资源推荐
资源详情
资源评论
收起资源包目录
android打地鼠游戏项目.rar (40个子文件)
KickKick
bin
classes.dex 10KB
KickKick.apk 48KB
com
cosina
game
kickkick
Constants.class 364B
ImageManager.class 3KB
R$layout.class 412B
PaintSuite.class 683B
R$drawable.class 652B
Pic.class 895B
KickView$2.class 2KB
KickView$1.class 715B
KickView$3.class 1KB
R$attr.class 358B
R.class 525B
KickKick.class 771B
R$string.class 445B
KickView.class 5KB
resources.ap_ 41KB
res
drawable
show1.JPG 4KB
show5.JPG 5KB
emptyhole.JPG 3KB
show2.JPG 4KB
show3.JPG 5KB
icon.png 3KB
Thumbs.db 34KB
hit.JPG 5KB
show6.JPG 5KB
show4.JPG 5KB
values
strings.xml 167B
anim
layout
main.xml 382B
assets
default.properties 364B
gen
com
cosina
game
kickkick
R.java 1KB
src
com
cosina
game
kickkick
Constants.java 239B
ImageManager.java 3KB
PaintSuite.java 397B
Pic.java 564B
KickView.java 4KB
KickKick.java 347B
.project 844B
.classpath 280B
AndroidManifest.xml 685B
共 40 条
- 1
资源评论
昊上清风
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功