我在pong项目中遇到了一个问题。我试着让球碰到红色的球棒时,它会随机反弹到另一边,但由于某种原因,它无法识别红色。我在int = 10h中使用AH = 0Dh。检查的部分在hitcheck proc中。
这是密码,和我的问题有关.
hitcheck PROC
;------batt and com check-------
MOV BH, 2H
MOV DX, ballx
MOV CX, bally
SUB CX, 2
MOV AH, 0Dh
INT 10H
CMP AL, 1
JE hitmovement
CMP AL, 3
JE comhitmovement
MOV BH, 2H
MOV DX, ballx
MOV CX, bally
ADD CX, 2
MOV AH, 0Dh
INT 10H
CMP AL, 1
JE hitmovement
CMP AL, 3
JE comhitmovement
MOV BH, 2H
MOV DX, ballx
MOV CX, bally
SUB DX, 2
MOV AH, 0Dh
INT 10H
CMP AL, 1
JE hitmovement
CMP AL, 3
JE comhitmovement
MOV BH, 2H
MOV DX, ballx
MOV CX, bally
ADD DX, 2
MOV AH, 0Dh
INT 10H
CMP AL, 1
JE hitmovement
CMP AL, 3
JE comhitmovement
1条答案
按热度按时间dgiusagp1#
这里的评论与视频模式编号不匹配。模式13 h的分辨率为320 x200,256色。
第一页第二页
如果前面代码的目的是绘制沿屏幕高度的垂直线,则需要与200而不是199进行比较。
在所有的ReadPixel调用中,你都错误地将X坐标放在
DX
中,而将Y坐标放在CX
中。这是相反的。你的 printpixel 宏做的是正确的。此外,您在第1页打印了 batt 和 com 的像素,但在第2页检查了冲突!
问题:您的视频适配器是否支持模式13 h中的多页?