我为游戏制作了菜单图片。我想在菜单上执行的下一步是突出显示光标悬浮在菜单上的选项。而不是通过加载另一个bmp文件,只更改特定的区域颜色,并在操作后将其恢复正常。那么最好的方法是什么?如果可以,请添加代码。
我正在研究DosBox(适用于Windows),8086 ASM。我正在使用图形化的菜单。
菜单:
答案 0 :(得分:1)
最基本的方法是计算视频内存中的起始和结束地址,并替换此块中的所有菜单点背景字节值:
mov si, start_address
mov dx, end_address
lbl_loop:
lodsb
cmp al, src_color_value
jne @next
mov byte ptr [si-1], dst_color_value
next:
cmp si, dx
jl(e) lbl_loop ; depends on if end_address is included or excluded
必须将DS设置为video_segment。肯定有更好的方法可以做到这一点,但你明白了。