游戏开发论坛

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

关于在2D模式下绘图顺序的问题

[复制链接]

5

主题

13

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2008-8-28 10:30:00 | 显示全部楼层 |阅读模式
可能是我还是对引擎不太了解(文档还是不够详细,是不是因为没有源码的缘故?),昨天在看V18附带例子的时候,没有发现关于在2D状态下,绘制多幅图案情况下,绘图顺序的例子。是不是这部分由程序员在Draw里面自己控制?
另外昨天写了一个函数DoSomeThing(const Color3f& color) // 例子
{
   newColor = color * 0.75f ;
   。。。
}
结果说Color3f里面operator * 不支持 const Color3f&。
后来改成DoSomeThing(Color3f& color) 就通过了。
虽不是什么很重要的东西,但觉得总是怪怪的。
还有就是*Contorl += 的用法也觉得不太习惯。能不能提供一个类似Control->AddObject(something)的函数,使之完成同样的工作(是不是已经有了,我不知道?^_^)。(重载操作符看上去总是怪怪的)
顺便看了引擎中实现Property和DefEvent,感觉很强(要不就是自己水平太弱了:-))。因为C++语言本身不支持Property。
??铝苏饷炊啵?叮?褂?ont的例子,我下的版本中没有一个例子,是不是完全用Label?
题外话:看到国外和各平台出的大作,越发觉得我们现在的游戏水准不如国外,网游是不错,但是关键还是单机游戏的水平才能整体提升我们的游戏工业。
是不是盗版害得?

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2008-8-28 11:12:00 | 显示全部楼层

Re:关于在2D模式下绘图顺序的问题

Draw/Update是交给开发者自己控制的,Label是GUI引擎自动控制的

绘制字符即可以手动在Draw中绘制,也可以用Label自动控制。

手动绘制需要创建TileFont,然后DrawString/DrawFormat.

自动的直接Control+=new Label(x,y,string);就可以了,要修改时直接写Label::Caption.



使用传统方式,可以带来更大的灵活性,但是new/draw/update/in_event/out_event/delete五个状态你需要自己控制。
使用管理器方式,你只需要把new好的控件扔到控制器就可以了。由于管理器需要遍历控件列表,所以效能上是比不了传统方式,但它带来了更好的安全性和易用性。因为你不必自己去draw/update/in_event/out_event/delete。

draw:绘制
update:每一回合的刷新
in_event:接收各种事件,如鼠标、键盘、以及自定义信息
out_event:发送并调用各种事件,如按钮点击事件


增加Add与+=同样功能的建议已采纳,新版本将会有。
Color *问题会查看修正

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2008-8-28 11:14:00 | 显示全部楼层

Re:关于在2D模式下绘图顺序的问题

刚看了一下,最新版的sdk已经是operator * (const Color3f &v)了。

5

主题

13

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2008-8-28 11:20:00 | 显示全部楼层

Re: 关于在2D模式下绘图顺序的问题

Color3f operator * (float v){return(Color3f(r*v,g*v,b*v));}应该还没改过来。
不过还是谢谢楼主这么快就回答了问题。看头文件,找到了TileFont
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-4 16:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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