例
有一个 logic 模块,一个scene模块。
如下所示,传统做法是实时地把坐标等数据从logic拉到scene里来。
class Scene
{
Sprite sprt_player;
lt;typegt; 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());
}
lt;typegt; render()
{
sprite_manager.render();
}
}
现在我们采用另外一种思想:
在Sprite类中,删去 put_xxx()和get_xxx(),
并把Sprite类内部对属性xxx的访问修改为xxx()。
(在Sprite类中定义virtual lt;typegt; xxx()=0)
然后如下所示:
class Scene
{
class SpritePlayer : Sprite
{
override lt;typegt; pos() { return logic.player.get_pos(); }
override lt;typegt; animation_index() { return logic.player.get_action_index(); }
override lt;typegt; animation_time() { return logic.player.get_action_time(); }
}
SpritePlayer sprt_player;
lt;typegt; update()
{
}
lt;typegt; render()
{
sprite_manager.render();
}
}
锐亚教育,游戏开发论坛|游戏制作人|游戏策划|游戏开发|独立游戏|游戏产业|游戏研发|游戏运营| unity|unity3d|unity3d官网|unity3d 教程|金融帝国3|8k8k8k|mcafee8.5i|游戏蛮牛|蛮牛 unity|蛮牛
- 还没有人评论,欢迎说说您的想法!