云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 汇编语言推箱子课程设计

汇编语言推箱子课程设计

  • 62 次阅读
  • 3 次下载
  • 2025/5/7 20:59:16

mov esi ,offset Map ; Pos = y*14 + x ; Get M1 mov eax,NewY mov ebx,14D mul bx add eax,NewX mov ebx,eax mov nPos1,eax mov al ,[esi][ebx] mov M1,al ; Get M2 mov eax,NewY2 mov ebx,14D mul bx add eax,NewX2 mov ebx,eax mov nPos2,eax mov al ,[esi][ebx] mov M2,al

mov al,M1

.if (al == MAP_ROAD || al == MAP_OBJECT ) push NewX pop ManXPos push NewY pop ManYPos

.elseif al == MAP_BOX1 ; push box mov al ,M2

.if al == MAP_ROAD ; push ok mov ebx,nPos2

13

mov al,MAP_BOX1 mov [esi][ebx],al mov ebx,nPos1 mov al,MAP_ROAD mov [esi][ebx],al push NewX pop ManXPos push NewY pop ManYPos

.elseif al == MAP_OBJECT mov ebx,nPos2 mov al,MAP_BOX2 mov [esi][ebx],al mov ebx,nPos1 mov al,MAP_ROAD mov [esi][ebx],al push NewX pop ManXPos push NewY pop ManYPos .endif

.elseif al == MAP_BOX2 mov al,M2

.if al == MAP_ROAD mov ebx,nPos2 mov al,MAP_BOX1 mov [esi][ebx],al mov ebx,nPos1 mov al,MAP_OBJECT mov [esi][ebx],al push NewX

14

pop ManXPos push NewY pop ManYPos

.elseif al == MAP_OBJECT mov ebx,nPos2 mov al,MAP_BOX2 mov [esi][ebx],al mov ebx,nPos1 mov al,MAP_OBJECT mov [esi][ebx],al push NewX pop ManXPos push NewY pop ManYPos .endif .else .endif

invoke Repaint pop esi ret

2.3游戏数据模块

(3)函数实现的功能分别是人空地移动箱子到空地、从目的地移动箱子到空地、

从空地移动箱子到目的地和中从目的地移动箱子到目的地。X、y指明小人当前所处的位置,字符a表示移动的方向,有“u”、“d”、“l”和“r”4个值,分别表示向上、下、左、右移动。这几个函数的实现原理大致相似。对于前面两个函数,首先判断移动的方向,人小人所在的位置沿着移动的方向移动一步画小人,移动两步画箱子,并设置状态为“b”;

15

对于后面两个参数,首先判断移动的方向,从小人所在的位置沿着移动方向移动一步画小人,移动两上在目的地画箱子,并设置状态为“i”,表明箱子在目的地上。

ManMove endp

XYtoPos proc x:DWORD,y:DWORD ; pos = y *14 + x Zero-Based mov eax, y mov ebx, 14D mul bx add eax ,x ret XYtoPos endp

Repaint proc LOCAL R:RECT

invoke GetClientRect,hWnd,Addr R invoke InvalidateRect,hWnd,Addr R,0 ret

Repaint endp

Check proc

; Check Success and return true or false LOCAL Result :DWORD push esi push TRUE pop Result lea esi,Map

16

搜索更多关于: 汇编语言推箱子课程设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

mov esi ,offset Map ; Pos = y*14 + x ; Get M1 mov eax,NewY mov ebx,14D mul bx add eax,NewX mov ebx,eax mov nPos1,eax mov al ,[esi][ebx] mov M1,al ; Get M2 mov eax,NewY2 mov ebx,14D mul bx add eax,NewX2 mov ebx,eax mov nPos2,eax mov al ,[esi][ebx] mov M2,al mov al,M1 .if (al == MAP_ROAD || al == MAP_OBJECT ) push NewX

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com