package www.androidym.com.nanrentiaoba.anzhi;
//Download by http://www.codefans.net
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import org.void1898.www.agilebuddy.data.Food;
import org.void1898.www.agilebuddy.data.Footboard;
import org.void1898.www.agilebuddy.data.Role;
import org.void1898.www.agilebuddy.data.ScreenAttribute;
import org.void1898.www.agilebuddy.material.UIModel;
import org.void1898.www.agilebuddy.util.ConstantInfo;
import android.app.AlertDialog;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.graphics.Paint.FontMetrics;
import android.graphics.Paint.Style;
import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Vibrator;
import android.preference.PreferenceManager;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
/**
*
* view of AgileBuddyActivity
*
* @author void1898@gamil.com
*
*/
public class AgileBuddyView extends SurfaceView implements
SurfaceHolder.Callback {
private static final String HANDLE_MESSAGE_GAME_SCORE = "1";
private AgileThread mUIThread;
private Context mContext;
private Handler mHandler;
private ScreenAttribute mScreenAttribute;
private int mActionPower;
private boolean mVibratorFlag;
private Vibrator mVibrator;
private boolean mSoundsFlag;
private SoundPool soundPool;
private HashMap<Integer, Integer> soundPoolMap;
private Bitmap mBackgroundImage;
private Bitmap mRoleStandImage;
private Bitmap mRoleDeadmanImage;
private Bitmap mRoleFreefallImage1;
private Bitmap mRoleFreefallImage2;
private Bitmap mRoleFreefallImage3;
private Bitmap mRoleFreefallImage4;
private Bitmap mRoleMovingLeftImage1;
private Bitmap mRoleMovingLeftImage2;
private Bitmap mRoleMovingLeftImage3;
private Bitmap mRoleMovingLeftImage4;
private Bitmap mRoleMovingRightImage1;
private Bitmap mRoleMovingRightImage2;
private Bitmap mRoleMovingRightImage3;
private Bitmap mRoleMovingRightImage4;
private Bitmap mFootboardNormalImage;
private Bitmap mFootboardUnstableImage1;
private Bitmap mFootboardUnstableImage2;
private Bitmap mFootboardSpringImage;
private Bitmap mFootboardSpikedImage;
private Bitmap mFootboardMovingLeftImage1;
private Bitmap mFootboardMovingLeftImage2;
private Bitmap mFootboardMovingRightImage1;
private Bitmap mFootboardMovingRightImage2;
private Bitmap mFoodImage1;
private Bitmap mFoodImage2;
private Bitmap mFoodImage3;
private Bitmap mFoodImage4;
private Bitmap mFoodImage5;
private Bitmap mFoodImage6;
private Bitmap mFoodImage7;
private Bitmap mFoodImage8;
private Drawable mTopBarImage;
private Drawable mHpBarTotalImage;
private Drawable mHpBarRemainImage;
private Paint mGameMsgRightPaint;
private Paint mGameMsgLeftPaint;
public AgileBuddyView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
SurfaceHolder holder = getHolder();
holder.addCallback(this);
mHandler = new Handler() {
@Override
public void handleMessage(Message m) {
// 更新本地记录文件
int curScore = m.getData().getInt(HANDLE_MESSAGE_GAME_SCORE);
boolean recordRefreshed = updateLocalRecord(curScore);
LayoutInflater factory = LayoutInflater.from(mContext);
View dialogView = factory.inflate(R.layout.score_post_panel,
null);
dialogView.setFocusableInTouchMode(true);
dialogView.requestFocus();
final EditText usernameEditText = (EditText) dialogView
.findViewById(R.id.namefield);
usernameEditText.setText(mContext.getSharedPreferences(
ConstantInfo.PREFERENCE_RANKING_INFO, 0).getString(
ConstantInfo.PREFERENCE_KEY_RANKING_NAME, ""));
final AlertDialog dialog = new AlertDialog.Builder(mContext)
.setView(dialogView).create();
if (recordRefreshed) {
dialog.setIcon(R.drawable.tip_new_record);
dialog.setTitle(R.string.gameover_dialog_text_newrecord);
} else {
if (curScore < 100) {
dialog.setIcon(R.drawable.tip_pool_guy);
dialog.setTitle(R.string.gameover_dialog_text_poolguy);
} else if (curScore < 500) {
dialog.setIcon(R.drawable.tip_not_bad);
dialog.setTitle(R.string.gameover_dialog_text_notbad);
} else {
dialog.setIcon(R.drawable.tip_awesome);
dialog.setTitle(R.string.gameover_dialog_text_awesome);
}
}
dialog.show();
dialogView.findViewById(R.id.retry).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
restartGame();
}
});
dialogView.findViewById(R.id.post_scores).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
String userName = null;
if (usernameEditText.getText() != null) {
userName = usernameEditText.getText()
.toString().replace("\n", " ")
.trim();
}
if (userName.length() > 0
&& userName.length() < 20) {
SharedPreferences settings = mContext
.getSharedPreferences(
ConstantInfo.PREFERENCE_RANKING_INFO,
0);
settings
.edit()
.putString(
ConstantInfo.PREFERENCE_KEY_RANKING_NAME,
userName)
.putBoolean(
ConstantInfo.PREFERENCE_KEY_RANKING_FLAG,
!settings
.getBoolean(
ConstantInfo.PREFERENCE_KEY_RANKING_FLAG,
false))
.commit();
} else {
showToast(R.string.options_toast_username_too_long);
}
}
});
dialogView.findViewById(R.id.goback).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
((AgileBuddyActivity) mContext).finish();
}
});
}
};
// 初始化资源
initRes();
mUIThread = new AgileThread(holder, context, mHandler);
setFocusable(true);
}
@Override
public void draw(Canvas canvas) {
super.draw(canvas);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
mScreenAttribute = new ScreenAttribute(0, 20, width, height);
mUIThread.initUIModel(mScreenAttribute);
mUIThread.setRunning(true);
mUIThread.start();
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
boolean retry = true;
mUIThread.setRunning(false);
while (retry) {
try {
mUIThread.join();
retry = false;
} catch (InterruptedException e) {
Log.d("", "Surface destroy failure:", e);
}
}
}
public void handleMoving(float angleValue) {
if (mUIThread != null) {
mUIThread.handleMoving(angleValue);
}
}
public void restartGame() {
mUIThread = new AgileThread(this.getHolder(), this.getContext(),
mHandler);
mUIThread.initUIModel(mScreenAttribute);
mUIThread.setRunning(true);
mUIThread.start();
}
public boolean updateLocalRecord(int score) {
SharedPreferences rankingSettings = mContext.getSharedPreferences(
Const
没有合适的资源?快使用搜索试试~ 我知道了~
Android是男人就下一百层Java源码
共178个文件
png:92个
class:38个
java:17个
5星 · 超过95%的资源 需积分: 10 117 下载量 88 浏览量
2013-11-04
11:45:50
上传
评论 4
收藏 2.37MB RAR 举报
温馨提示
基于JAVA的Android游戏源码,基于1.5的SDK写的,以前玩过的小游戏——是男人就下一百层源码下载,经典的安卓游戏源码,对学习Android游戏开发有帮助,用到动作类游戏的UI模型、重力感应、多媒体、网络通讯、存储、国际化等技术,源代码完整,游戏也刺激,希望大家借鉴。
资源推荐
资源详情
资源评论
收起资源包目录
Android是男人就下一百层Java源码 (178个子文件)
resources.ap_ 567KB
Global.java.bak 1KB
AgileBuddyView.class 14KB
AgileBuddyView$AgileThread.class 10KB
UIModel.class 10KB
Prefs.class 6KB
ScoreUpgrateService.class 5KB
GlobalRankingActivity$RankingDataThread.class 5KB
GlobalRankingActivity.class 5KB
AgileBuddyView$1.class 4KB
Splash.class 3KB
AgileBuddyView$1$2.class 3KB
R$drawable.class 2KB
AgileBuddyActivity.class 2KB
Role.class 2KB
R$string.class 2KB
Footboard.class 2KB
GlobalRankingActivity$2.class 2KB
R$id.class 2KB
TipsActivity.class 1KB
Prefs$3.class 1KB
Global.class 1KB
Prefs$1.class 1KB
Prefs$2.class 1KB
AgileBuddyView$1$3.class 1KB
AgileBuddyActivity$1.class 1KB
AgileBuddyView$1$1.class 1KB
ConstantInfo.class 1KB
R$styleable.class 1021B
GlobalRankingActivity$1.class 1005B
Splash$1.class 967B
ScoreUpgrateService$ScoreUpgrateServiceBinder.class 824B
R.class 793B
Food.class 645B
R$attr.class 637B
R$layout.class 608B
R$raw.class 592B
ScreenAttribute.class 531B
GameRecever.class 351B
GameMonitor.class 344B
.classpath 629B
classes.dex 461KB
android-support-v4.jar 377KB
Baidu_MobAds_SDK_3.2.jar 153KB
androidGameAPI.jar 35KB
stringtree-json-2.0.5.jar 13KB
AgileBuddyView.java 25KB
R.java 17KB
UIModel.java 16KB
GlobalRankingActivity.java 8KB
Prefs.java 6KB
ScoreUpgrateService.java 4KB
Role.java 3KB
Splash.java 3KB
Footboard.java 2KB
AgileBuddyActivity.java 2KB
Global.java 1KB
ConstantInfo.java 1KB
TipsActivity.java 1KB
Food.java 498B
ScreenAttribute.java 448B
GameRecever.java 201B
GameMonitor.java 186B
nanren.jpg 41KB
yibaic.jpg 12KB
spring.ogg 8KB
tools.ogg 4KB
unstable.ogg 4KB
spiked.ogg 4KB
moving.ogg 4KB
normal.ogg 3KB
bg_ranking.png 101KB
bg_options.png 99KB
bg_tips.png 96KB
bg_ranking.png 86KB
bg_options.png 85KB
bg_tips.png 84KB
bg_game.png 79KB
bg_game.png 67KB
game_logo.png 16KB
game_logo.png 14KB
food_2.png 11KB
food_7.png 11KB
food_4.png 10KB
food_1.png 10KB
food_3.png 10KB
footboard_unstable2.png 9KB
food_6.png 9KB
food_8.png 8KB
food_5.png 7KB
food_4.png 7KB
footboard_unstable2.png 6KB
food_7.png 6KB
food_6.png 6KB
food_2.png 6KB
role_moving_right4.png 6KB
role_moving_right2.png 6KB
role_moving_left2.png 6KB
role_moving_left4.png 6KB
food_8.png 5KB
共 178 条
- 1
- 2
Geminilyj
- 粉丝: 32
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页