第一范文网 - 专业文章范例文档资料分享平台

汇编语言推箱子课程设计

来源:用户分享 时间:2025/7/19 15:44:22 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

mov wc.lpszClassName,OFFSET ClassName

invoke LoadIcon,NULL,IDI_APPLICATION mov mov

wc.hIcon,eax wc.hIconSm,eax

invoke LoadCursor,NULL,IDC_ARROW mov

wc.hCursor,eax

invoke RegisterClassEx,addr wc invoke

CreateDialogParam,hInstance,addr

DlgName,NULL,addr

WndProc,NULL

WinMain endp

WndProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM LOCAL ps :PAINTSTRUCT LOCAL Dc:HDC

mov

eax,uMsg

invoke ShowWindow,hWnd,SW_SHOWNORMAL invoke UpdateWindow,hWnd .while TRUE

invoke GetMessage,addr msg,NULL,0,0

.BREAK .if !eax

invoke TranslateMessage,addr msg invoke DispatchMessage,addr msg

.endw mov ret

eax,msg.wParam

.if eax == WM_KEYDOWN

invoke KeyDownProc,wParam

.elseif eax==WM_INITDIALOG

push

hWin

9

pop hWnd

invoke GetDlgItem,hWin,IDC_TBRMAIN invoke DoToolBar,hInstance,eax invoke LoadRes .if eax == FALSE

invoke MessageBox,hWin,Addr szErrorMessage,\\ Addr szLoadError,MB_ICONERROR .endif

invoke InitStBar invoke SelectGate,1

.elseif eax==WM_COMMAND

.endif mov and

eax,wParam eax,0FFFFh

.if eax==IDM_FILE_EXIT

invoke SendMessage,hWin,WM_CLOSE,0,0

.elseif eax==IDM_HELP_ABOUT

invoke ShellAbout,hWin,addr AppName,addr AboutMsg,NULL

.elseif eax == IDC_TBB_NEW invoke SelectGate,CurrGate .elseif eax == IDC_TBB_PREV mov eax, CurrGate dec eax

invoke SelectGate,eax .elseif eax == IDC_TBB_NEXT invoke NextGate

.elseif eax == IDC_TBB_ABOUT

invoke ShellAbout,hWnd,Addr AppName,Addr AboutMsg,NULL

.elseif eax==WM_PAINT

invoke BeginPaint,hWin,Addr ps

10

mov Dc,eax invoke WMPaint,Dc

invoke EndPaint,hWin,Addr ps .elseif eax==WM_CLOSE

invoke DestroyWindow,hWin

.elseif uMsg==WM_DESTROY invoke FreeRes

invoke PostQuitMessage,NULL

.else

invoke DefWindowProc,hWin,uMsg,wParam,lParam ret

.endif

xor eax,eax ret

2.2功能控制模块(功能实现)

(2)小人移动的方向有4个,move()函数(处理小人移动的函数)对这4个方向移动的处理都一致,只是调用函数时的参数有所不同。首先判断小人移动的方向,然后根据小人所处世的当前状态、下一步状态或者下下一步状态进行适当的处理。 KeyDownProc endp ManMove proc vKey :DWORD LOCAL NewX:DWORD LOCAL NewY:DWORD LOCAL NewX2 :DWORD LOCAL NewY2 :DWORD LOCAL M1 :byte LOCAL M2 :byte LOCAL nPos1 :DWORD LOCAL nPos2 :DWORD

11

push esi

mov eax,ManXPos mov NewX,eax mov NewX2,eax mov eax,ManYPos mov NewY,eax mov NewY2,eax

mov eax ,vKey .if eax == VK_UP dec NewY dec NewY2 dec NewY2

.elseif eax == VK_DOWN inc NewY inc NewY2 inc NewY2

.elseif eax == VK_LEFT dec NewX dec NewX2 dec NewX2

.elseif eax == VK_RIGHT inc NewX inc NewX2 inc NewX2 .else ret .endif

12

搜索更多关于: 汇编语言推箱子课程设计 的文档
汇编语言推箱子课程设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2hw9k3zugc0mq5e7e8ky_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top