godking.paint 拼图游戏运行报错

aarongod 26天前 199 v 37.8.26 2024-11-26

import win.ui;

/*DSG{{*/

var winform = win.form(text="aardio form";right=533;bottom=542)

winform.add(

plus={cls="plus";left=17;top=18;right=517;bottom=518;bgcolor=0;db=1;dl=1;dr=1;dt=1;notify=1;z=1}

)

/*}}*/

 

winform.show();

import godking.paintEx

p = godking.paintEx(winform.plus)

 

//生成一个空图片

var nullimg = p.getImage(,,::RECTF(0,0,100,100),false)

 

//初始化图像组

import inet.http

var imgs = p.splitImage(inet.http().get("https://img2.baidu.com/it/u=1894252956,1737578713&fm=26&fmt=auto"),5,5)

 

//初始化区域组

var rectfs=p.splitRectF(5,5)

 

//开始乱序赋值

newimg=..table.clone(imgs) // 复制一个图像表,保留原表用来做验证

newimg[25]=nullimg // 将图像最右下角的那一块变为黑色

..table.shuffle(newimg) // 打乱顺序

for(i=1;#newimg;1){ // 填充到画板

p.drawImage(rectfs[i],newimg[i],false)

}

 

//处理鼠标点击事件

winform.plus.onMouseDown = function(wParam,lParam){

    var x,y = win.getMessagePos(lParam);

for(i=1;#rectfs;1){

if p.pointInRectF(x,y,rectfs[i]){

var nullindex = null;

//上边 

if i>5 && newimg[i-5]=nullimg nullindex=i-5;

//下边

if !nullindex && i<21 && newimg[i+5]=nullimg nullindex=i+5;

//左边

if !nullindex && (i-1)%5 && newimg[i-1]=nullimg nullindex=i-1;

//右边

if !nullindex && i%5 && newimg[i+1]=nullimg nullindex=i+1;

//交换图像

if nullindex {

newimg[i],newimg[nullindex]=newimg[nullindex],newimg[i]

p.drawImage(rectfs[i],nullimg,false)

p.drawImage(rectfs[nullindex],newimg[nullindex],true)

}

return ; 

}

}

}

p.update()

win.loopMessage();


最新回复 (2)
  • 光庆 26天前
    0 2
    import win.ui;
    /*DSG{{*/
    var winform = win.form(text="aardio form";right=533;bottom=542)
    winform.add(
    plus={cls="plus";left=20;top=20;right=520;bottom=520;db=1;dl=1;dr=1;dt=1;notify=1;z=1}
    )
    /*}}*/
     
    winform.show();
    import godking.paint
    var p = godking.paint.fromPlus(winform.plus,false/*自动刷新*/,false/*重绘背景*/);
    p.bkcolor = 0xFF000000;
     
    //生成一个空图片
    var nullimg = p.getImage(,,::RECTF(0,0,100,100));
     
    //初始化图像组
    import inet.http
    var img = inet.http().get("https://img.32r.com/uppic/20240307/addbc9b970fbb25c11e0e4bf7498395d.jpg");
    var imgs = godking.paint.splitImage(img,5,5);
     
    //初始化区域组
    var rectfs = p.splitRectF(5,5);
     
    //开始乱序赋值
    newimg = ..table.clone(imgs); // 复制一个图像表,保留原表用来做验证
    newimg[25] = nullimg; // 将图像最右下角的那一块变为黑色
    ..table.shuffle(newimg); // 打乱顺序
     
    for(i=1;#newimg;1){ // 填充到画板
    	p.drawImageF(rectfs[i],newimg[i]);
    }
     
    //处理鼠标点击事件
    winform.plus.onMouseDown = function(wParam,lParam){
        var x,y = win.getMessagePos(lParam);
    	for(i=1;#rectfs;1){
    		if p.pointInRectF(x,y,rectfs[i]){
    			var nullindex = null;
    			//上边 
    			if i>5 && newimg[i-5] = nullimg nullindex=i-5;
    			//下边
    			if !nullindex && i<21 && newimg[i+5] = nullimg nullindex=i+5;
    			//左边
    			if !nullindex && (i-1)%5 && newimg[i-1] = nullimg nullindex=i-1;
    			//右边
    			if !nullindex && i%5 && newimg[i+1] = nullimg nullindex=i+1;
    			//交换图像
    			if nullindex {
    				newimg[i],newimg[nullindex] = newimg[nullindex],newimg[i];
    				p.drawImageF(rectfs[i],newimg[i]);
    				p.drawImageF(rectfs[nullindex],newimg[nullindex]);
    				p.plus.update();
    			}
    			return ; 
    		}
    	}
    }
    p.plus.update();
    win.loopMessage();


  • aarongod 25天前
    0 3
    好了, 谢谢 大佬!
返回