SDL中文论坛
标题:
实例:增加一种实时可建造建筑物,箭塔
[打印本页]
作者:
ancientcc
时间:
2020-11-29 11:20
标题:
实例:增加一种实时可建造建筑物,箭塔
增加建筑物分两个步骤:
1)编写建筑物配置文件;
2)在建造菜章中增加对应建造该建筑物的按钮。
以下分别叙述这两个步骤。
作者:
ancientcc
时间:
2020-11-29 11:21
标题:
编写建筑物配置文件
箭塔配置文件:tower.cfg。文件名可以自定义,以cfg为扩展名就行。
tower.cfg放置位置:文件放在<wok>/data/core/units/building目录的根下。注:这文件可以放在<wok>data/core/units目录下的其它子目录下,例如humans,甚至一个新建目录(如果新建须要在<wok>/data/core/units.cfg写上该目录),但除非特别应用,一般不要那么做。
文件内容:
// 这文件中出现的可翻译字符串定义在wesnoth-wok.mo中
#textdomain wesnoth-wok
[unit_type]
// 箭塔类型标识,它是物中唯一。当然你也可以不是tower,像tower0,只是一旦定下后其它地方就要多次用到这个标识。
id=tower
name= _"tower"
race=human
// 放置在地图上图像
image="units/building/tower.png"
{MAGENTA_IS_THE_TEAM_COLOR}
hitpoints=150
alignment=lawful
// 造一个箭塔花费70金
cost=70
movement_type=smallfoot
movement=0
// 该建筑物可建在它之上的地形。Gg:草原,Rr:道路。
terrains=Gg,Rr
[resistance]
arcane=80
blade=100
cold=100
fire=80
impact=100
pierce=100
[/resistance]
// 和兵种一样,建筑物也是可升级的。
level=1
// 上层物种没了,所以一旦到达最大经验,执行的是ALMA。
advances_to=null
{AMLA_DEFAULT}
// 升级须要经验
experience=750
[abilities]
{ABILITY_STEADFAST}
[/abilities]
usage=fighter
description= _"market0 description"+{SPECIAL_NOTES}+{SPECIAL_NOTES_STEADFAST}+{SPECIAL_NOTES_MAGICAL}
die_sound={SOUND_LIST:HUMAN_DIE}
[attack]
name=staff
description= _"staff"
icon=attacks/staff-magic.png
type=impact
range=melee
damage=8
number=2
[/attack]
[attack]
name=lightning
description= _"lightning"
icon=attacks/lightning.png
type=fire
range=ranged
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
damage=8
number=2
[/attack]
#{DEFENSE_ANIM "units/human-kingdom/zhoushushi-defend.png" "units/human-kingdom/zhoushushi-defend.png" {SOUND_LIST:HUMAN_HIT} }
#define DUDU_LIGHTNING DIRECTION_NUMBER
[attack_anim]
[filter_attack]
name=lightning
[/filter_attack]
{LIGHTNING_BOLT {DIRECTION_NUMBER} }
[/attack_anim]
#enddef
{DUDU_LIGHTNING 1}
{DUDU_LIGHTNING 2}
{DUDU_LIGHTNING 3}
#undef DUDU_LIGHTNING
[/unit_type]
复制代码
作者:
ancientcc
时间:
2020-11-29 11:22
标题:
在建造菜章中增加对应建造该建筑物的按钮
上下文菜单是在主题(theme)中指定,可建造建筑物就在修改<wok>/data/themes/default.cfg。(第三步其实已和default.cfg无关,归类到这里是认为那一步也和按钮有关。)
一、定位到建造菜单
建造菜单是id=build的[menu]标签。类似以下这个实例。
[menu]
id=build
parent=main
is_context_menu=true
items=build_c:market, build_c:farm
ref=middle-bottom-panel
rect="=+9,=+5,+72,+72"
xanchor=fixed
yanchor=bottom
[/menu]
复制代码
二、向建造菜单的items键的值增加build_c:tower
对于以上例子就是把items改为:
items=build_c:market, build_c:farm, build_c:tower
复制代码
经过这样改动后,箭塔图标就出现在农场(farm)之后。
注:
1:build_c:tower。build_c,它指出实行的build命令,‘_c’指示执行完这个命令后上下文菜单消失。‘:’指示后面字符串是build命令参数,以上就是tower。tower对应的是tower.cfg中的type键的值。
三、向<wok>/data/core/images/buttons目录增加上下文菜单中和“箭塔”按钮相关的三个png文件
这三个文件是建造上文菜单中“箭塔”按钮皮肤用的,它们是:
(, 下载次数: 4843)
上传
点击文件名下载附件
tower.png:通常情况下显示。
(, 下载次数: 4829)
上传
点击文件名下载附件
tower-active.png:当玩家鼠标落在“箭塔”按钮上时显示。
(, 下载次数: 4859)
上传
点击文件名下载附件
tower-pressed.png:当玩家按下“箭塔”按钮后显示。
三个文件的文件名是被约定的。tower和build_c:tower中的tower对应,-active和-pressed是系统要求。
说到图像,有人会联想到建造好箭塔后放置在地图上的箭塔图像。那个图像和以上这三个文件无关,它们是在tower.cfg中指定。
欢迎光临 SDL中文论坛 (http://www.libsdl.cn/bbs/)
Powered by Discuz! X3.3