游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3346|回复: 5

若干小问题

[复制链接]

16

主题

31

帖子

39

积分

注册会员

Rank: 2

积分
39
发表于 2011-4-15 09:27:00 | 显示全部楼层 |阅读模式
问题1:FlowObject中是否可以直接获取当前窗口SIZE(除全局变量)
问题2:TileAnime *ani;
  .....
  ani-&gtlay(false);
Flow1:raw()
{
  ani.Draw(0,0);
}
ani不会自动销毁,一直画最后一贞;

问题3:一张不带ALPHA通道的黑色背景图,如何透明输出?
问题4:TextButton设置按钮字体的方法是哪个?自带字体有哪些?
问题5:如何隐藏系统鼠标?(sii结构中有选择,但是Flow中如何更改)

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66484
QQ
发表于 2011-4-15 10:18:00 | 显示全部楼层

Re:若干小问题

1.GetCanvasWidth/GetCanvasHeight,GetScreenWidth/GetScreenHeight,一般用前者,因为屏幕分辨率与可绘图区分辩率不一定一样。

2.TileAnime有OnPlayEnd事件,在此事件中调用Stop即可。

3.不带Alpha的图,要看情况的。有的是光照图或阴影图,则修改混合方式即可。因为黑色是0,0,0光照或减暗不会有任何效果。如果黑色是不显示的颜色,则需要手动生成ALPHA通道。

4.所有GUI对象均有DrawFont属性,修改即可。引擎不自带字体,使用操作系统字体,字符名称设置和普通软件设置字体一样。见sii.graphics.fnt

5.Application中有Win属性,Win属性中有SystemCursor属性,设为false即可

16

主题

31

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2011-4-15 10:28:00 | 显示全部楼层

Re:若干小问题

非常感谢

16

主题

31

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2011-4-15 10:37:00 | 显示全部楼层

Re:若干小问题

ani-&gtlay(false);   
SetEventCall(ani->OnPlayEnd,this,OnEnd);

void OnEnd(TileAnime* an)
{
an->Stop(); //无效,而且变成循环播放了;
// ani->Stop();  //也无效,也变成循环播放了;
               
}

16

主题

31

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2011-4-15 10:37:00 | 显示全部楼层

Re:若干小问题

等待中

代码就是在示例的TitleAnime中做的修改

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66484
QQ
发表于 2011-4-15 10:50:00 | 显示全部楼层

Re:若干小问题

哎!看来这是一个BUG

将TileAnime.H中的最后几个Draw中的Update()前都加上if(PlayStatus)吧(新版会直接加到Update()本体中),即如下:

                void Draw(float l,float t){TileGroup:raw(CurFrame,l,t);if(PlayStatus)Update();}                         ///<绘制当前动画
                void Draw(float l,float t,float w,float h){TileGroup::Draw(CurFrame,l,t,w,h);if(PlayStatus)Update();}     ///<绘制当前动画,并指定缩放比

                template<typename T> void Draw(const RectScope2<T> &rs)
                {
                        TileGroup::Draw(CurFrame,rs);
                        if(PlayStatus)Update();
                }

                void Draw(DrawArray *da,float l,float t){TileGroup::Draw(da,CurFrame,l,t);if(PlayStatus)Update();}                         ///<绘制当前动画
                void Draw(DrawArray *da,float l,float t,float w,float h){TileGroup::Draw(da,CurFrame,l,t,w,h);if(PlayStatus)Update();}     ///<绘制当前动画,并指定缩放比
               
                template<typename T> void Draw(DrawArray *da,const RectScope2<T> &rs)
                {
                        TileGroup::Draw(da,CurFrame,rs);
                        if(PlayStatus)Update();
                }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-6 01:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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