177 字
1 分钟
在做宝可梦改版替换plain战斗背景的时候遇到的一些问题
在做宝可梦改版替换plain战斗背景的时候遇到的一些问题
原版的plain战斗背景是和building地形是同一个背景,只是色板不同,现在是要改成独立的背景,按正常来说,在
src\data\graphics\battle_environment.h这个文件增加以下代码
const u32 gBattleEnvironmentTiles_Plain[] = INCBIN_U32("graphics/battle_environment/plain/tiles.4bpp.smol");const u32 gBattleEnvironmentTilemap_Plain[] = INCBIN_U32("graphics/battle_environment/plain/map.bin.smolTM");const u32 gBattleEnvironmentAnimTiles_Plain[] = INCBIN_U32("graphics/battle_environment/plain/anim_tiles.4bpp.smol");const u32 gBattleEnvironmentAnimTilemap_Plain[] = INCBIN_U32("graphics/battle_environment/plain/anim_map.bin.smolTM");然后src\data\battle_environment.h这里把平地改Building变成Plain就好了
[BATTLE_ENVIRONMENT_PLAIN] = { .name = _("平地"), .naturePower = PLAIN_NATURE_POWER, .secretPowerAnimation = PLAIN_SECRET_POWER_ANIMATION, .secretPowerEffect = PLAIN_SECRET_POWER_EFFECT, .camouflageType = PLAIN_CAMOUFLAGE_TYPE, .camouflageBlend = PLAIN_CAMOUFLAGE_BLEND, //.entry = ENVIRONMENT_ENTRY(Building), //.background = ENVIRONMENT_BACKGROUND(Building), .entry = ENVIRONMENT_ENTRY(Plain), .background = ENVIRONMENT_BACKGROUND(Plain), .palette = gBattleEnvironmentPalette_Plain, .battleIntroSlide = PLAIN_BATTLE_INTRO_SLIDE, },但我实际编译之后发现,只有色板变了,战斗背景引用的还是building的图形。 需要在src/data/battle_environment.h文件中使用extern关键字声明Plain相关的变量:
extern const u32 gBattleEnvironmentTiles_Plain[];extern const u32 gBattleEnvironmentTilemap_Plain[];extern const u32 gBattleEnvironmentAnimTiles_Plain[];extern const u32 gBattleEnvironmentAnimTilemap_Plain[];extern const u16 gBattleEnvironmentPalette_Plain[];至于这个要不要加好像都行,反正编译没问题就行。(src\data\graphics\battle_environment.h)
#ifndef GUARD_BATTLE_ENVIRONMENT_GRAPHICS_H#define GUARD_BATTLE_ENVIRONMENT_GRAPHICS_H……………………
#endif // GUARD_BATTLE_ENVIRONMENT_GRAPHICS_H 在做宝可梦改版替换plain战斗背景的时候遇到的一些问题
https://blog.dreamstory.cn/posts/poke/1/ 部分信息可能已经过时









