天天数钱游戏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>
?