标题: [求助]关于吉里吉的外部定义的问题
立嘉
会员
Rank: 1



UID 35
精华 0
积分 13
帖子 2
阅读权限 5
注册 2007-1-22
 
发表于 2007-2-7 14:58  资料  短消息  加为好友 
[求助]关于吉里吉的外部定义的问题

小弟最近在制作一个AVG游戏,但是里面的特效颇多。
而且需要多次反复的定义,这样对代码量是一个不小的考验。
然后在网上发现了这个程序范例:kagex20060525
里面的范例中使用倒了外部定义这一做法。
仔细观察过后觉得非常的有用。
但是代码完全是日语,看不懂所以发出来下分析下:
如果有高手可以指点下小弟倍感荣欣。


;----------------------------程序主题部分-----------------------------
*start|スタート

[linemode mode=page]

; 環境は初期化しておかないと状態の整合が取れない場合がある
[init]
[道路]

【あい/ほげげ】名前処理
[あい 制服 中]キャラクタ出現
[あい 左]キャラクタ移動(左)
[あい 奥]キャラクタレベル変更(奥)
[あい 中]キャラクタ移動(中)
[あい 手前]キャラクタレベル変更(手前)
[あい 前]キャラクタ移動(前)

*label1|フェード表示

[あい hide]キャラクタ消去
[あい 制服 左 fade]キャラクタ出現・フェード制御
[あい 消 fade]キャラクタ消去・フェード制御

[あい 制服 中]キャラクタ出現
[あい rotate=30 time=1000][あい zoom=120 time=1000]レイヤ回転制御(シンクロしない)
[あい rotate=0 time=1000 sync][あい zoom=100 time=1000 sync]レイヤ回転制御(シンクロする)

[夕]夕方(キャラクタは自動的に色補正されます)
[夜]夜(キャラクタは自動的に色補正されます)

*label2|キャラ操作

[あい zoom=150 time=1000]レイヤ拡大制御
[あい opacity=100 time=1000]透明度制御
[あい reset]レイヤ状態初期化

*label3|イベント絵

; イベント絵を表示
[EV file=event1 fade]イベント絵を表示しました。
[EV rotate=30 time=1000]イベント絵を回転
[EV zoom=200 time=1000]イベント絵をズーム処理
[EV hide]イベント絵消去
[昼]

*label4|表情処理

[あい 喜]表情変更(喜)
[あい 怒]表情変更(怒)

*label5|キャラ移動処理

[あい 右]場所移動(右)
[あい 左]場所移動(左)
[あい 右 time=500]時間指定あり場所移動(→右)
[あい 右:中 time=500]初期位置指定で場所移動(中→右)
[あい 右:中 opacity=255:0 time=500]初期位置指定場所移動(中→左 透明度制御あり)

*label6|キャラアクション

[あい 中 おじぎ]おじぎアクション
[あい びょんびょん]びょんびょんアクション
[あい ガクガク]ガクガクアクション

[jump storage=first.ks target=*start]



;-------------------------------------外部定义区-------------------------------

%[
    // 時間情報
    "times" => %[
        "昼" => %[
            "prefix" => "01",
            ],
        "夕" => %[
            "prefix" => "02",
            "lightColor" => 0xc0ff6010,    // 背景補正光色
            "lightType" => ltPsHardLight,  // 背景補正光合成種別
            "brightness" => 0,             // 背景明度補正
            "contrast" => 0,               // 背景コントラスト補正
            "charLightColor" => 0xffff0000,   // キャラ補正光合成色
            "charLightType" => ltPsSoftLight, // キャラ補正光合成種別
            "charBrightness" => 0,            // キャラ明度補正
            "charContrast" => 0,              // キャラコントラスト補正
            ],
        "夜" => %[
            "prefix" => "03",
            "lightColor" => 0xc0000040,   // キャラ補正光合成色
            "lightType" => ltPsHardLight, // キャラ補正光合成種別
            "brightness" => -20,          // キャラ明度補正
            "contrast" => -30,            // キャラコントラスト補正
            "charLightColor" => 0xff400080,   // キャラ補正光合成色
            "charLightType" => ltPsSoftLight, // キャラ補正光合成種別
            "charBrightness" => -50,          // キャラ明度補正
            "charContrast" => -30,            // キャラコントラスト補正
            ]
        ],
   
    // 場所情報
    "stages" => %[
        "道路" => %[
            "image" => "bg01_TIME",
            ],
        ],

    "defaultTime" => "昼",
   
    // キャラクタ配置総合オフセット(画面中央原点)
    "yoffset" => 700,
   
    // キャラクタ配置情報定義
    "positions" => %[

        "出" => %[
            "type" => KAGEnvironment.DISPPOSITION,
            "disp" => KAGEnvImage.BOTH
            ],

        "立" => %[
            "type" => KAGEnvironment.DISPPOSITION,
            "disp" => KAGEnvImage.BU
            ],
        
        "消" => %[
            "type" => KAGEnvironment.DISPPOSITION,
            "disp" => KAGEnvImage.CLEAR
            ],

        "顔" => %[
            "type" => KAGEnvironment.DISPPOSITION,
            "disp" => KAGEnvImage.FACE
            ],

        "無" => %[
            "type" => KAGEnvironment.DISPPOSITION,
            "disp" => KAGEnvImage.INVISIBLE
            ],
        
        "左奥" => %[
            "type" => KAGEnvironment.XPOSITION,
            "xpos" => int -440
            ],
        "右奥" => %[
            "type" => KAGEnvironment.XPOSITION,
            "xpos" => int 440
            ],
        "左" => %[
            "type" => KAGEnvironment.XPOSITION,
            "xpos" => int -200
            ],
        "右" => %[
            "type" => KAGEnvironment.XPOSITION,
            "xpos" => int 200
            ],
        "左中" => %[
            "type" => KAGEnvironment.XPOSITION,
            "xpos" => int -100
            ],
        "右中" => %[
            "type" => KAGEnvironment.XPOSITION,
            "xpos" => int 100
            ],
        "左外" => %[
            "type" => KAGEnvironment.XPOSITION,
            "xpos" => int -600
            ],
        "右外" => %[
            "type" => KAGEnvironment.XPOSITION,
            "xpos" => int 600
            ],
        "中" => %[
            "type" => KAGEnvironment.XPOSITION,
            "xpos" => int 0
            ],

        "奥" => %[
            "type" => KAGEnvironment.LEVEL,
            "level" => int 0
            ],

        "前" => %[
            "type" => KAGEnvironment.LEVEL,
            "level" => int 1
            ],

        "手前" => %[
            "type" => KAGEnvironment.LEVEL,
            "level" => int 2
            ],
        ],

    // 表示レベル用情報
    "levels" => [
        %[
            // 拡大率指定
            "zoom" => 60,
            "name" => "1"
            ],
        %[
            "zoom" => 100,
            "name" => "0"
            ],
        %[
            "zoom" => 150,
            "name" => "2"
            ],
        ],
   
    "defaultLevel" => 1,
    // 表情窓用のレベル指定
    "faceLevelName" => "f",
   
    "actions" => %[
        "おじぎ" => %[
            "module" => LayerJumpOnceActionModule,
            "vibration" => -50,
            "cycle" => 3000,
            ],
        "どっきり" => %[
            "module" => LayerHeartBeatZoomModule,
            "time" => 200,
            "zoom" => 120,
            ],
        "びょんびょん" => %[
            "module" => LayerJumpActionModule,
            "vibration" => 30,
            "cycle" => 1000,
            ],
        "ガクガク" => %[
            "module" => LayerVibrateActionModule,
            "vibration" => 3,
            "waitTime" => 40
            ]
        ],

    // 画面更新パラメータ
    "transitions" => %[
        "normal" => %[
            "time" => 1000,
            "method" => "crossfade",
            ],
    ],

    // fade コマンドの規定値:全体用 (未定義の場合埋め込み値 500)
    "fadeValue" => 1000,
    // fade コマンドの規定値:キャラクタ用(未定義だと fadeValue を参照)
    "charFadeValue" => 300,
   
    // キャラクタ定義情報
    "characters" => %[
        // 定義

        // 定義
        "あい" => %[
            // ポーズ登録(表情ファイルの使い分けが無い範囲)
            "poses" => %[
                // ポーズ指定
                "通常" => %[
                    // 画像名 合成済みパターン
                    "image"     => "ch_LEVEL_DRESS_FACE",
//                    "image"     => "ch_0_DRESS_0",
//                    "faceImage" => "ch_0_0_FACE",

                    // 服装バリエーション
                    "dresses" => %[
                        "制服"     => "0",
                        ],
                    // 標準服装
                    "defaultDress" => "0",
                    // 表情バリエーション
                    "faces" => %[
                        "喜"    => "1",
                        "怒"    => "2",
                        "哀"    => "3",
                        ],
                    // 標準表情
                    "defaultFace" => "1",
                    ],
                ],
            "defaultPose" => "通常",
            "voiceFile" => "ch%06d",
            ],
        ],
    ];

顶部
立嘉
会员
Rank: 1



UID 35
精华 0
积分 13
帖子 2
阅读权限 5
注册 2007-1-22
 
发表于 2007-2-7 18:12  资料  短消息  加为好友 
那我就把这个上传一下看看,反正我觉得这个例子非常的好。
大家探讨下这个关于外部定义的东西。
我记得在论坛的某一个地方上有这个例子。

[ 本帖最后由 立嘉 于 2007-2-7 18:26 编辑 ]

顶部
Miliardo
幕后黑手
Rank: 4


UID 1
精华 0
积分 379
帖子 339
阅读权限 255
注册 2006-12-3
 
发表于 2007-2-7 18:16  资料  短消息  加为好友 
嗯……
world系统么……
个人不喜欢这套系统……把底层全部封起来不一定是一个完美的解决方法……

在素材量少的时候做这个数据库会浪费时间,在素材量大的时候作出对应也并不简单。

如果是特效的封装,好好利用Macro和Subroutine就行了……

顶部
 



清除 Cookies - 联系我们 - [Key Fans Club] the Council of Doujin-game Development and Promotion - Archiver - WAP
Powered by Discuz! 5.5.0 © 2001-2006 Comsenz Inc.
Processed in 0.023663 second(s), 9 queries , Gzip enabled
粤ICP备05060595号
[ 当前模板 - 天高云淡 v 设计制作 - 七星论坛 v 请使用1024*768或以上分辨率浏览本模板 ]
请勿删除或修改此处版权图示