Matlab實(shí)現(xiàn)貪吃蛇小游戲的示例代碼_第1頁(yè)
Matlab實(shí)現(xiàn)貪吃蛇小游戲的示例代碼_第2頁(yè)
Matlab實(shí)現(xiàn)貪吃蛇小游戲的示例代碼_第3頁(yè)
Matlab實(shí)現(xiàn)貪吃蛇小游戲的示例代碼_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第Matlab實(shí)現(xiàn)貪吃蛇小游戲的示例代碼于是。。開(kāi)始嘗試制作各種matlab小游戲

最初通過(guò)Alex的貪吃蛇學(xué)到了一些東西,然后制作了一個(gè)類似的俄羅斯方塊在課堂上展示的(都是動(dòng)的方塊嗯噠)。

后來(lái)自己也嘗試寫著玩了一些其他版本的貪吃蛇,并做出了一些改進(jìn)。

補(bǔ)動(dòng)圖:

沒(méi)錯(cuò)這就有點(diǎn)類似貪吃蛇大作戰(zhàn)里的蛇啦

然后做出的改進(jìn)包括:

在關(guān)閉窗口時(shí)不報(bào)錯(cuò)的設(shè)置,因?yàn)橛昧藅imer這個(gè)函數(shù),在關(guān)閉圖像時(shí)他會(huì)報(bào)錯(cuò),我們就可以加入一個(gè)回調(diào)函數(shù):

set(gcf,'tag','co','CloseRequestFcn',@clo);

functionclo(~,~)

stop(game)

delete(findobj('tag','co'));

close

end

意思是每次有關(guān)閉請(qǐng)求時(shí)就調(diào)用clo這個(gè)函數(shù)

然后為了防止他提示你用遞歸的方式調(diào)用close,

再加上delete(findobj(tag,co));刪除之前的設(shè)定。

完整代碼

functionsnake

%axisset..............................................................

axisequal

len=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'));

close

functionsnakegame(~,~)

snaketop=[body(1,:)+direction;body(1,:)+1/2*direction];

snaketop(snaketoplen)=snaketop(snaketoplen)-len;

snaketop(snaketop1)=snaketop(snaketop1)+len;

body=[snaketop;body];

body(long+1:end,:)=[];

if(snaketop(1,1)-food(1))^2+(snaketop(1,2)-food(2))^21

long=long+2;

food=randi(len,[1,2]);

set(plotfood,'XData',food(1),'YData',food(2))

set(plotsnake,'XData',body(:,1),'YData',body(:,2))

functionsnakefcn(~,~)

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))

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論