Matlab怎么实现贪吃蛇小游戏
导读:本文共1497.5字符,通常情况下阅读需要5分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 补动图:没错这就有点类似贪吃蛇大作战里的蛇啦然后做出的改进包括:在关闭窗口时不报错的设置,因为用了timer这个函数,在关闭图像时他会报错,我们就可以加入一个回调函数:set(gcf,'tag','co','CloseRequestFcn',@clo);functionclo(~,~)stop(game)de... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。补动图:
没错这就有点类似贪吃蛇大作战里的蛇啦
然后做出的改进包括:
在关闭窗口时不报错的设置,因为用了timer这个函数,在关闭图像时他会报错,我们就可以加入一个回调函数:
set(gcf,'tag','co','CloseRequestFcn',@clo);functionclo(~,~)stop(game)delete(findobj('tag','co'));clfcloseend
意思是每次有关闭请求时就调用clo这个函数
然后为了防止他提示你用递归的方式调用close,
再加上delete(findobj(‘tag’,‘co’));删除之前的设定。
完整代码
functionsnake%axisset..............................................................axisequallen=40;axis(0.5+[0,len,0,len])set(gca,'xtick',[],'ytick',[],'xcolor','w','ycolor','w')set(gca,'color','k')holdon%snakeandfoodbeginingset...........................................snaketop=[5,5;4.5,5];body=[5,5;4.5,5;4,5;3.5,5;3,5;2.5,5];food=[10,10];direction=[1,0];long=6;plotsnake=scatter(gca,body(:,1),body(:,2),120,'w','filled');plotfood=scatter(gca,food(1),food(2),120,'w','filled');%timerset.............................................................set(gcf,'WindowButtonMotionFcn',@snakefcn)fps=8;game=timer('ExecutionMode','FixedRate','Period',1/fps,'TimerFcn',@snakegame);start(game)%..................................................................................set(gcf,'tag','co','CloseRequestFcn',@clo);functionclo(~,~)stop(game)delete(findobj('tag','co'));clfcloseendfunctionsnakegame(~,~)snaketop=[body(1,:)+direction;body(1,:)+1/2*direction];snaketop(snaketop>len)=snaketop(snaketop>len)-len;snaketop(snaketop<1)=snaketop(snaketop<1)+len;body=[snaketop;body];body(long+1:end,:)=[];if(snaketop(1,1)-food(1))^2+(snaketop(1,2)-food(2))^2<1long=long+2;food=randi(len,[1,2]);endset(plotfood,'XData',food(1),'YData',food(2))set(plotsnake,'XData',body(:,1),'YData',body(:,2))endfunctionsnakefcn(~,~)xy=get(gca,'CurrentPoint');x=xy(1,1);y=xy(1,2);dir=[x-body(1,1),y-body(1,2)];dis=sqrt((x-body(1,1))^2+(y-body(1,2))^2);direction=dir/dis;endend
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
Matlab怎么实现贪吃蛇小游戏的详细内容,希望对您有所帮助,信息来源于网络。