当前位置: 代码迷 >> Android >> Android日日数钱游戏源码
  详细解决方案

Android日日数钱游戏源码

热度:70   发布时间:2016-04-28 02:38:51.0
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>

?

  相关解决方案