package jp.sourceforge.andjong;
import jp.sourceforge.andjong.R;
import jp.sourceforge.andjong.DrawItem.PlayerInfo;
import static jp.sourceforge.andjong.DrawItem.*;
import jp.sourceforge.andjong.mahjong.EventIf;
import jp.sourceforge.andjong.mahjong.Fuuro;
import jp.sourceforge.andjong.mahjong.Hai;
import jp.sourceforge.andjong.mahjong.InfoUi;
import jp.sourceforge.andjong.mahjong.Hou;
import jp.sourceforge.andjong.mahjong.Mahjong;
import jp.sourceforge.andjong.mahjong.PlayerAction;
import jp.sourceforge.andjong.mahjong.SuteHai;
import jp.sourceforge.andjong.mahjong.Tehai;
import jp.sourceforge.andjong.mahjong.Yama;
import jp.sourceforge.andjong.mahjong.AgariScore.AgariInfo;
import android.app.Activity;
import android.content.Context;
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.RectF;
import android.graphics.Paint.Align;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
public class AndjongView extends View implements EventIf {
private static final String TAG = "AndjongView";
/** 游戏主activity*/
private Game m_game;
/** 牌的图片 */
private Bitmap[] m_haiImage;
/** 牌的图片的宽 */
private int m_haiImageWidth;
/** 牌的图片的高 */
private int m_haiImageHeight;
/** 牌的宽 */
private static final int HAI_WIDTH = 19;
/** 牌的高 */
private static final int HAI_HEIGHT = 23;
private static final int TSUMO_OFFSET = 2;
//private static final int SELECT_OFFSET = 16;
private static final int SELECT_OFFSET = 16 - 4;
private static final int FUURO_LEFT = 320 - 2;
/** 牌的背面的图片 */
private Bitmap mHaiUraImage;
/** 横放的牌的图片 */
private Bitmap[] m_horizontalHaiImage;
/** 隐藏牌的图片 */
private Bitmap m_hideHaiImage;
private Bitmap[] m_largeHaiImage;
private int m_largeHaiImageWidth;
// private int m_largeHaiImageHeight;
/** 1000点棒的图片 */
private Bitmap mTenbou1000Image;
/** 100点棒的图片 */
private Bitmap mTenbou100Image;
/** 表示庄家的图片 */
private Bitmap mChiichaImage;
/** 背景的画笔 */
private Paint mBackgroundPaint;
/*
* 红宝牌
*/
private Bitmap[] m_haiRedImage;
private Bitmap[] m_horizontalHaiRedImage;
private Bitmap[] m_largeHaiRedImage;
/*
* print
*/
private static final int ROUND = 5;
private static final int PRINT_AREA_WIDTH = 150 - 10;
private static final int PRINT_AREA_HEIGHT = 134 - 10;
private static final int PRINT_AREA_LEFT = 90 + 150 + 5;
private static final int PRINT_AREA_TOP = 90 + 5;
private static final int PRINT_AREA_RIGHT = PRINT_AREA_LEFT + PRINT_AREA_WIDTH;
private static final int PRINT_AREA_BOTTOM = PRINT_AREA_TOP + PRINT_AREA_HEIGHT;
private static final int PRINT_TEXT_SIZE = 30;
private Paint m_printPaint;
private RectF m_printRect;
/** 消息区域的宽 */
private static final int MESSAGE_AREA_WIDTH = 88;
// private static final int MESSAGE_AREA_WIDTH = 146;
/** 消息区域的高 */
private static final int MESSAGE_AREA_HEIGHT = 40;
// private static final int MESSAGE_AREA_HEIGHT = 143;
/** 消息区域的Left */
private static final int MESSAGE_AREA_LEFT = 392;
// private static final int MESSAGE_AREA_LEFT = 87;
/** 消息区域的Top */
private static final int MESSAGE_AREA_TOP = 280;
// private static final int MESSAGE_AREA_MARGIN = 20;
// private static final int MESSAGE_AREA_TOP = 176;
/** 消息区域的Right */
private static final int MESSAGE_AREA_RIGHT = MESSAGE_AREA_LEFT + MESSAGE_AREA_WIDTH;
/** 消息区域的Bottom */
private static final int MESSAGE_AREA_BOTTOM = MESSAGE_AREA_TOP + MESSAGE_AREA_HEIGHT;
/** 消息区域的文字SIZE */
private static final int MESSAGE_TEXT_SIZE = 20;
/** 消息区域圆角半径 */
private static final int MESSAGE_ROUND = 10;
/** 消息区域的画笔 */
private Paint mMessagePaint;
/** 消息区域的矩形 */
private RectF mMessageRect;
/*
* 信息
*/
/** 信息区的宽 */
private static final int INFO_AREA_WIDTH = 300;
/** 信息区的高 */
private static final int INFO_AREA_HEIGHT = 134;
/** 信息区的Left */
private static final int INFO_AREA_LEFT = 90;
/** 信息区的Top */
private static final int INFO_AREA_TOP = 90;
/** 信息区的Right */
private static final int INFO_AREA_RIGHT = INFO_AREA_LEFT + INFO_AREA_WIDTH;
/** 信息区的Bottom */
private static final int INFO_AREA_BOTTOM = INFO_AREA_TOP + INFO_AREA_HEIGHT;
/** 信息区的圆角半径 */
private static final int INFO_ROUND = 5;
/** 信息区的画笔 */
private Paint m_infoPaint;
/** 信息区的矩形 */
private RectF m_infoRect;
/*
* 菜单
*/
/** 菜单最大容量 */
private static final int MENU_ITEM_MAX = 4;
/** 菜单的宽 */
private static final int MENU_WIDTH = 94;
// private static final int MENU_WIDTH = 78;
/** 菜单的高 */
private static final int MENU_HEIGHT = 66;
// private static final int MENU_HEIGHT = 72;
/** 菜单的top */
private static final int MENU_AREA_TOP = 250;
// private static final int MENU_AREA_TOP = 406;
/** 菜单的left */
private static final int MENU_AREA_LEFT = 0;
/** 菜单的top_margin*/
private static final int MENU_AREA_TOP_MARGIN = 2;
// private static final int MENU_AREA_TOP_MARGIN = 1;
/** 菜单的left_margin */
private static final int MENU_AREA_LEFT_MARGIN = 2;
/** 菜单的框架 */
private RectF m_menuRect[];
/** 菜单的文字尺寸 */
private static final int MENU_TEXT_SIZE = 24;
/*
* 結果画面
*/
/** 結果画面のドラのtop */
private static final int RESULT_DORAS_TOP = 2;
/** 結果画面のドラのleft */
private static final int RESULT_DORAS_LEFT = 2;
/** 描画アイテム */
private DrawItem m_drawItem = new DrawItem();
/** InfoUI */
private InfoUi m_infoUi;
/** UI的名字 */
private String mName;
/** 玩家行为 */
private PlayerAction m_playerAction;
private static final int LEFT_OFFSET = 5;
private static final int TOP_OFFSET = 26;
/** 局のLeft */
private static final int KYOKU_LEFT = 160 + LEFT_OFFSET;
/** 局のTop */
private static final int KYOKU_TOP = 85 + 11 + TOP_OFFSET;
/** 局のテキストサイズ */
private static final int KYOKU_TEXT_SIZE = 18;
/** ドラのLeft */
private static final int DORAS_LEFT = 112 + LEFT_OFFSET;
/** ドラのTop */
private static final int DORAS_TOP = 154 + TOP_OFFSET;
/** リーチ棒のイメージのLeft */
private static final int TENBOU_01000_MIN_IMAGE_LEFT = 100 + LEFT_OFFSET;
/** リーチ棒のイメージのTop */
private static final int TENBOU_01000_MIN_IMAGE_TOP = 141 + TOP_OFFSET;
/** リーチ棒の数のLeft */
private static final int REACHBOU_LEFT = TENBOU_01000_MIN_IMAGE_LEFT + 43;
/** リーチ棒の数Top */
private static final int REACHBOU_TOP = TENBOU_01000_MIN_IMAGE_TOP + 5;
/** 小さいのテキストサイズ */
private static final int MINI_TEXT_SIZE = 12;
/** 点棒のLeft */
private static final int[] TENBO_LEFT = { 160 + LEFT_OFFSET, 197 + LEFT_OFFSET, 160 + LEFT_OFFSET, 123 + LEFT_OFFSET };
/** 点棒のTop */
private static final int[] TENBO_TOP = { 135 + TOP_OFFSET, 123 + TOP_OFFSET, 111 + TOP_OFFSET, 123 + TOP_OFFSET };
/** 本場のイメージのLeft */
private static final int TENBOU_00100_MIN_IMAGE_LEFT = 170 + LEFT_OFFSET;
/** 本場のイメージのTop */
private static final int TENBOU_00100_MIN_IMAGE_TOP = TENBOU_01000_MIN_IMAGE_TOP;
/** 本場の数のLeft */
private static final int HONBA_LEFT = TENBOU_00100_MIN_IMAGE_LEFT + 43;
/** 本場の数Top */
pri
没有合适的资源?快使用搜索试试~ 我知道了~
android开源麻将游戏
共221个文件
class:90个
gif:81个
java:27个
4星 · 超过85%的资源 需积分: 8 36 下载量 60 浏览量
2016-04-08
14:03:19
上传
评论 1
收藏 420KB ZIP 举报
温馨提示
Andjong 麻将游戏的源代码,是一个日本的开源项目,注释很多很详细(不过是日文的^_^),对麻将类游戏开发有较大的帮助。
资源推荐
资源详情
资源评论
收起资源包目录
android开源麻将游戏 (221个子文件)
resources.ap_ 62KB
Andjong.apk 126KB
AndjongView.class 36KB
Yaku.class 27KB
Mahjong.class 21KB
AgariScore.class 12KB
Man.class 10KB
Tehai.class 10KB
AI.class 8KB
PlayerAction.class 6KB
Info.class 6KB
Hai.class 5KB
CountFormat.class 5KB
R$string.class 4KB
Yama.class 3KB
Player.class 3KB
R$drawable.class 3KB
DrawItem.class 3KB
EventIf$EventId.class 2KB
AgariSetting.class 2KB
AgariSetting$YakuflgName.class 2KB
Hou.class 2KB
InfoUi.class 2KB
SuteHai.class 2KB
Settings.class 2KB
Fuuro.class 2KB
CountFormat$CombiManage.class 1KB
Andjong.class 1KB
Game.class 1KB
Yaku$YakuHantei.class 1KB
Yaku$CheckNan.class 1KB
Yaku$CheckTon.class 1KB
Yaku$CheckCyanta.class 1KB
Yaku$CheckHonitu.class 1KB
Yaku$CheckSansyokuDoujun.class 1KB
Yaku$CheckIkkituukan.class 1KB
Yaku$CheckIpeikou.class 1KB
Yaku$CheckJunCyan.class 1KB
Yaku$CheckReach.class 1KB
Yaku$CheckTinitu.class 1KB
Yaku$CheckCyuurennpoutou.class 1KB
Yaku$CheckHonroutouChiitoitsu.class 1KB
Yaku$CheckChinroutou.class 1KB
Yaku$CheckSyousuushi.class 1KB
Yaku$CheckDaisangen.class 1KB
Yaku$CheckDaisuushi.class 1KB
Yaku$CheckSuukantu.class 1KB
Yaku$CheckSuuankou.class 1KB
Yaku$CheckRyuuisou.class 1KB
Yaku$CheckKokushi.class 1022B
Yaku$CheckTuuisou.class 1022B
Yaku$CheckSansyokuDoukou.class 1020B
Yaku$CheckTenhou.class 1018B
Yaku$CheckTihou.class 1014B
CountFormat$Combi.class 1009B
Yaku$CheckDora.class 1009B
Yaku$CheckDoubleReach.class 1008B
Yaku$CheckSyousangen.class 1004B
Yaku$CheckRyanpeikou.class 1004B
Yaku$CheckHonroutou.class 1000B
Yaku$CheckTeetoitu.class 996B
Yaku$CheckSanankou.class 996B
Yaku$CheckSankantu.class 996B
Yaku$CheckRinsyan.class 992B
Yaku$CheckCyankan.class 992B
Yaku$CheckHaitei.class 988B
Yaku$CheckToitoi.class 988B
Yaku$CheckHoutei.class 988B
Yaku$CheckTanyao.class 988B
Yaku$CheckIppatu.class 988B
Yaku$CheckPinfu.class 984B
Yaku$CheckTumo.class 980B
Yaku$CheckCyun.class 980B
Yaku$CheckHatu.class 980B
Yaku$CheckHaku.class 980B
Yaku$CheckPei.class 976B
Yaku$CheckSya.class 976B
DrawItem$PlayerInfo.class 867B
AgariScore$Score.class 862B
Sai.class 793B
R.class 711B
AgariScore$AgariInfo.class 668B
EventIf.class 619B
CountFormat$Count.class 588B
R$id.class 585B
R$array.class 508B
R$color.class 507B
About.class 504B
R$layout.class 435B
R$xml.class 401B
BuildConfig.class 353B
R$attr.class 352B
.classpath 396B
classes.dex 142KB
hai_18_sou_1_l.gif 363B
hai_17_pin_9_l.gif 340B
hai_15_pin_7_l.gif 324B
hai_14_pin_6_l.gif 322B
hai_13_pin_5_l.gif 316B
hai_09_pin_1_l.gif 307B
共 221 条
- 1
- 2
- 3
资源评论
- '李自在2018-07-03您好,我是java开发人员,刚下下来这个项目,可以指教一下吗?
- chenghuashangguan2017-09-29下下来学习学习
「已注销」
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功