以行走图mingdi(冥帝)为例。
在event_objects.h中添加mingdi的枚举值,并更新NUM_OBJ_EVENT_GFX和的OBJ_EVENT_PAL_TAG_DYNAMIC值。
#define OBJ_EVENT_GFX_MINGDI 243
#define NUM_OBJ_EVENT_GFX 244#define OBJ_EVENT_PAL_TAG_MINGDI 0x1124define OBJ_EVENT_PAL_TAG_DYNAMIC 0x1125
在object_event_graphics.h文件中添加新的精灵数据定义,为mingdi创建图像和调色板引用。
const u32 gObjectEventPic_Mingdi[] = INCBIN_U32("graphics/object_events/pics/people/mingdi.4bpp");const u16 gObjectEventPal_Mingdi[] = INCBIN_U16("graphics/object_events/pics/people/mingdi.gbapal");
在event_object_movement.c文件的sObjectEventSpritePalettes数组中添加mingdi的色板条目,以便游戏能够加载和使用这个色板。
{gObjectEventPal_Mingdi, OBJ_EVENT_PAL_TAG_MINGDI},
在object_event_pic_tables.h文件中为mingdi创建图像表,使用标准的行走动画结构。
static const struct SpriteFrameImage sPicTable_Mingdi[] = {overworld_ascending_frames(gObjectEventPic_Mingdi, 2, 4),
};
在object_event_graphics_info.h文件的末尾,在那里添加新的图形信息结构gObjectEventGraphicsInfo_Mingdi
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mingdi = {.tileTag = TAG_NONE,
.paletteTag = OBJ_EVENT_PAL_TAG_MINGDI,
.reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE,
.size = 256,
.width = 16,
.height = 32,
.paletteSlot = PALSLOT_NPC_1,
.shadowSize = SHADOW_SIZE_M,
.inanimate = FALSE,
.compressed = FALSE,
.tracks = TRACKS_FOOT,
.oam = &gObjectEventBaseOam_16x32,
.subspriteTables = sOamTables_16x32,
.anims = sAnimTable_Standard,
.images = sPicTable_Mingdi,
.affineAnims = gDummySpriteAffineAnimTable,
};
在object_event_graphics_info_pointers.h文件中添加mingdi的指针引用。
[OBJ_EVENT_GFX_MINGDI] = &gObjectEventGraphicsInfo_Mingdi,在object_event_graphics_info_pointers.h文件中添加gObjectEventGraphicsInfo_Mingdi的外部声明。
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mingdi;在spritesheet_rules.mk添加编译规则
$(OBJEVENTGFXDIR)/people/mingdi.4bpp: %.4bpp: %.png$(GFX) $< $@ -mwidth 2 -mheight 4</code></pre><p> </p>
发表评论