游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1134|回复: 0

哈哈 发现OGRE小小错误,

[复制链接]

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2004-8-6 01:27:00 | 显示全部楼层 |阅读模式
OGRE中类TextBoxGuiElement是一个英文输入的类
在这类中
void TextBoxGuiElement::processEvent(InputEvent* e)函数中
这段

  if (font->getGlyphAspectRatio(newKey)*mTextArea->getCharHeight() + mTextArea->getWidth() < getWidth() - mTextArea->getSpaceWidth())
                                        {
                                            mCaption += newKey;
                                                setCaptionToTextArea();
                                        }

就是说 如果文本区域+下一个字符>显示区域  就不会输入了,
不过就算删除字符文本区域也不会减少的 因为这里
void TextAreaGuiElement::updateGeometry()中的
if (getWidth() < largestWidth)
                        setWidth(largestWidth);
    说明 文本区域的宽度,只能增加不能减少。就算删除字符也不能缩小文本区域的长度,也就是说删除字符后文本区域长度不减少,导致就算删除了字符也不能再输入了,应该去掉if (getWidth() < largestWidth)这个才能用TextBoxGuiElement
                       
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-14 17:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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