上学期汇编语言的期末考核可选的一项是用纯汇编语言编写一个小游戏,喜欢动手的我当然首选这个了。小游戏当中用来练手的,一般有贪吃蛇、俄罗斯方块、打飞机之类的咯,于是我选择了其中一个——打飞机!咳咳,选择它可并不是因为个人某种特殊喜好,我想大多数男同胞都会倾向于玩这款游戏@。@
接下来我就跟大家分享一下如何一步步的完成这项工作,当然,我并不打算把源代码都贴上来,我主要是为大家提供一个思路,必要时提供部分代码~
首先说明下,本例子的运行环境是windows 32位系统,编译工具是masm6.15。
先上个效果图镇楼!
写这个游戏,我大概用了半天的时间查找、学习相关资料,一天的时间进行编码和完善,半天的时间进行调试。
俗话说,万事开头难,想要开始写,却真的不知道从何下手!既然是打飞机游戏,首先要有飞机吧!所以,我们的第一步就是画出一架飞机!
为获得比较好的画质,本次主游戏页面显示采用了320*200彩色图形显示模式,通过像素点来绘画飞机。
mov ah,00H ;设置显示方式为320*200彩色图形方式
mov al,04H
int 10H
接下来,我们就画出一架飞机来,由于我用的事图形模式,飞机实际上是由一个点一个点画出来的,为简化程序,我们先写一个画水平线的函数:
;画水平直线
;入口参数 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
由点及线之后,便可以由线及面了,通过长短不同的线条的叠加,即可画出一架飞机来: