书籍详情

J2ME手册游戏开发技术详解

J2ME手册游戏开发技术详解

作者:李振鹏, 龚剑编著

出版社:清华大学出版社

出版时间:2006-03-01

ISBN:9787302126010

定价:¥69.00

购买这本书可以去
内容简介
本书分为4篇:起步篇、基础篇、进阶篇和实战篇,循序渐进地讲解了如何使用J2ME开发无线应用。本书详细讲解了J2ME的图形用户界面、游戏线程、记录存储、通用联网架构等基础知识,还在以往MIDP 1.O的基础上增补了2.0的新内容,并对这些新技术加以详细介绍,这些技术包括高级用户界面的新组件、 GameAPI游戏开发包、新增网络API和Push技术及3D技术。在介绍完基础知识之后,本书最后介绍了手机游戏的精彩实例,包括单机游戏、联网游戏、3D游戏、滚屏游戏等,还介绍了游戏的开发理念和移植技术。 本书内容全而,实例丰富,易于理解,为读者更好地使用这些技术和标准进行工作而提供了很好的指导。本书既有简单易懂的代码片断,也有大量实际可用的应用系统实例,为读者迅速掌握J2ME的核心API类库及无线应用系统的开发过程提供了很好的参考,是从事无线应用系统开发人员的优秀教材和参考书籍。
作者简介
  李振鹏,长期从业于开发无线增值应用,包括BREW/J2ME。已经有十余款手机应用被移动和联通采用,其中不乏佳作(开发过超级玛丽,雷电、魂斗罗、英雄传说等经典游戏)。这些游戏包括单机版和在线版。对于3D游戏也有丰富的开发经验,曾经参与3D游戏引擎的开发。精通游戏开发的流程和编码,多次与韩国游戏厂商进行合作和交流。曾经在手机游戏制作公司担任项目经理。目前在威盛电子担任软件工程师职务。
目录
第1篇  起步篇
第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.2  安装前的准备工作    34
2.1.3  WTK 2.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  WTK的模拟器使用    62
2.5.1  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篇  基础篇
第4章  高级用户界面    92
4.1  高级用户界面设计概述    92
4.1.1  MIDP用户界面概述    92
4.1.2  用户界面API的分类    93
4.1.3  高级用户界面的类层次    94
4.2  用户界面的管理    95
4.2.1  Display类    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.2  通用连接框架Generic Connection Framework    269
7.1.3  GCF的层次结构    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  播放器的使用    297
8.3.1  播放简单音调    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篇  进阶篇
第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  游戏的屏幕:GameCanvas类    310
9.2.1  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章  游戏主要编程技术    347
10.1  游戏的线程    347
10.1.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  用点、线、面构造复杂形体    378
11.2.1  基本原则    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  多面体的外观属性    398
11.3.1  类Apperance概述    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章  J2ME游戏开发技巧    470
12.1  目标设备的约束    470
12.1.1  受限的处理器    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
第4篇  实战篇
第14章  单屏游戏的设计与实现    496
14.1  游戏的策划以及架构    496
14.1.1  单屏幕手机游戏概述    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.1.2  游戏的准备工作    544
15.2  滚屏游戏的技术    544
15.2.1  游戏中用到的主要技术    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.1.4  程序的优化    599
16.2  网络游戏服务器的设计实现    599
16.2.1  程序的设计    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
猜您喜欢

读书导航