亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識(shí)庫 > 如何利用Matlab制作一款真正的拼圖小游戲

如何利用Matlab制作一款真正的拼圖小游戲

熱門標(biāo)簽:廣告地圖標(biāo)注app 騰訊外呼線路 公司電話機(jī)器人 唐山智能外呼系統(tǒng)一般多少錢 陜西金融外呼系統(tǒng) 激戰(zhàn)2地圖標(biāo)注 白銀外呼系統(tǒng) 哈爾濱ai外呼系統(tǒng)定制 海南400電話如何申請(qǐng)

效果:



簡單原理介紹:

1構(gòu)造0,1矩陣作為每片拼圖的透明度,可以構(gòu)造出不規(guī)則形狀的拼圖(image函數(shù)有alphaData屬性可以設(shè)置)

jigsawMask=zeros(101*5,101*5);
jigsawMask(102:404,102:404)=1;
[xMesh,yMesh]=meshgrid(1:101*5,1:101*5);
dis1=sqrt((xMesh-51).^2+(yMesh-253).^2);
dis2=sqrt((xMesh-505+50).^2+(yMesh-253).^2);
dis3=sqrt((xMesh-253).^2+(yMesh-152).^2);
dis4=sqrt((xMesh-253).^2+(yMesh-505+151).^2);
bool1=dis1=50;
bool2=dis2=50;
bool3=dis3=50;
bool4=dis4=50;
jigsawMask(bool1)=1;
jigsawMask(bool2)=1;
jigsawMask(bool3)=0;
jigsawMask(bool4)=0;
jigsawMask(253-25:253+25,51:505-50)=1;
jigsawMask(1:152,253-25:253+25)=0;
jigsawMask(505-151:505,253-25:253+25)=0;

2為每片拼圖塊設(shè)置ButtonDownFcn屬性,將其改造成按鈕

完整代碼:

function jigsaw2(path)

if nargin1||isempty(path)
    [filename, pathname] = uigetfile({'*.jpg;*.tif;*.png;*.jpeg','All Image Files';...
            '*.*','All Files' });
    path = [pathname,filename];
    
end
oriPic=imread(path);
%imshow(oriPic)

jigsawMask=zeros(101*5,101*5);
jigsawMask(102:404,102:404)=1;
[xMesh,yMesh]=meshgrid(1:101*5,1:101*5);
dis1=sqrt((xMesh-51).^2+(yMesh-253).^2);
dis2=sqrt((xMesh-505+50).^2+(yMesh-253).^2);
dis3=sqrt((xMesh-253).^2+(yMesh-152).^2);
dis4=sqrt((xMesh-253).^2+(yMesh-505+151).^2);
bool1=dis1=50;
bool2=dis2=50;
bool3=dis3=50;
bool4=dis4=50;
jigsawMask(bool1)=1;
jigsawMask(bool2)=1;
jigsawMask(bool3)=0;
jigsawMask(bool4)=0;
jigsawMask(253-25:253+25,51:505-50)=1;
jigsawMask(1:152,253-25:253+25)=0;
jigsawMask(505-151:505,253-25:253+25)=0;


resizePic=imresize(oriPic,[101*(3*4+2),101*(3*4+2)]);
Mainfig=figure('units','pixels','position',[300 80 720 400],...
                       'Numbertitle','off','menubar','none','resize','off',...
                       'name','jigsaw');
Mainaxes=axes('parent',Mainfig,'position',[0 0 1 1],...
                    'XLim', [0 720],...
                    'YLim', [0 400],...
                    'NextPlot','add',...
                    'layer','bottom',...
                    'YDir','reverse',...
                    'Visible','on',...
                    'XTick',[], ...
                    'YTick',[]);
                
                
image(Mainaxes,[420,420+14*20],[20,20+14*20],resizePic)
whiteMask=150*ones(100,100,3);
whiteMask(2:99,2:99,:)=255;
for i=1:4
    for j=1:4
        image(Mainaxes,440+[0,60]+(j-1)*60,40+[0,60]+(i-1)*60,uint8(whiteMask),...
            'UserData',[i,j]','Visible','on');
    end
end
for i=1:4
    for j=1:4
        picHdlR(j+(i-1)*4)=image(Mainaxes,420+[0,100]+(j-1)*60,20+[0,100]+(i-1)*60,uint8(zeros(100,100,3)),'alphaData',zeros(100,100),...
            'UserData',j+(i-1)*4,'ButtonDownFcn',@putPiece,'Visible','on');
    end
end

logsheetR=zeros(1,16);
    function putPiece(object,~)
        object.UserData
        if logsheetR(object.UserData)==0handHdl.UserData~=0
            object.CData=handHdl.CData;
            object.AlphaData=handHdl.AlphaData;
            logsheetR(object.UserData)=handHdl.UserData;
            handHdl.UserData=0;
            handHdl.CData=uint8(zeros(100,100,3));
            handHdl.AlphaData=zeros(100,100);
        elseif logsheetR(object.UserData)~=0handHdl.UserData==0
            handHdl.UserData=logsheetR(object.UserData);
            handHdl.CData=object.CData;
            handHdl.AlphaData=object.AlphaData;
            logsheetR(object.UserData)=0;
            object.CData=uint8(zeros(100,100,3));
            object.AlphaData=zeros(100,100);
        end
        if all(logsheetR==1:16)
            text1.String='恭喜你,游戲勝利!';
        end
    end



%==========================================================================
                
for i=1:4
    for j=1:4
        tempPiece=resizePic((i-1)*303+1:(i-1)*303+505,(j-1)*303+1:(j-1)*303+505,:);
        if mod(i+j,2)==0     
            tempMask=jigsawMask';
        else
            tempMask=jigsawMask;
        end
        if j==1
            tempMask(:,1:101)=0;
            tempMask(102:404,102:201)=1;
        end
        if j==4
            tempMask(:,405:505)=0;
            tempMask(102:404,304:404)=1;
        end
        if i==1
            tempMask(1:101,:)=0;
            tempMask(102:201,102:404)=1;
        end
        if i==4
            tempMask(405:505,:)=0;
            tempMask(304:404,102:404)=1;
        end
        picHdl(j+(i-1)*4)=image(Mainaxes,[0,100]+(j-1)*100,[0,100]+(i-1)*100,tempPiece,'alphaData',tempMask,...
            'UserData',j+(i-1)*4,'ButtonDownFcn',@selectPiece);
        
        whiteHdl(j+(i-1)*4)=image(Mainaxes,[0,100]+(j-1)*100,[0,100]+(i-1)*100,uint8(240*ones(100,100,3)),'alphaData',ones(100,100),...
            'UserData',[i,j],'ButtonDownFcn',@selectPiece,'Visible','off');
    end
end

RandNum=rand(1,16);
[~,logSheet]=sort(RandNum);

for i=1:4
    for j=1:4
        picHdl(logSheet(j+(i-1)*4)).XData=[0,100]+(j-1)*100;
        picHdl(logSheet(j+(i-1)*4)).YData=[0,100]+(i-1)*100;
    end
end


handHdl=image(Mainaxes,[0,100],[0,100],uint8(zeros(100,100,3)),...
    'alphaData',zeros(100,100),'UserData',0,'PickableParts','none');

    set(gcf,'WindowButtonMotionFcn',@onhandfunc)
    function onhandfunc(~,~)
        xy=get(gca,'CurrentPoint');
        x=xy(1,1);y=xy(1,2);
        handHdl.XData=[x-50,x+50];
        handHdl.YData=[y-50,y+50];  
    end

    function selectPiece(object,~)
        %object.UserData
        if length(object.UserData)==1
            if handHdl.UserData~=0
                picHdl(handHdl.UserData).Visible='on';  
                whiteHdl(logSheet==handHdl.UserData).Visible='off';
            end
            object.Visible='off';
            whiteHdl(logSheet==object.UserData).Visible='on';
            
            handHdl.UserData=object.UserData;
            handHdl.CData=object.CData;
            handHdl.AlphaData=object.AlphaData;
        else
            if handHdl.UserData==0
            else
                ii=object.UserData(1);
                jj=object.UserData(2);
                object.Visible='off';
                picHdl(handHdl.UserData).XData=[0,100]+(jj-1)*100;
                picHdl(handHdl.UserData).YData=[0,100]+(ii-1)*100;
                picHdl(handHdl.UserData).Visible='on';
                logSheet(jj+(ii-1)*4)=handHdl.UserData;
                
                handHdl.UserData=0;
                handHdl.CData=uint8(zeros(100,100,3));
                handHdl.AlphaData=zeros(100,100);              
            end
        end 
    end
%==========================================================================
fill([420,420+14*20,420+14*20,420],[320,320,380,380],[0.9412    0.9412    0.9412],'LineWidth',5,'EdgeColor',[0.7,0.7,0.7])
text1=text(430,350,'請(qǐng)點(diǎn)擊拼圖塊中心位置移動(dòng)拼圖塊','fontSize',12);

end

運(yùn)行m文件后選擇一張接近方形的圖片即可開始游戲

總結(jié)

到此這篇關(guān)于如何利用Matlab制作一款真正的拼圖小游戲的文章就介紹到這了,更多相關(guān)Matlab拼圖小游戲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Matlab實(shí)現(xiàn)時(shí)間序列預(yù)測分類實(shí)例代碼
  • 利用Matlab繪制各類特殊圖形的實(shí)例代碼
  • 圖文詳解matlab原始處理圖像幾何變換
  • Matlab如何實(shí)現(xiàn)矩陣復(fù)制擴(kuò)充
  • 利用Matlab提取圖片曲線

標(biāo)簽:鷹潭 惠州 黑龍江 益陽 四川 常德 上海 黔西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《如何利用Matlab制作一款真正的拼圖小游戲》,本文關(guān)鍵詞  如何,利用,Matlab,制作,一款,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《如何利用Matlab制作一款真正的拼圖小游戲》相關(guān)的同類信息!
  • 本頁收集關(guān)于如何利用Matlab制作一款真正的拼圖小游戲的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日韩在线观看免费| 日韩中文字幕一区| 国产精品免费久久| 欧美激情伊人| 九九久久国产精品| 青青久久网| 欧美激情一区二区三区视频| 欧美日本免费| 日本特黄特色aaa大片免费| 欧美另类videosbestsex视频| 99色视频| 韩国三级香港三级日本三级| 一级女性全黄久久生活片| 日本伦理片网站| 四虎久久影院| 精品在线观看国产| 日本伦理片网站| 韩国毛片免费| 韩国三级视频在线观看| 天天做日日干| 精品国产亚洲人成在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久国产精品自由自在| 四虎影视库| 久久精品免视看国产明星| 日韩中文字幕在线观看视频| 黄视频网站免费| 国产欧美精品午夜在线播放| 欧美日本二区| 欧美激情一区二区三区在线| 国产综合91天堂亚洲国产| 国产美女在线一区二区三区| 韩国三级视频在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 欧美电影免费看大全| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 青青久久网| 成人高清视频免费观看| 国产成人啪精品| 韩国三级视频网站| 国产精品免费久久| 亚欧成人毛片一区二区三区四区 | 韩国三级一区| 欧美一级视频免费| 97视频免费在线观看| 亚洲 欧美 成人日韩| 国产美女在线一区二区三区| 国产亚洲男人的天堂在线观看| 免费毛片基地| 日韩中文字幕在线观看视频| 国产精品1024永久免费视频| 精品视频一区二区| 天堂网中文在线| 日本伦理片网站| 香蕉视频久久| 欧美国产日韩在线| 97视频免费在线观看| 亚洲精品中文字幕久久久久久| 亚飞与亚基在线观看| 国产不卡高清| 久久精品免视看国产成人2021| 一级毛片视频免费| 九九热国产视频| 色综合久久天天综线观看| 久久国产影院| 亚洲天堂免费| 国产不卡精品一区二区三区| 日韩在线观看网站| 日韩欧美一及在线播放| 色综合久久天天综合| 久久精品免视看国产明星| 成人免费观看的视频黄页| 色综合久久天天综线观看| 香蕉视频三级| 欧美激情中文字幕一区二区| 国产成a人片在线观看视频| 亚洲精品影院| 精品久久久久久免费影院| 美女被草网站| 99久久网站| 国产一级强片在线观看| 国产国语对白一级毛片| 高清一级毛片一本到免费观看| 国产麻豆精品免费密入口| 日韩在线观看视频网站| 黄视频网站免费观看| 二级片在线观看| 99久久精品国产高清一区二区| 精品视频在线看| 毛片成人永久免费视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 日韩专区第一页| 九九久久99| 国产91丝袜在线播放0| 青青青草影院| 香蕉视频久久| 韩国毛片| 国产不卡高清| 九九精品久久| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 在线观看成人网 | 可以免费在线看黄的网站| 国产亚洲精品aaa大片| 国产精品免费精品自在线观看| 四虎影视库| 精品国产一区二区三区精东影业 | 亚洲天堂免费观看| 亚欧成人乱码一区二区| 日韩在线观看视频网站| 99色播| 韩国三级一区| 九九久久国产精品| 尤物视频网站在线| 国产伦理精品| 精品久久久久久综合网| 九九热国产视频| 亚久久伊人精品青青草原2020| 黄视频网站在线观看| 免费国产在线观看不卡| 久久99中文字幕久久| 91麻豆精品国产片在线观看| 精品国产一级毛片| 国产亚洲男人的天堂在线观看| 国产综合91天堂亚洲国产| 国产91丝袜高跟系列| 国产一区精品| 黄视频网站免费| 天堂网中文字幕| 尤物视频网站在线观看| 国产视频久久久| 午夜激情视频在线观看| 久久精品免视看国产明星| 九九免费高清在线观看视频| 日韩免费在线| 亚洲 男人 天堂| 999久久狠狠免费精品| 国产视频一区二区在线观看| 精品国产一区二区三区国产馆| 国产成人精品综合久久久| 日韩av成人| 久久99中文字幕久久| 中文字幕97| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产一区二区精品| 欧美激情中文字幕一区二区| 久久国产精品只做精品| 国产国语对白一级毛片| 国产一区二区精品尤物| 成人高清视频在线观看| 99久久精品国产片| 91麻豆国产| 国产不卡高清在线观看视频| 国产精品自拍在线观看| 麻豆系列国产剧在线观看| 国产高清视频免费观看| 国产一区二区福利久久| 沈樵在线观看福利| 精品视频免费观看| 九九九国产| 台湾美女古装一级毛片| 999精品在线| 久久国产精品自由自在| 久久国产精品自由自在| 成人免费观看视频| 国产一区二区精品尤物| 中文字幕一区二区三区 精品| 欧美另类videosbestsex久久| 香蕉视频三级| 一级毛片视频播放| 一本高清在线| 一级片免费在线观看视频| 亚洲精品中文字幕久久久久久| 麻豆网站在线免费观看| 国产成a人片在线观看视频| 99久久精品国产国产毛片 | 国产不卡在线观看视频| 国产精品12| 亚洲www美色| 久久久久久久男人的天堂| 欧美激情在线精品video| 亚洲 国产精品 日韩| 亚州视频一区二区| 欧美激情伊人| 黄视频网站免费| 国产伦精品一区二区三区在线观看| 国产91丝袜高跟系列| 中文字幕一区二区三区精彩视频| 九九精品在线播放| 国产成a人片在线观看视频| 午夜精品国产自在现线拍| 麻豆系列 在线视频| 国产精品自拍亚洲| 成人高清视频免费观看| 99热热久久| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产网站免费在线观看| 91麻豆精品国产自产在线 | 免费国产在线观看不卡| 九九热精品免费观看| 精品视频在线观看免费|