分享一个有趣的火柴人。
By
o3o_o3o_o3o
at 2021-08-11 • 1人收藏 • 1670人看过
我今天无聊,做了一个火柴人来一起陪我打发时间。大神们可以改善一下这个代码,增加一些火柴人的功能。
文件:
文件效果(注意鼠标光标):
代码:
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就会落在整个电脑的最底端而不是在任务栏上走动了。
登录后方可回帖
桌面宠物,哈