《J2ME手机游戏开发技术详解》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:李振鹏,龚剑编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302126014
  • 页数:652 页
图书介绍:

目录 2

第1篇 起步篇 2

第1章 J2ME概述 2

1.1 J2ME体系结构 2

1.1.1 Java的版本 2

1.1.2 J2ME的3层体系结构 3

1.1.3 J2ME配置(Configuration) 4

1.1.4 K虚拟机(KVM) 6

1.1.5 J2ME简表(Profiles) 7

1.1.6 J2ME规范(Specification) 8

1.2 有限连接设备配置表(CLDC) 9

1.2.1 CLDC概览 9

1.2.2 CLDC中使用的J2SE类 11

1.2.3 CLDC的字符集和系统属性 13

1.2.4 CLDC专用类 15

1.2.5 通用连接(Generic Connection)框架 16

1.2.6 CLDC1.1的新特性 19

1.2.7 CLDC安全体系结构 21

1.3 MIDP简表 23

1.3.1 设备需求 24

1.3.2 MIDP的总体体系结构 25

1.3.3 MIDP类库 27

1.3.4 MIDP 2.0的新特性 28

1.3.5 MIDP 2.0的安全机制 29

1.3.6 MIDP的未来方向 31

1.4 本章小结 32

第2章 用J2ME WTK开发无线应用 33

2.1 J2ME WTK的安装配置 33

2.1.1 WTK简介 33

2.1.3 WTK 2.2的安装 34

2.1.2 安装前的准备工作 34

2.1.4 WTK 2.2的目录结构 35

2.2 使用KToolbar部署应用 36

2.2.1 启动KToolbar工具包 36

2.2.2 创建新工程 37

2.2.3 打开一个已有工程 39

2.2.4 第一个MIDP程序HelloWorld 39

2.2.5 编译并运行程序 40

2.2.6 MIDP程序打包以及混淆 42

2.2.7 部署多个MIDlet组成的套件 43

2.2.8 OTA方式部署应用 44

2.3 MIDlet应用程序模型 45

2.3.1  MIDlet套件 46

2.3.2 清单文件(MANIFEST)和描述文件(JAD) 46

2.3.3 应用管理软件 49

2.3.4 从JAD文件中读取属性 50

2.3.5 MIDlet的生命周期 51

2.3.6 编写MIDlet应用程序 53

2.3.7 MIDlet的开发流程 55

2.4 设置WTK的工程属性和开发环境 56

2.4.1 设置JAD/清单属性 56

2.4.2 设置自己的工程目录 57

2.4.3 使用第三方类库 58

2.4.4 设置WTK的版本控制 59

2.4.5 设置调试(Debug)环境 60

2.4.6 设置默认模拟器 60

2.4.7 添加新的模拟器 60

2.4.8 为程序添加图标 61

2.5.1 WTK自带的模拟器 62

2.5 WTK的模拟器使用 62

2.5.2 模拟器中的文本输入 64

2.5.3 用模拟器运行本地配置应用程序 65

2.5.4 设置模拟器的网络参数 65

2.5.5 设置模拟器的永久存储和堆栈 66

2.5.6 设置模拟器的执行性能 67

2.5.7 监视程序的执行情况 68

2.6 本章小结 72

第3章 J2ME应用开发环境的选择和配置 73

3.1 JBuilder 2005开发环境的搭建 73

3.1.1 搭建J2ME开发平台 73

3.1.2 开发Demo程序 74

3.1.3 打包和混淆应用程序 77

3.1.4 打包和混淆出现的问题 79

3.1.5 使用Nokia开发包开发应用程序 80

3.1.6 使用SonyEricsson开发包开发应用程序 82

3.1.7 使用Motorola开发包开发应用程序 84

3.2 Eclipse开发环境的搭建 85

3.2.1 搭建J2ME开发平台 85

3.2.2 开发Demo程序 87

3.2.3 打包和混淆应用程序 89

3.3 本章小结 90

第2篇 基础篇 92

第4章 高级用户界面 92

4.1 高级用户界面设计概述 92

4.1.1 MIDP用户界面概述 92

4.1.2 用户界面API的分类 93

4.1.3 高级用户界面的类层次 94

4.2.1 Display类 95

4.2 用户界面的管理 95

4.2.2 Display对象的管理 97

4.2.3 可显示(Displayable)类 98

4.2.4 当前显示对象(Current Displayable) 100

4.2.5 设置当前显示对象 101

4.2.6 获取背景光和振动器信息 102

4.2.7 获取颜色信息 102

4.2.8 获取样式信息 104

4.2.9 序列化 104

4.3 高级事件 105

4.3.1 用户界面事件概述 105

4.3.2 软键(Command)类和软键类型 106

4.3.3 Command对象与用户界面的映射 108

4.3.4 CommandListener侦听 109

4.3.5 用Command跳转屏幕 111

4.4 高级屏幕类 113

4.4.1 Screen类 113

4.4.2 用信息条(Ticker类)实现滚动文字 114

4.4.3 用Alert类实现提醒功能 116

4.4.4 AlertType类 120

4.4.5 Choice接口 123

4.4.6 List 125

4.4.7 用TextBox类输入和编辑文本 132

4.5 屏幕表单(Form类)及其组件 138

4.5.1 Form类 138

4.5.2 Item类以及对Item状态的侦听 142

4.5.3 用ChoiceGroup类实现选项 148

4.5.4 用CustomItem类自定义组件 154

4.5.5 用DateField类输入日期 164

4.5.6 Gauge(图形标尺)类 171

4.5.7 用ImageItem类在Form中显示图片 178

4.5.8 Spacer 183

4.5.9 StringItem 185

4.5.10 用TextField类输入文字 189

4.6 本章小结 194

第5章 低级用户界面 195

5.1 Canvas类 195

5.1.1 Canvas类概述 195

5.1.2 绘制屏幕 198

5.1.3 重绘屏幕和强制重绘 199

5.1.4 显示和隐藏事件 201

5.1.5 按键事件 203

5.1.6 游戏动作 204

5.1.7 指针事件 206

5.1.8 Command事件 209

5.2 Graphics类 210

5.2.1 Graphics类概述 210

5.2.2 颜色模型与Alpha透明 213

5.2.3 绘制直线 215

5.2.4 绘制和填充矩形 216

5.2.5 绘制和填充弧形 217

5.2.6 绘制和填充圆角矩形 217

5.2.7 填充三角形 218

5.2.8 画笔风格 218

5.2.9 设置剪裁区域 219

5.2.10 坐标系统变换 221

5.3 字体的使用 222

5.3.1 Font类概述 222

5.3.2 字体属性 223

5.3.3 创建字体 225

5.3.4 文本的高度和宽度 225

5.3.5 基线 227

5.3.6 锚点 227

5.3.7 绘制字符串 228

5.4 图像的绘制 230

5.4.1 Image类概述 230

5.4.2 不变图像的创建 231

5.4.3 不变图像的绘制 234

5.4.4 ARGB图像的创建与绘制 236

5.4.5 PNG图像格式 239

5.4.6 制作PNG透明背景 242

5.4.7 可变图像的创建 244

5.4.8 图像双缓冲技术 245

5.4.9 图片处理的注意点 246

5.5 本章小结 247

第6章 记录存储系统 248

6.1 记录存储系统概述 248

6.1.1 记录存储的概念 248

6.1.2 记录存储API 249

6.2 记录存储的管理 251

6.2.1 创建记录存储 251

6.2.2 关闭和删除记录存储 252

6.2.3 增加记录存储 253

6.2.4 查询记录存储 254

6.2.5 修改记录存储 255

6.3 面对记录的高级操作 256

6.3.1 记录枚举接口 256

6.3.2 记录过滤接口 257

6.3.3 记录比较接口 258

6.3.4 记录监听接口 260

6.4 存储记录的格式问题 262

6.4.1 二进制格式和其他格式的转换 262

6.4.2 几个关于数据转换的问题 263

6.5 游戏中的数据存储 263

6.5.1 游戏中记录存储的方式 263

6.5.2 游戏记录存储类的使用 266

6.5.3 与传统的数据存取方式的对比 267

6.6 本章小结 267

第7章 MIDP网络编程 268

7.1 通用连接框架 268

7.1.1 概述 268

7.1.3 GCF的层次结构 269

7.1.2 通用连接框架Generic Connection Framework 269

7.1.4 GCF的使用 270

7.2 MIDP的HTTP连接 271

7.2.1 HTTP协议简介 271

7.2.2 HTTP连接状态 271

7.2.3 建立HTTP连接 272

7.2.4 设置HTTP请求头 273

7.2.5 使用HTTP连接 275

7.2.6 关闭HTTP连接 277

7.2.7 使用HTTP协议下载文件 277

7.3 Socket连接简介 278

7.3.1 套接字(Socket)连接简介 278

7.3.2 使用Socket下载文件 280

7.4 Datagram连接 282

7.4.1 Datagram连接简介 282

7.4.2 Datagram使用实例 283

7.5 Push技术概述 285

7.5.1 Push技术的分类 285

7.5.2 静态注册与基于inbound网络连接的Push 286

7.5.3 动态注册与基于计时器的Push 290

7.5.4 使用Push应注意的问题 291

7.6 本章小结 291

第8章 声音的播放和处理 292

8.1 MMAPI概述 292

8.1.1 MMAPI的概念 292

8.1.2 MMAPI的结构 293

8.2 播放器的创建和管理 294

8.2.1 MMAPI所支持的声音格式 294

8.2.2 Player接口和状态 295

8.3.1 播放简单音调 297

8.3 播放器的使用 297

8.3.2 播放音乐文件 298

8.3.3 控制播放音量 299

8.3.4 设置播放次数和循环播放 300

8.3.5 播放器监听接口 300

8.4 游戏中声音的播放 302

8.4.1 以独占方式播放声音 302

8.4.2 以线程方式播放声音 305

8.5 本章小结 306

第3篇 进阶篇 308

第9章 MIDP 2.0游戏开发 308

9.1 MIDP 2.0游戏开发概述 308

9.1.1 MIDP 2.0对游戏的支持 308

9.1.2 Game API概览 309

9.2.1 GameCanvas概述 310

9.2 游戏的屏幕:GameCanvas类 310

9.2.2 绘制双缓冲区 311

9.2.3 实现游戏主循环 312

9.2.4 获取键盘状态 312

9.2.5 Canvas绘制实例 314

9.3 图层的使用:Layer类 316

9.4 游戏背景:TiledLayer类 317

9.4.1 TiledLayer类概览 317

9.4.2 图像贴图(Tile) 318

9.4.3 单元格(Cell) 319

9.4.4 静态背景的制作 319

9.4.5 动态背景的制作 322

9.5 游戏精灵:Sprite类 325

9.5.1 Sprite类概览 325

9.5.2 帧(Frame) 326

9.5.3 帧序列(FrameSequence) 327

9.5.4 旋转(Transform) 329

9.5.5 设置参考点(reference pixel) 331

9.5.6 精灵的绘制 332

9.5.7 碰撞检测(例子) 333

9.6 图层管理:LayerManager类 335

9.6.1 LayerManager类概览 335

9.6.2 层的索引和操作(示意图) 336

9.6.3 LayerManager的绘制 337

9.6.4 设置图层的位置 338

9.6.5 设置显示窗口(示意图) 339

9.6.6 双重背景的制作 340

9.6.7 实例:GameAPI实现RPG游戏 344

9.7 本章小结 346

10.1.1 线程的创建 347

第10章 游戏主要编程技术 347

10.1 游戏的线程 347

10.1.2 线程的启动与停止 348

10.1.3 线程的休眠与唤醒 351

10.1.4 线程的优先级 352

10.1.5 线程的同步问题 353

10.2 游戏的中断和恢复 354

10.3 Vector:用Vector实现的子弹 355

10.4 随机数字:游戏的人工智能 357

10.5 定时器Timer:预定时间内完成任务 358

10.5.1 只运行一次的定时器 358

10.5.2 可以重复运用的定时器 359

10.6 游戏闪屏设计 360

10.6.1 Alert实现的闪屏 361

10.6.2 Canvas实现的闪屏 362

10.7 游戏菜单设计 364

10.7.1 高级界面实现的菜单 365

10.7.2 低级界面实现的菜单 366

10.8 本章小结 371

第11章 3D游戏开发入门 372

11.1 J2ME 3D概览 372

11.1.1 J2ME 3D游戏概述 372

11.1.2 M3G包描述 373

11.1.3 手机3D图像开发技术 374

11.1.4 M3G技术所能实现的功能 374

11.1.5 3D动画的两种开发模式 375

11.1.6 场景结构(Scene Graphs) 375

11.1.7 类描述 376

11.2.1 基本原则 378

11.2 用点、线、面构造复杂形体 378

11.2.2 顶点数组(VertexArray) 379

11.2.3 位置数组(PositionArray) 380

11.2.4 法向量数组(NormalArray) 381

11.2.5 颜色数组(ColorsArray) 381

11.2.6 纹理数组(TextureArray) 382

11.2.7 顶点缓冲(VertexBuffer) 383

11.2.8 索引缓冲(IndexBuffer) 385

11.2.9 网格多面体(Mesh) 387

11.2.10 实例:构造一个金字塔 388

11.2.11 顶点变形多面体(MorphingMesh) 390

11.2.12 实例:变形多面体 392

11.2.13 骨骼变形多面体(SkinnedMesh) 393

11.2.14 实例:活动的手臂 395

11.3.1 类Apperance概述 398

11.3 多面体的外观属性 398

11.3.2 深度和颜色属性(CompositingMode) 400

11.3.3 多边形属性(PolygonMode) 403

11.3.4 雾化属性(Fog) 407

11.3.5 材质属性(Material) 410

11.3.6 2维图像(Image2D) 412

11.3.7 纹理映射(Texture) 413

11.3.8 实例:添加多重纹理 417

11.4 光照 418

11.4.1 光照概述 418

11.4.2 光照的类型 420

11.4.3 光照的衰减 421

11.4.4 光源的选择和颜色 421

11.4.5 创建聚光源 422

11.4.6 实例:比较光照效果 423

11.4.7 实例:滚动的光源 424

11.5 构建三维世界 424

11.5.1 变换矩阵(Transform) 425

11.5.2 变换类(Transformable) 428

11.5.3 节点(Node) 430

11.5.4 抽象三维物体Object3D 432

11.5.5 节点组(Group) 435

11.5.6 世界(World) 436

11.5.7 背景(Background) 438

11.5.8 摄像机(Camera) 440

11.5.9 精灵(Sprite3D) 442

11.5.10 实例:活动的圣诞老人 444

11.5.11 场景绘制(Graphics3D) 445

11.5.12 实例:滚动的骰子 447

11.6 动画制作 451

11.6.1 类结构 451

11.6.2 关键帧序列(KeyframeSequence) 452

11.6.3 动画轨迹(AnimationTrack) 455

11.6.4 动画控制器(AnimationController) 457

11.6.5 实例:滚动的立方体 460

11.7 使用M3G文件创建3D场景 461

11.7.1 3ds max制作M3G文件 461

11.7.2 制作指南 463

11.7.3 浏览M3G文件 465

11.7.4 加载M3G文件 467

11.7.5 实例:遍历世界 468

11.8 本章小结 469

12.1.1 受限的处理器 470

12.1 目标设备的约束 470

第12章 J2ME游戏开发技巧 470

12.1.2 受限的存储器 471

12.1.3 联网能力和带宽 471

12.1.4 输入输出的多样性 471

12.1.5 外型和重量 472

12.1.6 移动设备的操作系统 472

12.2 针对J2ME游戏开发的技巧及优化技术 472

12.2.1 优化的基本知识 473

12.2.2 使用JBuilder查找程序的性能瓶颈 474

12.2.3 优化J2ME程序设计和编码,提高程序性能的方法 475

12.2.4 优化内存的使用 479

12.2.5 缩减应用程序体积 480

12.2.6 网络程序优化 482

12.2.7 延迟掩盖技术 482

12.2.8 程序设计的权衡 483

12.3 本章小结 485

第13章 手机游戏开发的总体理念 486

13.1 游戏开发的思路 486

13.2 从游戏玩家角度开发的游戏 487

13.3 从开发者角度开发的游戏 489

13.3.1 从游戏载体划分游戏 489

13.3.2 从游戏实现角度划分游戏 490

13.4 J2ME手机游戏的版本和移植性 490

13.4.1 J2ME的版本介绍 490

13.4.2 J2ME的扩展标准 492

13.4.3 J2ME的不同厂家实现的差别介绍 493

13.4.4 J2ME程序在不同手机之间的移植 493

13.5 本章小结 494

14.1.1 单屏幕手机游戏概述 496

14.1 游戏的策划以及架构 496

第4篇 实战篇 496

第14章 单屏游戏的设计与实现 496

14.1.2 手机游戏策划概论 497

14.1.3 逃亡者游戏的策划 499

14.1.4 逃亡者游戏的准备工作 499

14.1.5 程序的类结构 501

14.1.6 游戏的流程图 501

14.2 游戏的实现 502

14.2.1 主类escapeeMIDlet的实现 502

14.2.2 游戏闪屏SplashScreen类的实现 510

14.2.3 游戏菜单MenuList类的实现 513

14.2.4 高分屏幕HighScoreScreen类的实现 515

14.2.5 简介屏幕InstructionsScreen类的实现 516

14.2.6 子弹Bullets类的实现 516

14.2.7 逃亡飞机Escape类的实现 521

14.2.8 游戏画布escapeeCanvas类的实现 524

14.2.9 结束屏幕GameOverScreen类的实现 529

14.2.10 声音效果SoundEffects类的实现 531

14.3 游戏的优化和改进 533

14.3.1 逻辑层和表现层的分离 533

14.3.2 玩家的定制 534

14.3.3 制作游戏的试玩版 537

14.3.4 游戏程序的注册 538

14.4 本章小结 542

第15章 滚屏游戏设计——经典超级玛丽 543

15.1 滚屏游戏的策划和准备工作 543

15.1.1 游戏的策划 543

15.2.1 游戏中用到的主要技术 544

15.2 滚屏游戏的技术 544

15.1.2 游戏的准备工作 544

15.2.2 滚屏游戏的驱动方式 545

15.2.3 进度条技术 547

15.3 滚屏游戏的架构 549

15.3.1 程序的总体架构 549

15.3.2 程序的类结构 550

15.4 滚屏游戏的实现 552

15.4.1 地图绘制的实现 552

15.4.2 碰撞检测 554

15.4.3 键控处理的实现 556

15.4.4 滚屏的实现 558

15.4.5 主要人物(玛丽)的实现 560

15.4.6 乌龟的实现 568

15.4.7 菜单的实现 569

15.4.8 游戏的主Canvas类的实现 572

15.4.9 游戏主Manager类的实现 574

15.5 滚屏游戏的优化和注意点 577

15.5.1 游戏中屏幕绘制技术的优化 577

15.5.2 游戏中新对象的产生和垃圾收集 578

15.5.3 游戏优化中时间、空间的权衡 578

15.5.4 游戏中关于来电挂起和恢复处理的注意点 579

15.6 本章小结 580

第16章 网络游戏设计——网络对战扑克 581

16.1 网络游戏客户端的设计实现 581

16.1.1 程序的设计 581

16.1.2 程序的架构 582

16.1.3 程序的实现 583

16.2.1 程序的设计 599

16.2 网络游戏服务器的设计实现 599

16.1.4 程序的优化 599

16.2.2 程序的架构 600

16.2.3 程序的实现 600

16.3 本章小结 608

第17章 3D迷宫游戏设计与实现 610

17.1 迷宫游戏的策划和准备工作 610

17.1.1 3D游戏开发概述 610

17.1.2 游戏的策划 611

17.1.3 游戏开发的准备工作 612

17.2 迷宫游戏的架构 612

17.2.1 游戏的线程 613

17.2.2 游戏的类结构 613

17.2.3 游戏的场景架构 614

17.2.4 游戏的流程 614

17.2.5 深度优先算法生成迷宫 616

17.3 迷宫游戏的实现 618

17.3.1 主类Maze3DMIDlet类 618

17.3.2 菜单列表MenuList类的实现 621

17.3.3 平面Plane类的实现 622

17.3.4 迷宫地图Maze类的实现 624

17.3.5 游戏画布MazeCanvas类的实现 632

17.3.6 设备属性Graphics3Dproperties类的实现 646

17.3.7 错误处理ErrorScreen类的实现 647

17.4 3D手机游戏的相关探讨 647

17.4.1 迷宫游戏的改善 648

17.4.2 3D手机游戏设计概要 648

17.4.3 3D绘制性能和游戏引擎 650

17.4.4 3D手机游戏的分类 651

17.5 本章小结 652