设为首页收藏本站喵玉殿官方微博

 找回密码
 少女注册中
搜索
楼主: drzzm32

[编程算法] 【11.22修改】AVG游戏引擎制作

 火.. [复制链接]
 楼主| 发表于 2014-9-8 16:28:53 来自手机 | 显示全部楼层
本帖最后由 drzzm32 于 2014-9-8 16:36 编辑
lrdcq 发表于 2014-9-8 15:46
@drzzm32  AVG引擎我勉强也算接触过(http://lrdcq.com/右下角的伪春菜系统即是一个超级精简的AVG引擎),A ...


这个目的是学习。。。
当然,我说了,逻辑都以场景编号确定,然后通过选择进行跳转。如果没选择,就直接顺序执行。

实际我这个是资源定义语句。
不能说是脚本。
这个只是一个想法,自己的想法。

(其实是ThAcAV的准备)
回复

使用道具 举报

发表于 2014-9-8 16:37:45 | 显示全部楼层
drzzm32 发表于 2014-9-8 16:28
这个目的是学习。。。
当然,我说了,逻辑都以场景编号确定,然后通过选择进行跳转。如果没选择,就直 ...

是的,理解文件脚本是顺序执行,但是[背景/音乐]和[立绘]的调用呢?
还是说是一个场景仅触发里面声明的[背景/音乐]和[立绘]就可以了

另外,是否考虑添加character类(人物标签)来规整化素材
回复

使用道具 举报

 楼主| 发表于 2014-9-8 17:14:57 来自手机 | 显示全部楼层
lrdcq 发表于 2014-9-8 16:37
是的,理解文件脚本是顺序执行,但是[背景/音乐]和[立绘]的调用呢?
还是说是一个场景仅触发里面 ...

怎么说呢,那几个都是场景的成员
第一次是设定,之后就是一个状态标记,表明路径没变,保持状态。。。
大概是状态机的感觉
回复

使用道具 举报

发表于 2014-9-8 18:06:50 | 显示全部楼层
本帖最后由 ofz 于 2014-9-8 18:18 编辑
drzzm32 发表于 2014-9-8 17:14
怎么说呢,那几个都是场景的成员
第一次是设定,之后就是一个状态标记,表明路径没变,保持状态。。。
...

我觉得像 @lrdcq 所说的,把资源和逻辑分开,在复杂的项目里确实是更好的选择(没必要重复的东西就不要重复,这就是所谓的 DRY (Don't Repeat Yourself) 原则哦

如果加一个角色的定义,还能顺便加上表情和动画什么的

--示例
开始定义角色 灵梦 /imgs/reimu  --文件夹路径
    表情 默认 default.jpg --这行可以不写
    表情 笑 smile.jpg
    表情 怒 angery-1.jpg angery-2.jpg angery-3.jpg --多张图片将变为动画
结束定义角色

--引用的时候
开始定义场景
    开始定义文字
        你这妖怪快给赛钱!
        选择 给 xx
        选择 不给 xx
    结束定义文字
    角色 灵梦 怒 (100,100)
结束定义场景

你觉得如何?

点评

实际,嗯,不错啊。我完全可以在代码层处理。 这个地址有两个作用,即资源加载路径和资源编号。。。  发表于 2014-9-8 19:45
回复

使用道具 举报

发表于 2014-9-8 20:04:46 | 显示全部楼层
话说回来,如果采用资源定义的的方式调用数据,作为标签式脚本(语言),最好不要用“资源编号”而是使用关键字(KEY)或者ID(比如ofz上面使用“灵梦”作为关键字调用资源)。
如果觉得不好处理的话,处理脚本时可以正则为xml再来用xml相关程序组件来处理就可以了。本来现在这个结构已经很类似于xml了(感觉意外的方便?

点评

ofz
恩,这么一说确实很像 jade模板 到 html 的变换呢w  发表于 2014-9-8 20:40
回复

使用道具 举报

 楼主| 发表于 2014-9-8 20:24:08 来自手机 | 显示全部楼层
lrdcq 发表于 2014-9-8 20:04
话说回来,如果采用资源定义的的方式调用数据,作为标签式脚本(语言),最好不要用“资源编号”而是使用关 ...

我本来就是这样的。。。用文件路径引用。。。
但是在代码内部肯定要用资源编号。
嗯,资源编号是私有成员。
然后场景编号,则是逻辑控制核心。

点评

但是哈希表的话做函数还是比较麻烦的。  发表于 2014-9-8 21:01
ofz
给人看的代码尽量用上有意义的“名字”,机器内部只需要没意义的“编号”就好了,我是这么理解的。不过如果是像 javasript 这样的 动态类型语言 就无所谓了w(或者用 哈希表 也可以的  发表于 2014-9-8 20:46
回复

使用道具 举报

发表于 2014-9-9 00:33:17 | 显示全部楼层
专精于lua设计弹幕的帮顶

点评

加油啊!JAVA可是个好♂东♂西!  发表于 2014-9-9 23:06
主程试图用java写引擎和编译器,目前第七个版本,有生之年系列  发表于 2014-9-9 19:23
快自制引擎吧少年~爽死你!  发表于 2014-9-9 13:11
回复

使用道具 举报

 楼主| 发表于 2014-9-9 23:07:04 | 显示全部楼层
@白色睡帽 @c3ctd @Capt.Murasa @ofz @lrdcq @八咫乌空
来看看,我把数据结构敲出来了,大概是树。
回复

使用道具 举报

发表于 2014-9-10 08:57:44 | 显示全部楼层
本帖最后由 Capt.Murasa 于 2014-9-10 09:12 编辑

雖然意義不大,但留意到程式碼:
   Public Sub Init(ByVal InName As String, ByVal InPath As String, ByVal InIndex As Integer)            Name =            InName : Path = InPath : Index = InIndex     
   End Sub

可以寫成為:
Sub New(ByVal InName As String, ByVal InPath As String, ByVal InIndex As Integer)
Name = InName : Path = InPath : Index = InIndex
Setting
End Sub
回复

使用道具 举报

 楼主| 发表于 2014-9-10 10:23:09 来自手机 | 显示全部楼层
Capt.Murasa 发表于 2014-9-10 08:57
雖然意義不大,但留意到程式碼:
   Public Sub Init(ByVal InName As String, ByVal InPath As String, By ...

我本来想这样写的,但是有类嵌套,外部类实例化内部也会实例化,但是构造函数的参数传递就不好办……

具体的数据处理还是要看自己……意义不大……么?
这样用类,到时候直接实例化为数组,一下子很简单了

点评

暴力点,问题不会变大,而且也只是参考  发表于 2014-9-10 13:58
把Name, Path, Index 等等的設定為屬性(Property)不行嗎? 或許我還沒有明你所遇到的問題  发表于 2014-9-10 13:37
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 少女注册中

本版积分规则

合作与事务联系|无图版|手机版|小黑屋|喵玉殿

GMT+8, 2025-10-31 07:30

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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