`
fanjava
  • 浏览: 235869 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

MIDP图形设计3

阅读更多
  二. 示例:九宫格(TICTACTOEMIDLET)

  1、设计

  概述

  这个示例应用程序是一个简单的MIDlet,允许游戏者与MIDlet程序之间玩一种称为九宫格的人机游戏。这个例程说明:

   使用高级和低级用户界面组件

   在多显示屏幕之间进行切换

   处理简单的命令

   动态适配显示尺寸
 
   处理键盘事件

  游戏者首先选择使用哪种棋子(用圆和叉表示),然后开始游戏。游戏者和MIDlet谁是先手是随机决定的。每走一步棋之后,程序都要检查游戏状态,判断游戏是否已经结束。游戏的几种可能结果是:游戏者赢,MIDlet程序赢,或者平局。在应用程序运行期间,双方的得分都能显示出来。游戏者可以随时开始新游戏或者退出游戏。

  图2:所示的屏幕快照是游戏中的MIDlet用户界面。


图2:游戏屏幕的先后顺序

  2、九宫格MIDlet

  下面是九宫格MIDlet的类模式图:


图3:九宫格MIDlet类图

  当MIDlet启动方法startApp()时,将创建闪烁屏幕和第一个游戏屏幕(ChoosePieceScreen)。闪烁屏幕显示4秒之后,第一个游戏屏幕开始显示。ChoosePieceScreen让游戏者选择使用哪种棋子(圆还是叉)。当游戏者做出选择之后,他可以使用OK键确认。这会使ChoosePieceScreen回调主MIDlet的choicePieceScreenDone()方法。

  ChoosePieceScreen是使用高级应用编程接口List类实现的。


图4:ChoosePieceScreen是一个高级用户界面List子类

  choosePieceScreenDone()回调创建并显示下一个屏幕,这个屏幕在此应用程序中作为游戏的主屏(GameScreen)。

  每当轮到游戏者下棋的时候,游戏者使用GameScreen的箭头键和Select按钮来选择想要走的空格。每一回合之后,应用程序都会检查游戏的状态,检查其是否符合游戏结束条件并显示游戏结果。游戏者通过点击GameScreen的Quit命令结束游戏,或使用New命令开始新一轮游戏。Quit(结束)命令调用TicTacToeMIDlet的quit()方法,然后MIDlet就会调用destroyApp()方法来终止整个MIDlet程序。

  游戏程序逻辑被封装在一个单独的Game类中。本文只关注MIDlet的图形设计,而对游戏程序逻辑不作深入探讨。如果要与现有的applet Java程序作比较,请参阅http://java.sun.com/applets/jdk/1.0/demo/TicTacToe/TicTacToe.java 和http://java.sun.com/products/jfc/tsc/articles/tictactoe/index.html 中的游戏程序逻辑。
GameScreen通过使用低级Canvas和Graphics类来实现。它使用Canvas、Image和Graphics对象来绘制图形。
GameScreen首先初始化基于画布尺寸的显示面板。这可让MIDlet能够运行在不同显示屏幕的移动设备上。在本例中还使用了一个Image对象用来表示游戏面板。然后GameScreen根据游戏者在ChoosePieceScreen中所做的选择为游戏者和MIDlet分配棋子。游戏然后进行初始化(包括随机决定谁是先手),然后游戏就开始了。
为了使GameScreen能够被移植,MIDlet的键盘代码必须被映射到游戏动作上,如:Up、Down、Left、Right和Fire,用于具有不同键盘的移动设备。每当一个键被按下的时候,keyPressed()方法就会判断这是一个方向键还是一个Fire/Select键。如果按下的键是方向键,光标就会相应地移动,帮助游戏者可视化地选择一个空格放入棋子。Select键用来选择一个空格放入棋子。如果探测到满足游戏结束的条件,就会显示一条信息宣布游戏的获胜者和本轮游戏的得分。(见下图)


图5: GameScreen 是一个低级 Canvas(画布)子类
<!-- google_ad_client = "pub-3051157228350391"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="0045736275"; //--> <iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-3051157228350391&amp;dt=1120830223640&amp;format=728x90_as&amp;output=html&amp;channel=0045736275&amp;ad_type=text_image&amp;cc=551&amp;u_h=768&amp;u_w=1024&amp;u_ah=740&amp;u_aw=1024&amp;u_cd=32&amp;u_tz=480&amp;u_his=13&amp;u_java=true" frameborder="0" width="728" scrolling="no" height="90" allowtransparency="65535"></iframe>
分享到:
评论

相关推荐

    Java手机游戏编程之MIDP图形设计篇

    ### Java手机游戏编程之MIDP图形设计篇 在探讨Java手机游戏编程中关于MIDP(Mobile Information Device Profile)图形设计的知识点时,我们首先需要理解MIDP及其在移动设备上的应用背景。MIDP是Java ME(Micro ...

    MIDP图形

    **MIDP图形技术在手机游戏中的应用** MIDP(Mobile Information Device Profile)是Java ME(Micro Edition)的一个子集,主要用于开发移动设备上的应用程序,尤其是早期的智能手机和平板电脑。在MIDP框架下,图形...

    MIDP图形编程简介.pdf

    **MIDP图形编程简介** MIDP(Mobile Information Device Profile)是Java ME(Micro Edition)的一部分,用于开发在移动设备和嵌入式系统上的应用程序,特别是早期的智能手机和平板电脑。这个平台提供了一套丰富的...

    Midp2Exe Midp2Exe

    Java ME(Midp)是Java平台的一个子集,设计用于资源有限的移动设备,如早期的智能手机和平板电脑。它包含了Java应用程序接口(API)和一个运行环境,使开发者能够创建跨平台的移动应用。然而,由于并非所有计算机...

    《MIDP手机游戏设计》

    3. **图形与动画**:在MIDP平台上,开发者需要使用低级别的图形API来创建游戏画面。`Graphics`类是绘制图形的核心,通过它来绘制点、线、形状和文本。实现游戏中的动画通常涉及到定时器和帧率控制,以及巧妙地更新和...

    深入MIDP2.0(2) - CLDC与MIDP工具类别

    3. **网络编程**:MIDP2.0引入了JSR 82,即Java Bluetooth API,以及对Wi-Fi连接的支持,允许开发者编写可以利用无线通信的应用。 4. **数据存储**:MIDP2.0提供了Record Management System(RMS),一种简单的...

    高效MIDP编程中文版

    2. **用户界面设计**:MIDP提供了一套有限的用户界面组件,如表单、按钮和文本字段。书籍会详细讲解如何使用这些组件构建简洁且功能丰富的用户界面,并讨论适配不同屏幕尺寸和方向的策略。 3. **事件处理**:MIDP中...

    midp2.0教程

    MIDP2.0(Mobile Information Device Profile 2.0),作为Java ME(Java Micro Edition)的一部分,专为资源受限的移动设备设计,如手机、PDA等,提供了标准的Java API集,使得开发者能够构建丰富的应用和服务。...

    一个MIDP程序设计,王森主编,分享了!!

    4. **用户界面设计**:讲解如何使用MIDP的图形组件创建用户友好的界面,包括布局管理、事件处理和用户交互。 5. **数据管理**:可能包括本地数据存储,如RecordStore API,用于在设备上保存应用程序数据。 6. **...

    MIDP和游戏用户界面

    - **图像透明性**:不支持像素级别的透明度,影响图形叠加的效果。 - **音效**:虽然提供了音频播放,但在音效质量上有限制。 - **精细输入**:输入方法受限,可能无法满足复杂操作的需求。 - **输入限制**:对输入...

    MIDP 2.0 TheGame API

    **MIDP 2.0 The Game API** 是一个针对移动设备的游戏开发接口,它是Java Micro Edition (JME) 的一部分,特别设计用于在功能受限的移动设备上创建丰富的游戏体验。MIDP 2.0是MIDP平台的一个重要升级,提供了更多的...

    MIDP1.0开发者指导

    5. **受限的多媒体支持**:虽然相比后来的版本,MIDP1.0对音频和图像的支持较为有限,但仍能实现基本的媒体播放功能。 6. **安全模型**:MIDP1.0有一套安全机制,限制了应用程序的权限,防止恶意软件。 **学习MIDP...

    Java移动通信程序设计-J2ME MIDP

    3. **用户界面(UI)设计**:使用MIDP提供的Canvas或Form组件,设计简单或复杂的用户界面。这包括按钮、列表、文本字段等元素的使用。 4. **事件处理**:理解如何处理用户输入,如点击按钮或选择列表项,并相应地...

    midp2.0 GameAPI实现

    在Java ME(J2ME)平台上,MIDP(Mobile Information Device Profile)是为移动设备设计的一个精简版Java API。MIDP 2.0是这个平台的一个重要升级,它引入了对游戏开发的强大支持,主要体现在Game API上。这个API...

    j2me的midp2.0所有源代码

    1. 用户界面:MIDP 2.0提供了一个轻量级的用户界面框架,包括Canvas类,它是绘制图形的基础;Form类,用于显示文本和用户输入;Item类,如ChoiceGroup和TextBox,支持用户交互。 2. 网络支持:MIDP 2.0引入了对HTTP...

    MIDP 图形编程简介(中文)

    以一个简单的小游戏为例子,比较全面的介绍了MIDP图形编程方法。 包括以Screen为基础的高层界面和以Canvas为基础的底层界面开发都有涉及 目 录 1 引言...................................................... 5 ...

    高效MIDP编程 学习MIDP

    - **MIDP**: Mobile Information Device Profile 的缩写,是Java ME的一部分,专为移动设备设计的标准平台,支持创建轻量级的应用程序和服务。 - **目标**: 本指南旨在提升MIDP应用程序的效率,涵盖执行速度、JAR...

    一个MIDP俄罗斯方块游戏的设计和实现.rar

    1. MIDP图形库:MIDP提供了Graphics类,用于进行基本的2D绘图操作,如画线、填充矩形、绘制文本等。我们需要用它来绘制游戏区的背景、方块、得分等元素。 2. 状态机:为了管理游戏的不同状态(如开始、暂停、游戏...

Global site tag (gtag.js) - Google Analytics