Matlab怎么实现贪吃蛇小游戏(matlab,开发技术)

时间:2024-05-02 18:02:45 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

补动图:

Matlab怎么实现贪吃蛇小游戏

Matlab怎么实现贪吃蛇小游戏

没错这就有点类似贪吃蛇大作战里的蛇啦

然后做出的改进包括:

在关闭窗口时不报错的设置,因为用了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怎么实现贪吃蛇小游戏的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:SpringBoot中如何使用Thymeleaf操作下一篇:

11 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18