游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3723|回复: 3

对HOHO的改进意见,请版主一定要进来看一下

[复制链接]

5

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2003-8-22 18:22:00 | 显示全部楼层 |阅读模式
  大家好,小弟最近用下载了HOHO,试用了一下,感觉不错。不过我发现HOOH少了一个很重要的功能,使它不适合开发大型的游戏。
  在hCommon.h模块中有一个LoadFromFile子函数,可以从文件中读取图象数据生成数据缓冲,但在hPlane2d.h中却没有使用这个缓冲的接口。只有从单个文件和ZIP压缩包中读取的LoadBitmapFromXXX。这在开发大型游戏时是很不利的,因为这类游戏通常有成千上万个图形,全放在硬盘中是不行的。放在压缩包中呢,我试过了,读取一个动作40帧也要近6秒,这会让你的游戏真的成为动画了。
  所以我就想把图片自己打包,这时问题了。打包好的图片没有办法加载到HOHO中去。虽然BITMAPX提供了一个GetSurface()函数,但我试过得到的这个指针没法正常使用,不论是GetDC(),还是Lock()者会导致异常。结果我只好用自己写的2d部分的代码,麻烦哦。
  希望sea能在Display接口中增加一个子函数,类似这样的 LoadBitmapFromBuffer(DWORD Width,DWORD Height,LPBYTE lpDataBuffer),可以使用标准的24位缓冲。
  这是我的一已愚见,希望sea兄参考。
                     杨晓天

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20356
QQ
发表于 2003-8-22 18:42:00 | 显示全部楼层

Re:对HOHO的改进意见,请版主一定要进来看一下

LP_BITMAPX CreateBitmap( int nWidth, int nHeight, bool bIsAlpha=false );
这支函式能创建一个空白的LP_BITMAPX,然后通过:
LP_BITMAPX::GetBuffer()
可以获得缓冲数据的指针,这时候你就可以将数据写入,当然这里使用的是16Bit的格式。

另外,你说的不无道理,LoadBitmapFromBuffer()我会在最近一次更新中加入,不过这里的Buffer就需要你自己来组织了。

5

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
 楼主| 发表于 2003-8-22 19:28:00 | 显示全部楼层

Re:对HOHO的改进意见,请版主一定要进来看一下

太好了,谢谢了。对了,GetBuffer()用完后,后怎么释放呢?

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20356
QQ
发表于 2003-8-22 20:10:00 | 显示全部楼层

Re:对HOHO的改进意见,请版主一定要进来看一下

LP_BITMAPX不需要手动释放,图形设备释放的时候会自动释放。

或者也可以通过GetGraphics()->RemoveBitmapX( LP_BITMAPX ) 来释放。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-6-4 07:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表