Android天天数钱游戏源码

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

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





Android天天数钱游戏源码   

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

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

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

部分代码 GameView.java

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;  
            }  
        }  
   
    }  
   
}  

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