怎样在程序开始加入一个LOGO展示

胖鸟不会飞 2008-02-25 11:39:17
先建立了一个工程,再建立了一个Canvas 类的 MIDP MIDlet 编好游戏程序后
想在进入程序的开始加一个展示LOGO的代码,延时显示LOGO几秒钟,然后开始游戏(是在哪个地方加啊??构造函数?paint()??)。试了好多次都不成功,哪个大侠指点一哈。谢谢。 是不是需要Thread.currentThread() .sleep(2000) ; 不知道在主线程中延时的用法是怎么用的
...全文
195 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
胖鸟不会飞 2008-02-28
  • 打赏
  • 举报
回复
哎还是没试出来 ~_~ 本以为会像MFC编程中的sleep()函数那样简单
算了 我已经改成了用按键响应的LOGO展示 prince58说的延时方法大概要建立多线程实现。。那个我基本就没怎么学
quan851 的Alert就更不清楚了 毕竟没什么基础 寒假才开始学的J2ME 之前连java也没学过 只会点c++ 不过能做出个
在我手机上运行的小游戏感觉已经很不错了
再深点的东西就以后有机会在学了 开学就要开始忙考研的事了
谢谢了 prince58 quan851
prince58 2008-02-27
  • 打赏
  • 举报
回复
楼上的用ALERT来显示LOGO,我不太清楚这个,不知道能不能显示图片吗?能不能显示动画?

用我上面的方法是可以显示动画的。
quan851 2008-02-27
  • 打赏
  • 举报
回复
先显示LOGO,然后就进入主程序显示。在MIDlet主类加个ALERT 对象就行了。
quan851 2008-02-27
  • 打赏
  • 举报
回复
使用Alert就可以了。
setTimeout(int time)。设置LOGO显示多少时间。单位是豪秒计算。
Display.setCurrent(Alert, Displayable)。
prince58 2008-02-26
  • 打赏
  • 举报
回复
public class Game extends Canvas implements Runnable

static int _state = 0;
static int _counter;

public Game() { //这是Canvas 类的 构造函数
setFullScreenMode(true); //全屏函数
jbInit();//初始化参数
}

public void run()

 _state = 0;//这里自己设,这里我假设0是初始化,9是退出游戏,1到8是游戏的某个状态
 _counter = 0; //付初值

while (_state != 9)

try {
repaint();
serviceRepaints();
Thread.sleep(50);
} catch (InterruptedException e) {
}

 }
//在这里destroyApp();


public void paint(Graphics g)


switch (_state)

case 0: Init_Update(); break; //初始化游戏
case 1: 和1状态相应的功能; break;
....
case 9: 退出游戏;break;




private static void Init_Update()

if(_counter == 0)
{
try
{
logo = Image.createImage("/logo.png");
}
catch (Exception ex)
{
}
}

if (_counter >0){
_g.setColor(0x00000000);
_g.fillRect(0, 0, 屏幕宽, 屏幕高);
_g.drawImage(logo,屏幕宽>>1, 屏幕高>>1,Graphics.HCENTER|Graphics.VCENTER); //将LOGO画到屏幕中间

}
_counter++;

if (_counter == 15 )
{
logo = null;
_counter = 0;
_state = 1; //当_counter==15时转到下一个状态
}


。。。。。。



这样够清楚了吧,再不行就好好补习一下基础了,呵呵。
prince58 2008-02-25
  • 打赏
  • 举报
回复
大概的意思就是这样,你可以自己实现。
prince58 2008-02-25
  • 打赏
  • 举报
回复
sleep(50)

50 - 80 就可以了

然后在paint()函数初始化的时候画LOGO,

可以这样做:

protected void paint ( Graphics g )
{
.....
switch ( m_gameStatus )
{
case GAME_STATE_LOGO:
if (count<15) //如查觉得LOGO显示的时间短了,就把15调大些
{
//画LOGO
count++;
}
break;
case:
......

}
}
胖鸟不会飞 2008-02-25
  • 打赏
  • 举报
回复
switch ( m_gameStatus )
{
case GAME_STATE_LOGO:
......

这是自己定义的么??用来判断条件进行不同的绘图? 我后面用的是if句来判断的,所以就没用你的SWITCH ,该成下面这样,但还是没反应,直接进入了后面的绘图程序。

public Game() { //这是Canvas 类的 构造函数
setFullScreenMode(true); //全屏函数
try {
logo = Image.createImage("/logo.png");
Images.init();//初始化图片常量
jbInit();//初始化参数
Thread.currentThread() .sleep(50) ;
}
catch(Exception e) {
e.printStackTrace();
}
}

protected void paint(Graphics g) { //这是paint的前面的绘图函数


if (count < 15) { //如查觉得LOGO显示的时间短了,就把15调大些
//画LOGO

g.drawImage(logo, 0,0,Graphics.TOP | Graphics.LEFT);


count++;
}

怎么这个绘图函数绘不出图???该怎么改
版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会花时间作出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工作的团队 - 或许是同时工作在同一个文件!- 你就会明白为什么一个好的系统需要管理潜在的混乱。   什么是 TortoiseSVN?   TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。   某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提供程序构建工具。不过 Subversion 并不是这样的系统;它是一个通用系统,可以管理任何类型的文件集,包括源代码。   TortoiseSVN 的历史   在2002年,Tim Kemp 发现 Subversion 是一个很好的版本控制系统,但是没有好的图形化客户端,创建一个作为 Windows 外壳集成的 Subversion 客户端的创意来自 TortoiseCVS,一个非常类似的 CVS 客户端。   Tim 学习了 TortoiseCVS 的源代码,将其作为 TortoiseSVN 的基础,然后开始这个项目,注册了域名 tortoisesvn.org,并将源代码提交到网上。此时 Stefan Küng 正在寻找一个好的免费版本控制系统,他发现了 Subversion 和 TortoiseSVN,由于 TortoiseSVN 还不能够使用,他加入了这个项目并开始编程。很快他便重写了大多数代码,并且开始添加命令和特性,此时,最初的代码都已经不复存在了。   随着 Subversion 越来越稳定,吸引了越来越多的用户开始使用 TortoiseSVN 作为他们的 Subversion 客户端。用户群增长迅速(每天都持续增长)。Lübbe Onken 提供了许多漂亮图标和 TortoiseSVN 的 logo,细心照料网站并且管理翻译。   TortoiseSVN 的特性   是什么让 TortoiseSVN 成为一个好的 Subversion 客户端?下面是一个简短的特性列表。   外壳集成   TortoiseSVN 与Windows 外壳(例如资源管理器)无缝集成,你可以保持在熟悉的工具上工作,不需要在每次使用版本控制功能时切换应用程序。   并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展开发,因此在其他程序可能集成的并不完整,例如重载图标可能不会显示。   重载图标   每个版本控制的文件和目录的状态使用小的重载图标表示,可以让你立刻看出工作副本的状态。   Subversion 命令的简便访问   所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。   因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性:   目录版本控制   CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个“虚拟”文件系统,可以追踪整个目录树的修改,文件和目录都是版本控制的,结果就是可以在客户端对文件和目录执行移动和复制命令。   原子提交   提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修改。   版本控制的元数据   每个文件和目录都有一组附加的“属性”,你可以发明和保存任意的键/值对,属性是版本控制的,就像文件内容。   可选的网络层   Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制,Subversion 的“高级”服务器是 Apache 网络服务器的一个模块,使用 HTTP 的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性和交互性方面很大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏览等等。也有一个轻型的,单独运行的 Subversion 服务器,这个服务器使用自己的协议,可以轻松的用 SSH 封装。   一致的数据处理   Subversion 使用二进制文件差异算法展

13,097

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧