分享一个有趣的火柴人。
By
o3o_o3o_o3o
at 2021-08-11 • 1人收藏 • 1347人看过
我今天无聊,做了一个火柴人来一起陪我打发时间。大神们可以改善一下这个代码,增加一些火柴人的功能。
文件:
文件效果(注意鼠标光标):
代码:
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=399;bottom=299) winform.add( plus={cls="plus";left=0;top=0;right=400;bottom=300;foreRepeat="scale";z=1} ) /*}}*/ import mouse; winform.show(true); var x,y,cx,cy = win.getPos(win.getDesktop()); winform.setPos(cx/2-winform.width/2,cy-winform.height+100) i=0; import win.ui.layered; import win.ui.menu; var popmenu = win.ui.popmenu(winform); popmenu.add("退出",function(){ winform.close() }) win.ui.layered(winform) startRight = function(){ i = i%12+1 var wx,wy = winform.getPos(); winform.plus.foreground = "/.res/"+i+".png" winform.setPos(wx+7,wy) } startLeft = function(){ i = i%12+1+12 var wx,wy = winform.getPos(); winform.plus.foreground = "/.res/"+i+".png" winform.setPos(wx-7,wy) } stop = function(){ winform.plus.foreground = "/.res/standing.png" } winform.wndproc = function(hwnd,message,wParam,lParam){ select(message) { case 0x201/*_WM_LBUTTONDOWN*/ { //winform.hitCaption() } case 0x204/*_WM_RBUTTONDOWN*/ { popmenu.popup() } } } while(winform.valid){ var wx,wy = winform.getPos(); var mx,my = mouse.getPos(); if(mx>wx+winform.width/2+10){ startRight() } elseif(mx<wx+winform.width/2-10){ startLeft() } else{ stop() } win.delay(1) } win.loopMessage(); return winform;
希望大佬们可以给这个火柴人增加更多的功能,比如跳跃、睡觉和聊天等,让这个火柴人变得更有趣。
8 个回复 | 最后更新于 2021-10-01
2021-10-01
#7
最近开学有一些忙,终于可以在国庆节发一个评论了。
可以在while语句中加一些代码,就可以使火柴人一直在电脑的最前端了,不然的话火柴人会跑到所有窗口的最后面去的。
win.setPos(winform.hwnd,,,,,-1/*_HWND_TOPMOST*/)
我们把第十二行的代码中的100改成156就会落在整个电脑的最底端而不是在任务栏上走动了。
登录后方可回帖
桌面宠物,哈![](/static/editor/dialogs/emotion/images/pp/i_f02.png)