⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plane.txt

📁 打飞机游戏
💻 TXT
字号:
assume cs:codes
codes segment

start :
       
        
        mov ah,00h
        mov al,04h
        int 10h
        
        mov ah,09h
        mov al,'a'
        mov bl,011111001b
        mov cx,20
        int 10h
         
        mov bx,150   ;设置飞机初始水平位置
       mov bp,180   ;设置飞机初始垂直位置
       
       
       
lop3: 
      call play_plane1
      call play_plane
     
      mov cx,bx
      mov dx,bp
      
      
      
      mov ah,0h
      int 16h
      
      
      cmp ah,72
      je up
      cmp ah,80
      je down
      cmp ah,75
      je left
      cmp ah,77
      je right
      cmp ah,16
      je quite
      jmp lop3
   up: sub bp,3
      jmp lop3
down: add bp,3
      jmp lop3
left: sub bx,3
      
       jmp lop3
right: add bx,3
       
     jmp lop3   
     
     quite:
        
        mov ah,4ch
        int 21h
        


;//////////////////////////////////////
play_plane proc ;//画玩家飞机子程序 传入参数bx设置飞机的水平位置 BP设置飞机的垂直位置   BX,BP记录飞机的位置
   
   push cx
   push dx
   push es
   push si
   push di
   push ax
   jmp sk
   play_plane_1: dw 6,1,1,5,2,3,5,3,3,5,4,3,4,5,5,3,6,7,1,7,11,1,8,11,4,9,5,5,10,3,4,11,5,3,12,7,4,13,2,7,13,2 ;X0,Y,长度
sk: 
mov cx,ax
mov ax,cs
mov es,ax

mov di,0
        
       
       
lop2: mov cx,word ptr es:[play_plane_1+di]    ;x0
        add cx,bx
        mov dx,word ptr es:[play_plane_1+di+2]   ;y
        add dx,bp
        mov si,word ptr es:[play_plane_1+di+4]    ;长度
      
      
     call sp_line
     add di,6
     cmp di,84
     jne lop2
     
     

     
     pop ax 
     pop di
     pop si
     pop es
     pop dx
     pop cx
   
     ret
play_plane endp
;//////////////////////      




        
        
        ;画水平直线
;入口参数 CX相当于X0 DX相当于Y0,Y1 si图像长度 bl像素

sp_line proc
         push ax
         push bx
         mov bl,2    ;飞机的颜色
         mov ah,0ch
         mov al,bl
lop:   int 10h
         inc cx
         dec si
         
         jnz lop
         pop bx
         pop ax
         ret
sp_line endp
;/////////////////////////////


play_plane1 proc ;擦出飞机轨迹子程序 传入参数CX,DX
     
      push si
      push di
      
     
      inc cx
      mov si,13
      
      mov di,0
lop5: inc di
      inc dx
      call sp_line1
      cmp di,14
      jne lop5
      pop di
      pop si

      ret
play_plane1    endp
;////////////////////////////////////////


        ;画水平直线
;入口参数 CX相当于X0 DX相当于Y0,Y1 si图像长度 bl像素

sp_line1 proc
         push ax
         push bx
         push bp
         push di
     mov bp,cx
         
         
         mov di,11
         mov bl,0    ;飞机的颜色 用来擦除原来的飞机
         mov ah,0ch
         mov al,bl
lop1: int 10h
         inc cx
         dec di
         
         jnz lop1
         mov cx,bp
         
         pop di
         pop bp
         pop bx
         pop ax
         ret
sp_line1 endp
;/////////////////////////////

;//////////////发射子弹子程序
;入口参数 玩家飞机发射口的坐标bx+6,bp

        
        ;画垂直直线
;入口参数 CX相当于X0 DX相当于y0 si图像长度 bl像素

sp_line2 proc
         push ax   
         mov ah,0ch
         mov al,bl
lop6:   int 10h
         inc dx
         dec si
         jnz lop6
         pop ax
         ret
sp_line2 endp
;/////////////////////////////


;/////////////////延时

delay proc 
push dx
push cx

mov cx,02h
sleep2:


mov dx,0ffffh ;让程序暂停一段时间

sleep1: 
dec dx
cmp dx,0
jne sleep1

dec cx
cmp cx,0
jne sleep2

pop cx
pop dx
ret
delay endp
;//////////////////

codes ends
end start

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -