Android天天数钱游戏源码

      天天数钱游戏Android源码,很有意思的一款游戏,废话不多说,上源码!





Android天天数钱游戏源码   

天天数钱。基于Android游戏代码

模仿Flash游戏http://www.4399.com/flash/145326_4.htm

源码下载 :http://pan.baidu.com/s/1ntn2Iwx

部分代码 GameView.java

<span style="font-family:Arial;font-size:14px;">package com.sx.view;
 
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
 
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.media.MediaPlayer;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
 
import com.daimajia.androidanimations.library.Techniques;
import com.daimajia.androidanimations.library.YoYo;
import com.sx.ttsqian.R;
 
public class GameView extends RelativeLayout implements OnClickListener {
 
	private TimeInterface jiekou;
	private TextView tv_addtime;
	private boolean play_music = true;
	private float userMony = 0.0F;
 
	public void setInterface(TimeInterface _jiekou) {
		this.jiekou = _jiekou;
	}
 
	public boolean setMusicState() {
		play_music = !play_music;
		if (play_music == false) {
 
			if (mp != null && mp.isPlaying()) {
				mp.pause();
			}
		} else {
			if (mp != null) {
				mp.reset();
				mp.release();
			}
			mp = MediaPlayer.create(mContext, R.raw.beijing);
			mp.setLooping(true);
			try {
				mp.prepare();
			} catch (IllegalStateException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			mp.start();
		}
 
		return play_music;
	}
 
	private Techniques[] anim = new Techniques[] { Techniques.ZoomOutRight,
			Techniques.ZoomOutLeft, Techniques.ZoomOutUp,
			Techniques.ZoomOutDown, Techniques.SlideOutUp, Techniques.FadeOut,
			Techniques.FadeOutRight, Techniques.RollOut,
			Techniques.RotateOutDownLeft, Techniques.TakingOff };
	private ImageView img_1, img_2, img_3, img_4;
	private Context mContext;
	private LayoutInflater inflater;
	private Matrix matrix = new Matrix();
	private MediaPlayer mp;
	private MediaPlayer mp_great;
	private MediaPlayer mp_error;
	private float[] price = new float[] { 1.0F, 10.0F, 100.0F, 20.0F, 5.0F,
			50.0F, 0.5F, 1.0F, 0.5F, 0.1F, 0.1F, 10.0F, 0.2F, 10.0F };
	private int[] picID = new int[] { R.drawable.kagaz_1, R.drawable.kagaz_10,
			R.drawable.kagaz_100, R.drawable.kagaz_20, R.drawable.kagaz_5,
			R.drawable.kagaz_50, R.drawable.kagaz_5mo, R.drawable.kagaz_kona_1,
			R.drawable.kagaz_5motatur, R.drawable.kagaz_1mo,
			R.drawable.kagaz_1motatur, R.drawable.kagaz_kona10,
			R.drawable.kagaz_2mo, R.drawable.kagaz_10tatur };
	private float allPrice = 0.0f;
	private int TIME = 45 * 1000;
	Timer mTimer;
	MyTimerTask mTimerTask;
	private TextView tv1, tv2, tv3, tv4;
	private ImageView img_good;
 
	@SuppressLint("NewApi")
	public GameView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		this.mContext = context;
		initView();
	}
 
	public GameView(Context context, AttributeSet attrs) {
		super(context, attrs);
		this.mContext = context;
		initView();
	}
 
	public GameView(Context context) {
		super(context);
		this.mContext = context;
		initView();
 
	}
 
	class MyTimerTask extends TimerTask {
		@Override
		public void run() {
			// TODO Auto-generated method stub
			mhandler.sendEmptyMessage(-1);
 
		}
 
	}
 
	Handler mhandler = new Handler() {
		@Override
		public void handleMessage(Message msg) {
 
			try {
				if (msg.what == 1) {
					jiekou.gameOver(userMony);
 
				} else {
					TIME = TIME - 246;
					if (TIME <= 0) {
						jiekou.updateTime(0);
						mhandler.removeMessages(-1);
						mhandler.sendEmptyMessage(1);
						return;
					}
					jiekou.updateTime(TIME);
					mTimer = new Timer();
					// game over...
					if (mTimer != null) {
						if (mTimerTask != null) {
							mTimerTask.cancel(); // 将原任务从队列中移除
						}
 
						mTimerTask = new MyTimerTask(); // 新建一个任务
						mTimer.schedule(mTimerTask, 246);
					}
				}
			} catch (Exception ex) {
 
			}
 
		}
 
	};
 
	private void initView() {
		userMony = 0.0F;
		LayoutInflater.from(mContext).inflate(R.layout.gameview, this, true);
		mp = MediaPlayer.create(mContext, R.raw.beijing);
		mp_great = MediaPlayer.create(mContext, R.raw.great);
		mp_error = MediaPlayer.create(mContext, R.raw.shibai);
		mp.setLooping(true);
		try {
			mp.prepare();
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			mp_great.prepare();
		} catch (Exception ex) {
 
		}
		try {
			mp_error.prepare();
		} catch (Exception ex) {
 
		}
 
		 mp.start();
		img_1 = (ImageView) findViewById(R.id.img_1);
		img_2 = (ImageView) findViewById(R.id.img_2);
		img_3 = (ImageView) findViewById(R.id.img_3);
		img_4 = (ImageView) findViewById(R.id.img_4);
		tv1 = (TextView) findViewById(R.id.tv1);
		tv2 = (TextView) findViewById(R.id.tv2);
		tv3 = (TextView) findViewById(R.id.tv3);
		tv4 = (TextView) findViewById(R.id.tv4);
		tv1.setOnClickListener(this);
		tv2.setOnClickListener(this);
		tv3.setOnClickListener(this);
		tv4.setOnClickListener(this);
 
		img_good = (ImageView) findViewById(R.id.img_good);
		tv_addtime = (TextView) findViewById(R.id.txt_addtime);
		img_good.setVisibility(View.INVISIBLE);
		tv_addtime.setVisibility(View.INVISIBLE);
		CreateNewGameView(false);
	}
 
	public void CreateNewGameView(boolean isOk) {
		if (play_music && isOk) {
			mp_great.start();
		} else if (play_music && !isOk) {
			mp_error.start();
		}
 
		Random r = new Random();
		Random r2 = new Random();
		int MaxValue = 10;
		int index = 0;
		allPrice = 0.0f;
		index = r.nextInt(picID.length);
		Bitmap bitmap = ((BitmapDrawable) getResources().getDrawable(
				picID[index])).getBitmap();
		allPrice += price[index];
		// 设置旋转角度
		int r2_value = r2.nextInt(MaxValue);
		if (r2_value % 2 == 0) {
			r2_value = r2_value * (-1);
		}
		matrix.setRotate(r2_value);
		// 重新绘制Bitmap
 
		bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
				bitmap.getHeight(), matrix, true);
		img_1.setImageBitmap(bitmap);
		index = r.nextInt(picID.length);
		bitmap = ((BitmapDrawable) getResources().getDrawable(picID[index]))
				.getBitmap();
		allPrice += price[index];
 
		// 设置旋转角度
		r2_value = r2.nextInt(MaxValue);
		if (r2_value % 2 == 0) {
			r2_value = r2_value * (-1);
		}
		matrix.setRotate(r2_value);
		// 重新绘制Bitmap
		bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
				bitmap.getHeight(), matrix, true);
		img_2.setImageBitmap(bitmap);
		index = r.nextInt(picID.length);
		bitmap = ((BitmapDrawable) getResources().getDrawable(picID[index]))
				.getBitmap();
		allPrice += price[index];
		// 设置旋转角度
		r2_value = r2.nextInt(MaxValue);
		if (r2_value % 2 == 0) {
			r2_value = r2_value * (-1);
		}
		matrix.setRotate(r2_value);
		// 重新绘制Bitmap
		bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
				bitmap.getHeight(), matrix, true);
		img_3.setImageBitmap(bitmap);
		index = r.nextInt(picID.length);
		bitmap = ((BitmapDrawable) getResources().getDrawable(picID[index]))
				.getBitmap();
		allPrice += price[index];
		// 设置旋转角度
		r2_value = r2.nextInt(MaxValue);
		if (r2_value % 2 == 0) {
			r2_value = r2_value * (-1);
		}
		matrix.setRotate(r2_value);
		// 重新绘制Bitmap
		bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
				bitmap.getHeight(), matrix, true);
		img_4.setImageBitmap(bitmap);
		mhandler.sendEmptyMessageDelayed(-1, 500);
		System.out.println("All Price is:" + allPrice);
		ArrayList result = getPrice(allPrice);
		// allPrice=(float)(Math.round(allPrice*100)/100);
		int tv_r_index = r2.nextInt(4);
		if (tv_r_index == 0) {
			tv1.setText(result.get(0) + "元");
			tv2.setText(result.get(1) + "元");
			tv3.setText(result.get(2) + "元");
			tv4.setText(result.get(3) + "元");
		} else if (tv_r_index == 1) {
			tv1.setText(result.get(1) + "元");
			tv2.setText(result.get(0) + "元");
			tv3.setText(result.get(2) + "元");
			tv4.setText(result.get(3) + "元");
		} else if (tv_r_index == 2) {
			tv1.setText(result.get(2) + "元");
			tv2.setText(result.get(1) + "元");
			tv3.setText(result.get(0) + "元");
			tv4.setText(result.get(3) + "元");
		} else if (tv_r_index == 3) {
			tv1.setText(result.get(3) + "元");
			tv2.setText(result.get(1) + "元");
			tv3.setText(result.get(2) + "元");
			tv4.setText(result.get(0) + "元");
		}
 
		// Random r2=new Random();
 
		if (isOk) {
			img_good.setVisibility(View.VISIBLE);
			tv_addtime.setVisibility(View.VISIBLE);
			index = r2.nextInt(anim.length);
			YoYo.with(anim[index]).duration(800).playOn(img_good);
			tv_addtime.setText("+1750");
			YoYo.with(Techniques.SlideOutUp).duration(1000).playOn(tv_addtime);
		} else {
			if (tv_addtime.getVisibility() != View.INVISIBLE) {
				tv_addtime.setText("-750");
				YoYo.with(Techniques.SlideOutUp).duration(1000)
						.playOn(tv_addtime);
			}
		}
	}
 
	private ArrayList getPrice(float price) {
 
		float price4 = price - 0.1F;
		ArrayList result = new ArrayList();
		DecimalFormat decimalFormat = new DecimalFormat(".00");// 构造方法的字符格式这里如果小数不足2位,会以0补足.
		String p = decimalFormat.format(price);// format 返回的是字符串
		System.out.println(p);
		StringBuffer buf = new StringBuffer();
		for (int i = 0; i < p.length(); i++) { 			if (p.charAt(i) != '.' && p.charAt(i) != '0') { 				buf.append(p.charAt(i)); 			} 		} 		result.add(p); 		String newPrice = buf.toString(); 		float newfloat = Float.parseFloat(newPrice); 		if (newfloat > 400.00F) {
			newfloat = newfloat / 100.0F;
			newPrice = decimalFormat.format(newfloat);
		}
		result.add(newPrice);
		newPrice = "";
		if (buf.length() == 3) {
			try {
				newPrice = buf.substring(1, 1) + buf.substring(2)
						+ buf.substring(0, 1) + "." + buf.substring(0, 1) + "0";
			} catch (Exception ex) {
				System.out.println(ex.getLocalizedMessage());
			}
		} else if (buf.length() == 2) {
			newPrice = buf.substring(1) + (new Random()).nextInt(9)
					+ buf.substring(0, 1) + "." + buf.substring(1) + "0";
		} else if (buf.length() == 4) {
			newPrice = buf.substring(3) + buf.toString().substring(2, 3)
					+ buf.substring(0, 1) + "." + buf.substring(1, 1) + "0";
		} else {
			newPrice = buf.substring(0, 1) + (new Random()).nextInt(9) + "."
					+ (new Random()).nextInt(9) + "0";
		}
		newfloat = Float.parseFloat(newPrice);
		if (newfloat > 400.00F) {
			newfloat = newfloat / 100.0F;
			newPrice = decimalFormat.format(newfloat);
		}
		result.add(newPrice);
		String p4 = decimalFormat.format(price4);
		result.add(p4);
		return result;
	}
 
	public void DestreyView() {
		try {
		
			mhandler.removeMessages(-1);
			if(mTimerTask!=null)
			{
				mTimerTask.cancel();
			}
			if (mp != null) {
				mp.reset();
				mp.release();
			}
			if (mp_great != null) {
				mp_great.release();
				mp_great = null;
			}
		} catch (Exception ex) {
 
		}
	}
 
	@Override
	public void onClick(View arg0) {
 
		DecimalFormat decimalFormat = new DecimalFormat(".00");// 构造方法的字符格式这里如果小数不足2位,会以0补足.
		String p = decimalFormat.format(allPrice);
		String selectText = "";
		int id = arg0.getId();
		if (id > 0) {
			switch (id) {
			case R.id.tv1:
				selectText = tv1.getText().toString().trim().replace("元", "");
				break;
			case R.id.tv2:
				selectText = tv2.getText().toString().trim().replace("元", "");
				break;
			case R.id.tv3:
				selectText = tv3.getText().toString().trim().replace("元", "");
				break;
			case R.id.tv4:
				selectText = tv4.getText().toString().trim().replace("元", "");
				break;
			default:
				break;
			}
			float newfloat = Float.parseFloat(selectText);
			float current = Float.parseFloat(p);
			if (newfloat == current) {
				CreateNewGameView(true);
				TIME += 1750;
				userMony += current;
				jiekou.updateMony(userMony);
			} else {
				CreateNewGameView(false);
				TIME -= 750;
			}
		}
 
	}
 
}
 </span>

      源码下载 :http://pan.baidu.com/s/1ntn2Iwx

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Creator数游戏码CountMoney.zip // Learn cc.Class: // - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/class.html // - [English] http://docs.cocos2d-x.org/creator/manual/en/scripting/class.html // Learn Attribute: // - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html // - [English] http://docs.cocos2d-x.org/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html // - [English] https://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html cc.Class({ extends: cc.Component, properties: { nodeMoney: cc.Node, nodeGuide: cc.Node, nodeStart: cc.Node, txtCount: cc.Label, txtTime: cc.Label, nodeMoneyBg: cc.Node, nodeTimerBg: cc.Node, nodeSpillMoney: cc.Node, txtTotal: cc.Label, }, // LIFE-CYCLE CALLBACKS: onLoad () { this.node.on(cc.Node.EventType.TOUCH_START, event => { this.onTouchStart(event); }); this.node.on(cc.Node.EventType.TOUCH_MOVE, event => { this.onTouchMove(event); }); this.node.on(cc.Node.EventType.TOUCH_END, event => { this.onTouchEnd(event); }); this.nodeMoneyBg.zIndex = 10; this.nodeTimerBg.zIndex = 10; this.nodeStart.zIndex = 20; this._touchNode = null; this._count = 0; this._isPlaying = false; }, start () { }, startGame(){ this._isPlaying = true; this.nodeStart.active = false; this.txtTime.string = 10; this.txtCount.string = 0; this._count = 0; this.startTimer(); this.spillMoney(); }, startTimer(){ this.schedule(this.timeCallback, 1); }, timeCallback(){ let time = parseInt(this.txtTime.string); time--; this.txtTime.string = time; if(time this._touchNode.y){ this._touchNode.y = pos.y; } }, onTouchEnd(event){ if(!this._isPlaying){ return; } let now = event.getLocation(); let start = event.getStartLocation(); if(now.y - start.y > 10){ let seq = cc.sequence( cc.spawn( cc.moveBy(0.3, 0, cc.winSize.height), cc.scaleTo(0.3, 0.7) ), cc.removeSelf(), ); this._touchNode.runAction(seq); } this._count++; this.txtCount.string = `${this._count * 100}`; }, onClick(){ this.startGame(); }, spillMoney(){ let seq = cc.sequence( cc.delayTime(0.2), cc.callFunc( () => { let x = Math.random() * cc.winSize.width; x -= cc.winSize.width / 2; let node = cc.instantiate(this.nodeSpillMoney); node.active = true; node.parent = this.nodeSpillMoney.parent; node.runAction(cc.sequence( cc.place(x, cc.winSize.height / 2 + node.height / 2), cc.spawn(cc.moveBy(1, 0, -cc.winSize.height - node.height / 2), cc.rotateBy(1, 1080)), cc.removeSelf(), )); }), ); seq.setTag(0xff); this.node.runAction(seq.repeatForever()); }, });
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值