游戏开发论坛

 找回密码
 立即注册
搜索
查看: 11329|回复: 27

使用函数思想,避免多个模块之间的实时数据更新

[复制链接]

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2009-8-11 06:48:00 | 显示全部楼层 |阅读模式


有一个 logic 模块,一个scene模块。
如下所示,传统做法是实时地把坐标等数据从logic拉到scene里来。

class Scene
{
    Sprite sprt_player;

    <type> update()
    {
        sprt_player.put_pos (logic.monster.get_pos());
        sprt_player.put_animation_index (logic.player.get_action_index());
        sprt_player.put_animation_time (logic.player.get_action_time());
    }

    <type> render()
    {
        sprite_manager.render();
    }
}

现在我们采用另外一种思想:

在Sprite类中,删去 put_xxx()和get_xxx(),
并把Sprite类内部对属性xxx的访问修改为xxx()。
(在Sprite类中定义virtual <type> xxx()=0)
然后如下所示:

class Scene
{
    class SpritePlayer : Sprite
    {
        override <type> pos() { return logic.player.get_pos(); }
        override <type> animation_index() { return logic.player.get_action_index(); }
        override <type> animation_time() { return logic.player.get_action_time(); }
    }

    SpritePlayer sprt_player;

    <type> update()
    {
    }

    <type> render()
    {
        sprite_manager.render();
    }
}


362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2009-8-11 07:11:00 | 显示全部楼层

Re:使用函数思想,避免多个模块之间的实时数据更新

相关帖子:
http://bbs.gameres.com/showthread.asp?threadid=117721
(下称A帖)

两贴不同点:
A帖中用函数思想,处理的是表示层模块的内部,局部坐标和世界坐标的换算。
而本帖中,用函数思想,处理的是表示层和逻辑层之间的数据更新。

6

主题

45

帖子

45

积分

注册会员

Rank: 2

积分
45
发表于 2009-8-11 08:04:00 | 显示全部楼层

Re:使用函数思想,避免多个模块之间的实时数据更新

C的东西发VB区分明是捣乱。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2009-8-11 08:22:00 | 显示全部楼层

Re: Re:使用函数思想,避免多个模块之间的实时数据更新

Miu.C_KSNI: Re:使用函数思想,避免多个模块之间的实时数据更新

C的东西发VB区分明是捣乱。


我写的是伪代码。不分语言的。

270

主题

6442

帖子

6446

积分

论坛元老

Rank: 8Rank: 8

积分
6446
发表于 2009-8-11 08:46:00 | 显示全部楼层

Re: Re: Re:使用函数思想,避免多个模块之间的实时数据更新

instemast: Re: Re:使用函数思想,避免多个模块之间的实时数据更新



我写的是伪代码。不分语言的。



你不是说小优传奇很简单,几天就可以写出了,怎么不见你写一个出来?
你和MIU是一样的,只会纸上谈兵,MIU被我揭穿了,现在到你了。

1

主题

193

帖子

193

积分

注册会员

Rank: 2

积分
193
QQ
发表于 2009-8-11 09:28:00 | 显示全部楼层

Re:使用函数思想,避免多个模块之间的实时数据更新

那个。。。。。。。。。。
下次写伪代码的时候能不能稍微考虑下VB的格式。

1

主题

203

帖子

208

积分

中级会员

Rank: 3Rank: 3

积分
208
发表于 2009-8-11 10:19:00 | 显示全部楼层

Re:使用函数思想,避免多个模块之间的实时数据更新

火星发来贺电

270

主题

6442

帖子

6446

积分

论坛元老

Rank: 8Rank: 8

积分
6446
发表于 2009-8-11 12:07:00 | 显示全部楼层

Re:使用函数思想,避免多个模块之间的实时数据更新

理论家最伟大

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2009-8-11 14:59:00 | 显示全部楼层

Re: Re: Re: Re:使用函数思想,避免多个模块之间的实时数据

游戏之家站长: Re: Re: Re:使用函数思想,避免多个模块之间的实时数据更新




你不是说小优传奇很简单,几天就可以写出了,怎么不见你写一个出来?
你和MIU是一样的,只会纸上谈兵,MIU被我揭穿了,现在到你了。



你等着

11

主题

1238

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
发表于 2009-8-11 15:12:00 | 显示全部楼层

Re:使用函数思想,避免多个模块之间的实时数据更新

楼上要爆发了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-21 12:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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