当用户点击点像素移动到该点时,像素应以汇编语言查看运动

时间:2014-01-24 05:26:35

标签: assembly

我的对象是已经在屏幕上的像素,当用户点击屏幕上的任何位置时,像素将移动到该位置,像素的移动应显示它表示像动画我用汇编语言制作这个但是问题是像素未显示动画。它只从一个地方移动到点击点,但不显示动画 我的代码是:

.model small
.stack 100h
.code

main proc
    ;select of vedio mode
    mov ah,0
    mov Al,4
    int 10h

;mouse check
    mov ax,0
    int 33h
;show mouse 
    mov ax,1
    int 33h


    MOUSLOOP:


;get click information
    MOV AX,5        
    INT 33h    
    CMP aX,1        
    JE MOUSLOOP     
 ;writ pixel at click position      
    mov ah,0ch
    mov al,01

inc cx
inc dx
int 10h
mov al,0
int 10h
JMP MOUSLOOP
;screen stay
    mov ah,01
    int 21h
;return to text mode
    mov ah,0
    mov al,3
    int 10h
;exit
    mov ah,4ch
    int 21h

main endp
end main

请帮助我为动画做什么,代码应该是汇编语言。

1 个答案:

答案 0 :(得分:0)

我是新人所以我没有意见留言,所以我需要留下这个答案。

我认为你的代码是阻塞的,直到你从鼠标按钮输入。尝试更新循环中的位置:

;get click information
    MOV AX,5        
    INT 33h    
    CMP aX,1        
    JE MOUSLOOP

否则你会坚持等待按钮点击而不做任何事情来更新光标的位置。

另外,你的动画是什么意思?您是否希望光标跟随鼠标位置,您希望光标本身是动画吗,您想要两者吗,还是动画与光标和鼠标位置完全无关?

我假设您希望当前光标位置为从其所在位置到点击位置的移动设置动画。我认为你可以使用int 10和光标位置坐标,删除光标并在新位置重绘。 伪代码:

while dx is not equal to current click position:
mov ax, 0
int 33h
mov ax, 4
mov dx, column
mov cx, row
int 33h
mov ax, 2
int 33h

我认为从逻辑上看它应该与此相似。