图书介绍
J2ME手机游戏开发详解:快速入门、难点剖析、商业案例【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

- 龚剑等编著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121056505
- 出版时间:2008
- 标注页数:624页
- 文件大小:346MB
- 文件页数:648页
- 主题词:JAVA语言-程序设计;移动通信-携带电话机-游戏-应用程序-程序设计
PDF下载
下载说明
J2ME手机游戏开发详解:快速入门、难点剖析、商业案例PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1篇 基础篇2
第1章 J2ME理论基础2
1.1 J2ME简介3
1.2 MIDlet Suites简介3
1.3 MIDlet生命周期4
1.4 MIDlet程序结构4
1.5 MIDP类库6
1.6 低级用户界面6
1.6.1 Display类的使用7
1.6.2 Image类的使用7
1.6.3 Graphics类的使用7
1.6.4 键盘事件处理8
1.7 高级用户界面8
1.7.1 Alert类的使用8
1.7.2 List类的使用8
1.7.3 TextBox类和Form类的使用8
1.8 本章小结9
第2章 WTK 2.5和集成开发环境10
2.1 WTK 2.5简介11
2.2 WTK 2.5的安装11
2.3 WTK开发流程13
2.4 设置项目属性17
2.4.1 设置项目属性17
2.4.2 属性内容18
2.4.3 Manifest文件19
2.4.4 JAD文件19
2.5 打包及混淆20
2.5.1 文件的打包20
2.5.2 文件的混淆21
2.5.3 混淆器的下载21
2.6 运行和部署JAR文件22
2.6.1 应用发现22
2.6.2 下载并校验应用描述文件23
2.6.3 下载并执行MIDlet套件23
2.7 集成开发环境23
2.7.1 JBuilder23
2.7.2 Eclipse24
2.7.3 NetBeans24
2.8 本章小结24
第3章 程序优化和图片处理25
3.1 图片格式和透明背景26
3.1.1 PNG格式简介26
3.1.2 使用Photoshop制作透明背景26
3.1.3 使用Fireworks制作透明背景27
3.2 资源优化28
3.2.1 图片的色深29
3.2.2 缩小图片尺寸29
3.2.3 集成图片29
3.2.4 优化声音资源30
3.2.5 优化数据资源30
3.3 程序优化30
3.4 查看程序的执行性能31
3.4.1 绘制延迟31
3.4.2 刷新性能32
3.4.3 运行速度32
3.4.4 网络速度32
3.5 监视程序的执行情况32
3.6 本章小结35
第4章 游戏类型划分36
4.1 动作游戏37
4.1.1 魂斗罗37
4.1.2 三国志37
4.1.3 合金弹头38
4.1.4 反恐精英39
4.1.5 星际联盟39
4.2 冒险游戏40
4.2.1 冒险岛40
4.2.2 超级玛丽40
4.2.3 波斯王子41
4.3 射击游戏42
4.3.1 沙罗曼蛇42
4.3.2 雷电42
4.3.3 空中霸王43
4.4 角色扮演游戏43
4.4.1 仙剑奇侠传43
4.4.2 黄金法师44
4.5 策略类游戏44
4.5.1 帝国时代45
4.5.2 三国志45
4.5.3 大富翁45
4.5.4 足球经理46
4.6 体育游戏46
4.6.1 足球游戏46
4.6.2 篮球游戏47
4.6.3 保龄球游戏47
4.7 棋牌游戏48
4.7.1 象棋游戏48
4.7.2 麻将游戏48
4.8 竞速游戏49
4.8.1 极品飞车49
4.8.2 赛马游戏49
4.9 益智游戏50
4.9.1 泡泡龙50
4.9.2 祖玛50
4.10 格斗游戏50
4.11 模拟类游戏51
4.12 本章小结52
第5章 手机游戏策划概述53
5.1 手机游戏特征和设计原则54
5.1.1 按键设计55
5.1.2 图形处理需求56
5.1.3 联网限制56
5.1.4 其他要点57
5.2 玩家需求分析57
5.2.1 满足体验需求58
5.2.2 满足交流需求58
5.2.3 使玩家获得成就感59
5.3 玩家行为分析59
5.3.1 运动行为59
5.3.2 探索行为60
5.3.3 角色扮演行为60
5.3.4 物品收集行为60
5.3.5 积累行为61
5.3.6 思考行为61
5.3.7 资源调配行为62
5.4 用户界面与操作性62
5.4.1 帮助文档和提示62
5.4.2 使用图标63
5.4.3 菜单风格63
5.4.4 操作说明的图形化64
5.5 游戏开发流程64
5.6 本章小结65
第6章 游戏技术和游戏题材66
6.1 3D游戏67
6.1.1 魔法与利刃67
6.1.2 3D赛车67
6.1.3 FirstGroove68
6.2 网络游戏68
6.2.1 无限乾坤69
6.2.2 网络棋牌类69
6.2.3 天劫OnLine70
6.3 经典题材70
6.3.1 街头霸王70
6.3.2 三国志71
6.3.3 圆桌骑士71
6.3.4 名将71
6.4 电影题材72
6.4.1 变形金刚72
6.4.2 哈利波特与凤凰社73
6.4.3 霍元甲74
6.4.4 金刚75
6.5 小说题材75
6.5.1 鬼吹灯75
6.5.2 西游记76
6.5.3 水浒76
6.5.4 红楼梦77
6.5.5 三国演义78
6.5.6 寻秦记78
6.6 武侠题材79
6.6.1 仙剑奇侠传79
6.6.2 剑啸江湖79
6.6.3 江湖外传79
6.7 历史题材80
6.7.1 沙漠之狐80
6.7.2 市场花园81
6.7.3 甲午风云81
6.7.4 抗日战争82
6.8 本章小结82
第2篇 案例篇84
第7章 益智猜谜游戏——数独的设计与实现84
7.1 数独游戏的策划和准备工作85
7.1.1 数独游戏的历史和现状85
7.1.2 数独游戏的规则和通用解法86
7.1.3 数独题目的生成87
7.1.4 游戏的准备工作89
7.1.5 谜题数据的制作90
7.2 数独的架构91
7.2.1 游戏的类结构91
7.2.2 用户界面流程92
7.3 主类SuDoKuMIDlet类93
7.3.1 闪屏界面93
7.3.2 游戏菜单列表93
7.3.3 继续游戏选项94
7.3.4 填充完成后提示界面95
7.3.5 通用加载图片方法96
7.4 游戏闪屏SplashScreen类96
7.4.1 加载闪屏图片96
7.4.2 绘制闪屏屏幕97
7.4.3 闪屏的线程97
7.4.4 闪屏的取消98
7.5 游戏菜单MenuList类98
7.5.1 MenuList类的构造函数98
7.5.2 游戏当前状态99
7.5.3 菜单事件处理100
7.6 游戏设置OptionsScreen类101
7.6.1 OptionsScreen类的构造函数101
7.6.2 参数设置按键事件处理102
7.7 游戏说明InstructionsScreen类103
7.7.1 InstructionsScreen类的构造函数103
7.7.2 软键事件处理104
7.8 游戏画布SuDoKuCanvas类104
7.8.1 SuDoKuCanvas类的构造函数104
7.8.2 设置游戏参数106
7.8.3 绘制背景和单元格107
7.8.4 填充数字109
7.8.5 播放声音111
7.8.6 游戏线程111
7.8.7 键盘处理和绘制屏幕112
7.8.8 开始和加载游戏113
7.8.9 显示答案114
7.8.10 软键事件响应114
7.9 游戏控制SuDoKuModel类115
7.9.1 构造函数116
7.9.2 游戏难度和输入方式117
7.9.3 谜题的产生117
7.9.4 保存加载和开始新游戏119
7.9.5 键盘处理120
7.9.6 填充数字和显示结果122
7.9.7 获取提示123
7.10 数独逻辑SuDoKuLogic类124
7.10.1 构造函数124
7.10.2 获取属性和内容126
7.10.3 填充和清空宫格127
7.10.4 检测填充结果127
7.10.5 获取数组字符串129
7.11 游戏存储SuDoKuStore类130
7.11.1 记录的读取130
7.11.2 记录的保存132
7.11.3 获取参数133
7.12 游戏声效SoundEffects类133
7.12.1 获取唯一实例134
7.12.2 加载声音文件134
7.12.3 播放声音135
7.12.4 停止播放声音136
7.13 数独的深度开发探讨136
7.13.1 数独的界面改进137
7.13.2 数独的情节策划138
7.14 本章小结139
第8章 射击策略游戏——坦克大战的设计与实现140
8.1 坦克大战游戏的策划和准备工作141
8.1.1 游戏的发展背景141
8.1.2 游戏的策划分析141
8.1.3 游戏的准备工作142
8.1.4 地图索引文件的制作144
8.2 坦克大战的架构146
8.2.1 游戏的类结构146
8.2.2 用户界面流程146
8.3 主类TankMIDlet类147
8.3.1 TankMIDlet类的构造函数147
8.3.2 游戏状态的改变148
8.4 游戏画布和控制TankCanvas类149
8.4.1 构造函数和初始化资源149
8.4.2 初始化地图参数151
8.4.3 游戏线程153
8.4.4 游戏的绘制和输入154
8.4.5 闪屏的绘制流程156
8.4.6 片头动画的绘制流程157
8.4.7 绘制菜单159
8.4.8 设置关卡参数163
8.4.9 读取地图166
8.4.10 游戏绘制168
8.4.11 对战时的用户输入184
8.4.12 子弹发射185
8.4.13 选择关卡187
8.4.14 游戏说明189
8.4.15 游戏结果189
8.5 玩家坦克Hero类196
8.5.1 构造函数196
8.5.2 坦克的运动199
8.5.3 坦克的初始状态200
8.5.4 普通模式和无敌状态202
8.5.5 爆炸状态204
8.5.6 检测与障碍物的碰撞205
8.5.7 运动物体检测207
8.6 子弹Bullet类207
8.6.1 构造函数208
8.6.2 子弹与地图的碰撞209
8.6.3 与其他物体的碰撞210
8.6.4 坦克的控制和绘制211
8.6.5 子弹爆炸213
8.6.6 子弹的运动和方向214
8.7 敌方坦克EnemyPool类和Enemy类215
8.7.1 图片加载工具EnemyPool类215
8.7.2 Enemy类构造函数218
8.7.3 坦克的绘制220
8.7.4 障碍物碰撞检测222
8.7.5 与运动物体的碰撞检测224
8.7.6 坦克的人工智能225
8.8 游戏道具Bonus类227
8.8.1 加载和创建道具227
8.8.2 道具的绘制229
8.9 声音播放SoundPlayer类230
8.9.1 获取唯一实例230
8.9.2 加载声音资源231
8.9.3 播放声音231
8.10 坦克大战的深度开发探讨232
8.10.1 坦克大战的道具和关卡改进232
8.10.2 45度视角的坦克大战235
8.11 本章小结236
第9章 棋类游戏——五子棋的设计与实现237
9.1 五子棋游戏的策划和准备工作238
9.1.1 棋类游戏开发概述238
9.1.2 游戏的背景知识239
9.1.3 游戏的准备工作240
9.2 五子棋游戏的架构241
9.2.1 事件驱动游戏241
9.2.2 游戏的类结构241
9.2.3 游戏的流程242
9.2.4 五子棋的人工智能243
9.3 主类FIRMIDlet类244
9.3.1 构造函数和软键声明244
9.3.2 软键事件处理246
9.3.3 程序状态改变246
9.4 游戏设置和介绍表单实现247
9.4.1 棋盘尺寸选择247
9.4.2 先手选择248
9.4.3 难度选择249
9.4.4 创建设置表单250
9.4.5 存储和加载默认选项251
9.4.6 获取表单参数253
9.4.7 游戏介绍表单的实现253
9.5 棋子Dot类的实现254
9.5.1 棋子的行列位置254
9.5.2 初始化棋子位置的三种方式255
9.5.3 修改棋子的位置255
9.5.4 检查越界256
9.6 对战逻辑FIRLogic类的实现256
9.6.1 构造函数和传递游戏参数256
9.6.2 建立数据结构257
9.6.3 落子和悔棋258
9.6.4 基本检测方法259
9.6.5 检测五子连珠(游戏结束)263
9.6.6 双方落子264
9.6.7 实现“连五”265
9.6.8 实现“活四”266
9.6.9 完成“冲四”、“活三”268
9.6.10 完成“双四”、“四三”、“双三”271
9.6.11 最佳落子点272
9.6.12 棋型检测调度273
9.7 游戏画布FIRCanvas类的实现274
9.7.1 构造函数274
9.7.2 屏幕绘制275
9.7.3 新开局和软键布局280
9.7.4 用户输入281
9.7.5 提示字符串283
9.8 棋类游戏的相关探讨284
9.8.1 逻辑层和表现层的分离284
9.8.2 自适应尺寸和可移植性284
9.8.3 五子棋游戏设计概要285
9.9 本章小结286
第10章 休闲娱乐游戏——连连看的设计与实现287
10.1 连连看游戏的策划和准备工作288
10.1.1 连连看游戏概述288
10.1.2 游戏的准备工作289
10.2 连连看的架构290
10.2.1 游戏的类结构290
10.2.2 用户界面流程291
10.2.3 游戏的算法分析291
10.3 主类和菜单MainMenu类294
10.3.1 主类LLKMID1et类294
10.3.2 MainMenu菜单类295
10.3.3 MainMenu类的构造函数296
10.3.4 主菜单296
10.3.5 难度设置297
10.3.6 操作说明和关于298
10.3.7 键盘输入298
10.4 矩阵LLKMatrix类301
10.4.1 LLKMatrix类的构造函数301
10.4.2 初始化矩阵302
10.4.3 设置和获取元素304
10.4.4 判断是否可连305
10.4.5 方块自动重排321
10.4.6 方块自动上升322
10.4.7 方块向下坠落323
10.4.8 方块左方往下,右方往上324
10.4.9 方块向左靠拢325
10.4.10 方块上方向左,下方向右326
10.4.11 方块上方向上,下方向下327
10.4.12 方块左方向左,右方向右327
10.4.13 方块上下向中间靠拢328
10.4.14 方块左右向中间靠拢329
10.4.15 组合变换330
10.5 游戏画布LLKCanvas类331
10.5.1 LLKCanvas类的构造函数331
10.5.2 读取游戏资源332
10.5.3 播放声音334
10.5.4 游戏计时335
10.5.5 屏幕绘制336
10.5.6 绘制游戏画面338
10.5.7 键盘响应346
10.5.8 返回菜单350
10.5.9 通过本关350
10.5.10 获取提示框350
10.6 定时器和游戏胜利屏幕351
10.6.1 定时器TimerTask类351
10.6.2 走马灯提示信息的实现352
10.6.3 GameWinCanvas类的构造函数352
10.6.4 屏幕线程353
10.6.5 屏幕绘制和键盘处理354
10.7 连连看的相关探讨355
10.7.1 连连看的图案变换356
10.7.2 连连看的排列改进357
10.8 本章小结357
第11章 飞行射击游戏——雷电游戏的设计与实现358
11.1 雷电游戏的策划和准备工作359
11.1.1 雷电游戏概述359
11.1.2 游戏的准备工作359
11.2 雷电的架构361
11.2.1 游戏的类结构362
11.2.2 用户界面流程362
11.3 主类和游戏闪屏363
11.3.1 显示闪屏和菜单363
11.3.2 设置音效和振动364
11.3.3 开始和退出游戏365
11.3.4 暂停游戏366
11.3.5 判断得分366
11.3.6 读取存储记录366
11.3.7 保存记录367
11.3.8 转换时间格式369
11.3.9 创建图片370
11.3.10 游戏闪屏SplashScreen类370
11.4 道具和子弹372
11.4.1 游戏道具类372
11.4.2 子弹类373
11.5 游戏飞机的实现375
11.5.1 Enemy1类的构造函数375
11.5.2 屏幕参数和敌机状态376
11.5.3 敌机运动循环377
11.5.4 绘制屏幕和初始化参数378
11.5.5 敌人Enemy2类379
11.5.6 敌人Enemy3456类382
11.5.7 玩家飞机Player类384
11.6 游戏画布RaidenCanvas类387
11.6.1 构造函数387
11.6.2 加载资源388
11.6.3 初始化游戏参数390
11.6.4 游戏线程390
11.6.5 处理键盘事件392
11.6.6 游戏逻辑393
11.6.7 绘制游戏画布397
11.7 游戏音效Audio类400
11.7.1 获取唯一实例400
11.7.2 创建声音对象401
11.7.3 播放声音402
11.7.4 停止播放声音403
11.7.5 释放声音资源403
11.8 菜单画布MenuCanvas403
11.8.1 构造函数404
11.8.2 屏幕绘制和键盘输入407
11.8.3 响应软键事件408
11.8.4 显示弹出对话框409
11.8.5 触发事件410
11.8.6 固定标志菜单选项412
11.8.7 菜单绘制类412
11.9 菜单Menu类414
11.9.1 构造函数414
11.9.2 菜单的绘制415
11.9.3 跳转页415
11.9.4 菜单线程和切换页面416
11.9.5 获取当前页、获取和设置选项419
11.9.6 获取和设置参数421
11.9.7 键盘输入422
11.9.8 响应菜单事件423
11.10 菜单页面MenuPage类424
11.10.1 构造函数424
11.10.2 设置标题和标题图片424
11.10.3 添加菜单选项425
11.10.4 索引与选项的对应426
11.10.5 获取和设置索引426
11.10.6 操作菜单选项427
11.11 菜单选项PageItem428
11.11.1 构造函数428
11.11.2 菜单选项的ID429
11.11.3 激活和禁止选中430
11.11.4 菜单选项的排列方式431
11.11.5 帮助说明431
11.11.6 双选菜单BinaryPageItem类432
11.12 默认菜单绘制DefaultMenuPainter类433
11.12.1 绘制菜单标题435
11.12.2 绘制单个菜单选项436
11.12.3 绘制所有菜单选项437
11.12.4 菜单切换438
11.12.5 菜单选项的宽度和高度439
11.13 菜单的接口439
11.13.1 菜单的绘制接口MenuPainter439
11.13.2 菜单的事件监听接口MenuListener440
11.13.3 菜单的事件触发ItemAction接口441
11.14 软键控制SoftButtonControl类441
11.14.1 初始化442
11.14.2 设置软键442
11.14.3 激活和禁止软键443
11.14.4 软键按下事件444
11.14.5 绘制软键445
11.15 弹出对话框的实现446
11.15.1 Popup类的构造函数447
11.15.2 初始化对话框448
11.15.3 划分字符串450
11.15.4 屏幕绘制451
11.15.5 键盘事件453
11.15.6 线程和对话框超时454
11.15.7 弹出对话框PopupListener接口456
11.16 雷电游戏的相关探讨456
11.16.1 雷电游戏的地图设计456
11.16.2 雷电游戏的子弹设计457
11.16.3 雷电游戏的道具设计458
11.16.4 雷电游戏的碰撞检测458
11.16.5 雷电游戏的关卡设计458
11.17 本章小结459
第12章 蓝牙游戏——五子棋对战游戏的设计与实现460
12.1 蓝牙对战游戏的策划和准备工作461
12.1.1 蓝牙技术概述461
12.1.2 蓝牙游戏现状462
12.1.3 游戏的策划和准备工作466
12.2 蓝牙通信流程简介466
12.2.1 蓝牙API和OBEX API466
12.2.2 蓝牙控制中心469
12.2.3 协议栈469
12.2.4 设备管理470
12.2.5 搜索设备470
12.2.6 搜索服务470
12.2.7 建立通信471
12.3 蓝牙对战五子棋的架构471
12.3.1 游戏的用户界面设计472
12.3.2 游戏的蓝牙连接流程472
12.3.3 游戏的类结构474
12.4 主类BTFIRMIDlet类474
12.4.1 BTFIRMIDlet类的构造函数474
12.4.2 软键事件处理476
12.4.3 程序状态转换476
12.5 逻辑类BTFIRLogic类的实现477
12.5.1 构造函数477
12.5.2 双方落子478
12.5.3 检测五子连珠480
12.5.4 外部接口483
12.6 游戏画布类BTFIRCanvas类的实现483
12.6.1 构造函数484
12.6.2 绘制棋盘485
12.6.3 用户输入489
12.6.4 网络连接491
12.6.5 游戏开局492
12.6.6 提示字符串492
12.7 连接控制类Connection类493
12.7.1 Connection类的构造函数493
12.7.2 启动连接494
12.7.3 信息的收发495
12.8 服务器类Server类495
12.8.1 构造函数495
12.8.2 连接线程496
12.8.3 客户端处理程序(内部类)498
12.8.4 收发数据500
12.9 客户端类Client类501
12.9.1 构造函数501
12.9.2 连接线程502
12.9.3 搜索设备503
12.9.4 搜索服务504
12.9.5 收发信息505
12.10 蓝牙五子棋游戏的相关探讨506
12.10.1 游戏的改善方案506
12.10.2 蓝牙游戏设计概要507
12.11 本章小结507
第13章 角色扮演游戏——剑神的设计与实现508
13.1 剑神游戏的策划和准备工作509
13.1.1 RPG游戏概述509
13.1.2 多结局与重玩性510
13.1.3 游戏的准备工作511
13.2 剑神的架构516
13.2.1 游戏的类结构516
13.2.2 用户界面流程516
13.3 游戏主类和菜单517
13.3.1 主类SwordMIDlet518
13.3.2 菜单类的构造函数519
13.3.3 加载图片资源520
13.3.4 绘制线程520
13.3.5 绘制方法521
13.3.6 键盘事件处理522
13.3.7 创建游戏进度画面524
13.4 加载画布LoadingCanvas类525
13.4.1 构造函数525
13.4.2 绘制线程526
13.4.3 绘制加载界面528
13.5 游戏画布SwordCanvas类529
13.5.1 构造函数529
13.5.2 游戏参数的初始化531
13.5.3 地图系统534
13.5.4 运动系统542
13.5.5 键盘事件处理549
13.5.6 菜单系统563
13.5.7 战斗系统570
13.5.8 玩家属性577
13.5.9 对话系统583
13.5.10 天气系统586
13.5.11 绘制屏幕587
13.6 精灵与定时器595
13.6.1 游戏精灵Sprite类595
13.6.2 定时器的构造函数596
13.6.3 实现天气效果597
13.6.4 进行场景切换597
13.6.5 回血技能598
13.6.6 补气技能599
13.6.7 改变攻击顺序600
13.6.8 敌人发动攻击602
13.6.9 落日技能604
13.6.10 乱电和残风技能605
13.6.11 玩家发起的普通攻击606
13.7 游戏存储SwordStore类607
13.7.1 检查存储是否存在607
13.7.2 保存记录608
13.7.3 读取记录609
13.7.4 删除记录610
13.8 游戏音效SoundEffects类611
13.8.1 获取唯一实例611
13.8.2 读取声音文件611
13.8.3 播放声音612
13.8.4 暂停声音613
13.8.5 停止和释放声音613
13.9 绘制特效GraphicsEffects类614
13.9.1 获取唯一实例614
13.9.2 裁剪绘制小图614
13.9.3 绘制特效文字615
13.10 RPG设计要点615
13.10.1 战斗画面的设计615
13.10.2 道具系统的设计616
13.10.3 游戏对白的设计617
13.11 武侠RPG手机游戏一览617
13.11.1 《傲世奇侠传》618
13.11.2 《仙剑奇侠传》619
13.11.3 《佣兵天下》619
13.11.4 《浪子剑客》621
13.11.5 《侠侣仙踪》623
13.12 本章小结624
热门推荐
- 132064.html
- 530441.html
- 2204979.html
- 2604014.html
- 73972.html
- 3833245.html
- 733953.html
- 3526906.html
- 2868157.html
- 1300204.html
- http://www.ickdjs.cc/book_56557.html
- http://www.ickdjs.cc/book_856428.html
- http://www.ickdjs.cc/book_1914862.html
- http://www.ickdjs.cc/book_1629093.html
- http://www.ickdjs.cc/book_1835237.html
- http://www.ickdjs.cc/book_568203.html
- http://www.ickdjs.cc/book_3209880.html
- http://www.ickdjs.cc/book_1032579.html
- http://www.ickdjs.cc/book_2066852.html
- http://www.ickdjs.cc/book_1376244.html