<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
‘A’,‘S’,‘D’,F’按鍵代表四條通路(點選S開始),按錯按鈕或黑塊接觸底限均為失敗。
分兩個m檔案,應放在同一資料夾
function pianoKeys %======================%======== [v1,notes,fs]=getMusic;%讀取音樂 %======================%======== fig=uifigure; fig.Position=[10 50 4*90 4*150]; fig.NumberTitle='off'; fig.MenuBar='none'; fig.Resize='off'; fig.Name='pianoKeys'; ax=uiaxes(fig); ax.Position=[-22 -15 4*90+36 4*150+40]; ax.XLim=[0 4*90]; ax.YLim=[0 4*150]; ax.XColor=[0 0 0]; ax.YColor=[0 0 0]; ax.Box='on'; ax.XTick=0:90:360; ax.YTick=[0 600]; ax.XGrid='on'; ax.GridColor=[0 0 0]; ax.GridAlpha=1; ax.Toolbar.Visible='off'; %========================================================================== blockList(1)=drawBlock(changeData(1),0,{'開始';'遊戲'},v1{1}); noDeleteList=1:4; newBlockY=600; newBlockNum=5; startFlag=0; gameOver=0; for i=2:4 x=changeData(i); blockList(i)=drawBlock(x,(i-1)*150,'',v1{i}); end %========================================================================== set(fig,'KeyPressFcn',@keyPressFcn) %========================================================================== fps=10; PKtimer=timer('ExecutionMode', 'fixedRate', 'Period',1/fps, 'TimerFcn', @pianoGame); start(PKtimer) %========================================================================== function pianoGame(~,~) if startFlag if newBlockY<=600&&newBlockNum<=length(v1) tempX=changeData(newBlockNum); blockList(newBlockNum)=drawBlock(tempX,newBlockY,'',v1{newBlockNum}); noDeleteList=[noDeleteList,newBlockNum]; newBlockNum=newBlockNum+1; newBlockY=newBlockY+150; end for ii=noDeleteList blockList(ii).Position(2)=blockList(ii).Position(2)-150/8; end newBlockY=newBlockY-150/8; if (~isempty(noDeleteList))&&blockList(noDeleteList(1)).Position(2)<-10 gameOverFcn(1); gameOver=1; %tempStr=blockList(noDeleteList(1)).UserData; %sound(notes.(tempStr),fs) %delete(blockList(noDeleteList(1))) %noDeleteList(1)=[]; end end end function gameOverFcn(coe) sound([notes.do0f,notes.do1f,notes.do2f,notes.do2f],fs) switch coe case 1 blockList(noDeleteList(1)).BackgroundColor=[0.6 0 0]; blockList(noDeleteList(1)).Text={'遊戲';'失敗'}; startFlag=0; otherwise object=uilabel(fig); object.Text={'遊戲';'失敗'}; object.Position=[coe,0+3-18.75,90,150]; object.FontSize=26; object.FontWeight='bold'; object.FontColor=[1 1 1]; object.BackgroundColor=[0.6 0 0]; object.HorizontalAlignment='center'; end end function keyPressFcn(~,event) switch event.Key case 'a',xPos=0+3; case 's',xPos=90+3; case 'd',xPos=180+3; case 'f',xPos=270+3; otherwise,xPos=-1; end if (~isempty(noDeleteList))&&blockList(noDeleteList(1)).Position(1)==xPos&&gameOver==0 tempStr=blockList(noDeleteList(1)).UserData; sound(notes.(tempStr),fs) delete(blockList(noDeleteList(1))) if noDeleteList(1)==1 startFlag=1; end noDeleteList(1)=[]; elseif blockList(noDeleteList(1)).Position(1)~=xPos&&xPos~=-1&&gameOver==0&&startFlag==1 startFlag=0; gameOverFcn(xPos); gameOver=1; end end %========================================================================== function x=changeData(sort) note=v1{sort}; switch note(1) case 'd',x=0; case 'r',x=0; case 'm',x=90; case 'f',x=90; case 's',x=180; case 'l',x=180; case 't',x=270; case 'b',x=270; end end function object=drawBlock(x,y,string,note) object=uilabel(fig); object.Text=string; object.Position=[x+3,y+3,90,150]; object.FontSize=26; object.FontWeight='bold'; object.FontColor=[1 1 1]; object.BackgroundColor=[0 0 0]; object.HorizontalAlignment='center'; object.UserData=note; end end
function [v1,notes,fs]=getMusic % Most shining national wind//最炫民族風 on Matlab % The Modification is from "canon", not by me fs = 44100; % sample rate dt = 1/fs; T16 = 0.125; t16 = 0:dt:T16; [~,k] = size(t16); t4 = linspace(0,4*T16,4*k); t8 = linspace(0,2*T16,2*k); [~,i] = size(t4); [~,j] = size(t8); % Modification functions mod4=(t4.^4).*exp(-30*(t4.^0.5)); mod4=mod4*(1/max(mod4)); mod8=(t8.^4).*exp(-50*(t8.^0.5)); mod8=mod8*(1/max(mod8)); mod16=(t16.^4).*exp(-90*(t16.^0.5)); mod16=mod16*(1/max(mod16)); f0 = 2*146.8; % reference frequency ScaleTable = [2/3 3/4 5/6 15/16 ... 1 9/8 5/4 4/3 3/2 5/3 9/5 15/8 ... 2 9/4 5/2 8/3 3 10/3 15/4 4 ... 1/2 9/16 5/8]; % 1/4 notes notes.do0f = mod4.*cos(2*pi*ScaleTable(21)*f0*t4); notes.re0f = mod4.*cos(2*pi*ScaleTable(22)*f0*t4); notes.mi0f = mod4.*cos(2*pi*ScaleTable(23)*f0*t4); notes.fa0f = mod4.*cos(2*pi*ScaleTable(1)*f0*t4); notes.so0f = mod4.*cos(2*pi*ScaleTable(2)*f0*t4); notes.la0f = mod4.*cos(2*pi*ScaleTable(3)*f0*t4); notes.ti0f = mod4.*cos(2*pi*ScaleTable(4)*f0*t4); notes.do1f = mod4.*cos(2*pi*ScaleTable(5)*f0*t4); notes.re1f = mod4.*cos(2*pi*ScaleTable(6)*f0*t4); notes.mi1f = mod4.*cos(2*pi*ScaleTable(7)*f0*t4); notes.fa1f = mod4.*cos(2*pi*ScaleTable(8)*f0*t4); notes.so1f = mod4.*cos(2*pi*ScaleTable(9)*f0*t4); notes.la1f = mod4.*cos(2*pi*ScaleTable(10)*f0*t4); notes.tb1f = mod4.*cos(2*pi*ScaleTable(11)*f0*t4); notes.ti1f = mod4.*cos(2*pi*ScaleTable(12)*f0*t4); notes.do2f = mod4.*cos(2*pi*ScaleTable(13)*f0*t4); notes.re2f = mod4.*cos(2*pi*ScaleTable(14)*f0*t4); notes.mi2f = mod4.*cos(2*pi*ScaleTable(15)*f0*t4); notes.fa2f = mod4.*cos(2*pi*ScaleTable(16)*f0*t4); notes.so2f = mod4.*cos(2*pi*ScaleTable(17)*f0*t4); notes.la2f = mod4.*cos(2*pi*ScaleTable(18)*f0*t4); notes.ti2f = mod4.*cos(2*pi*ScaleTable(19)*f0*t4); notes.do3f = mod4.*cos(2*pi*ScaleTable(20)*f0*t4); notes.blkf = zeros(1,i); % 1/8 notes notes.do0e = mod8.*cos(2*pi*ScaleTable(21)*f0*t8); notes.re0e = mod8.*cos(2*pi*ScaleTable(22)*f0*t8); notes.mi0e = mod8.*cos(2*pi*ScaleTable(23)*f0*t8); notes.fa0e = mod8.*cos(2*pi*ScaleTable(1)*f0*t8); notes.so0e = mod8.*cos(2*pi*ScaleTable(2)*f0*t8); notes.la0e = mod8.*cos(2*pi*ScaleTable(3)*f0*t8); notes.ti0e = mod8.*cos(2*pi*ScaleTable(4)*f0*t8); notes.do1e = mod8.*cos(2*pi*ScaleTable(5)*f0*t8); notes.re1e = mod8.*cos(2*pi*ScaleTable(6)*f0*t8); notes.mi1e = mod8.*cos(2*pi*ScaleTable(7)*f0*t8); notes.fa1e = mod8.*cos(2*pi*ScaleTable(8)*f0*t8); notes.so1e = mod8.*cos(2*pi*ScaleTable(9)*f0*t8); notes.la1e = mod8.*cos(2*pi*ScaleTable(10)*f0*t8); notes.tb1e = mod8.*cos(2*pi*ScaleTable(11)*f0*t8); notes.ti1e = mod8.*cos(2*pi*ScaleTable(12)*f0*t8); notes.do2e = mod8.*cos(2*pi*ScaleTable(13)*f0*t8); notes.re2e = mod8.*cos(2*pi*ScaleTable(14)*f0*t8); notes.mi2e = mod8.*cos(2*pi*ScaleTable(15)*f0*t8); notes.fa2e = mod8.*cos(2*pi*ScaleTable(16)*f0*t8); notes.so2e = mod8.*cos(2*pi*ScaleTable(17)*f0*t8); notes.la2e = mod8.*cos(2*pi*ScaleTable(18)*f0*t8); notes.ti2e = mod8.*cos(2*pi*ScaleTable(19)*f0*t8); notes.do3e = mod8.*cos(2*pi*ScaleTable(20)*f0*t8); notes.blke = zeros(1,j); % 1/16 notes notes.do0s = mod16.*cos(2*pi*ScaleTable(21)*f0*t16); notes.re0s = mod16.*cos(2*pi*ScaleTable(22)*f0*t16); notes.mi0s = mod16.*cos(2*pi*ScaleTable(23)*f0*t16); notes.fa0s = mod16.*cos(2*pi*ScaleTable(1)*f0*t16); notes.so0s = mod16.*cos(2*pi*ScaleTable(2)*f0*t16); notes.la0s = mod16.*cos(2*pi*ScaleTable(3)*f0*t16); notes.ti0s = mod16.*cos(2*pi*ScaleTable(4)*f0*t16); notes.do1s = mod16.*cos(2*pi*ScaleTable(5)*f0*t16); notes.re1s = mod16.*cos(2*pi*ScaleTable(6)*f0*t16); notes.mi1s = mod16.*cos(2*pi*ScaleTable(7)*f0*t16); notes.fa1s = mod16.*cos(2*pi*ScaleTable(8)*f0*t16); notes.so1s = mod16.*cos(2*pi*ScaleTable(9)*f0*t16); notes.la1s = mod16.*cos(2*pi*ScaleTable(10)*f0*t16); notes.tb1s = mod16.*cos(2*pi*ScaleTable(11)*f0*t16); notes.ti1s = mod16.*cos(2*pi*ScaleTable(12)*f0*t16); notes.do2s = mod16.*cos(2*pi*ScaleTable(13)*f0*t16); notes.re2s = mod16.*cos(2*pi*ScaleTable(14)*f0*t16); notes.mi2s = mod16.*cos(2*pi*ScaleTable(15)*f0*t16); notes.fa2s = mod16.*cos(2*pi*ScaleTable(16)*f0*t16); notes.so2s = mod16.*cos(2*pi*ScaleTable(17)*f0*t16); notes.la2s = mod16.*cos(2*pi*ScaleTable(18)*f0*t16); notes.ti2s = mod16.*cos(2*pi*ScaleTable(19)*f0*t16); notes.do3s = mod16.*cos(2*pi*ScaleTable(20)*f0*t16); notes.blks = zeros(1,k); % Melody by Schau_mal part0={'mi1f' 'la0e' 'la0e' 'do1f' 'mi1f' ... 're1e' 're1s' 'mi1s' 're1e' 'do1e' 're1e' 'do1e' 'la0f' ... 'mi1f' 'la0e' 'la0e' 'do1f' 'mi1f' ... 'so1e' 're1s' 'mi1s' 're1e' 'do1e' 're1e' 'do1e' 'ti0e' 'so0e' ... 'mi1f' 'la0e' 'la0e' 'do1f' 'mi1f' ... 're1e' 're1s' 'mi1s' 're1e' 'do1e' 're1e' 'do1e' 'la0e' 'so0e' ... 'mi1f' 'la0e' 'la0e' 'do1f' 'mi1f' ... 'so1e' 'mi1e' 'blkf' 'blkf' 'blkf' }; part1={'la0f' 'la0e' 'so0e' 'la0f' 'la0e' 'do1e' ... 'do1f' 're1e' 'do1e' 'la0f' 'la0f' ... 'do1f' 'do1e' 'so0e' 'do1e' 're1e' 'mi1e' 'so1e' ... 'so1e' 'mi1e' 're1f' 'mi1f' 'mi1f' ... 'la1e' 'la1e' 'la1e' 'so1e' 'mi1e' 'mi1f' 'do1e' ... 'la0e' 'la0e' 'la0e' 'mi1e' 're1s' 'mi1s' 're1e' 're1f' ... 'mi1e' 'mi1e' 'so1e' 'mi1e' 're1e' 'mi1e' 're1e' 'do1e' ... 'la0f' 'so0f' 'la0f' 'la0f' ... }; part2={'mi1e' 'mi1e' 'so1e' 'mi1e' 'mi1e' 'so1e' 'so1e' 'la1e' ... 'do2e' 'la1e' 'so1f' 'la1s' 'do2s' 'la1e' 'la1f' ... 'la0f' 'la0e' 'so0e' 'la0f' 'do1f' ... 're1e' 'mi1s' 're1s' 'do1e' 're1e' 'mi1f' 'mi1f' ... 'la0e' 'la1e' 'la1e' 'so1e' 're1e' 'mi1s' 're1s' 'do1e' 're1e' ... 'mi1f' 'mi1f' 'blke' 'blke' 'blkf' ... 'do1e' 'la0e' 'la0e' 'do1e' 're1f' 'so0e' 'so0e' ... 'mi1e' 'so1e' 'mi1e' 're1e' 'do1f' 'do1f' ... 'la0e' 'do1e' 're1e' 'mi1e' 're1e' 'do1e' 'so0e' 'mi0e' ... 'la0f' 'la0f' 'blke' 'blke' 'blkf' ... }; part3={'la0f' 'la0e' 'so0e' 'la0f' 'do1f' ... 're1e' 'mi1s' 're1s' 'do1e' 're1e' 'mi1f' 'mi1f' ... 'la0e' 'la1e' 'la1e' 'so1e' 're1e' 'mi1s' 're1s' 'do1e' 're1e' ... 'mi1f' 'mi1f' 'blke' 'blke' 'blkf' ... 'do1e' 'la0e' 'la0e' 'do1e' 're1f' 'so0e' 'so0e' ... 'mi1e' 'so1e' 'mi1e' 're1e' 'do1f' 'do1e' 'do1e' ... 'la0e' 'do1e' 're1e' 'mi1e' 'so1e' 'mi1e' 'mi1e' 'so1e' ... 'la1f' 'la1f' 'la1f' 'la1f' ... }; part4={'la1e' 'la1s' 'la1s' 'la1e' 'la1e' 'la1e' 'la1s' 'so1s' 'mi1e' 're1e' ... 're1e' 're1s' 're1s' 'mi1e' 'mi1s' 'so1s' 'mi1e' 'mi1s' 're1s' 'do1e' 'do1s' 'la0s' ... 'la0f' 'la0e' 'so0e' 'la0f' 'la0e' 'do1e' ... 're1e' 'mi1s' 're1s' 'do1e' 're1e' 'mi1f' 'mi1f' ... 'la1e' 'so1e' 'mi1e' 're1e' 'so1e' 'mi1e' 're1e' 'do1e' ... 'do1f' 'do1f' 'la0s' 'do1s' 're1s' 'mi1s' 're1s' 'do1s' 'la0s' 'do1s'}; part5={'do2e' 'do2s' 'do2s' 'la1e' 'la1s' 'la1s' 'so1e' 'so1s' 'so1s' 'mi1e' 'mi1s' 'mi1s' ... 're1e' 'mi1s' 're1s' 'do1e' 'la0s' 'so0s' 'la0s' 'so0s' 'do1s' 're1s' 'mi1s' 'so1s' 'la1s' 're2s' ... 'do2f' 'do2f' 'blks' 'blks' 'blks' 'blks' 'do1e' 're1e' ... 'mi1f' 'mi1f' 'mi1f' 'so1e' 'mi1e' ... 'la1f' 'la1f' 'la1e' 'do1e' 'so1e' 'mi1e' ... 're1f' 're1e' 're1s' 're1s' 're1e' 're1e' 'do1e' 're1e' ... 'mi1f' 'mi1e' 'mi1s' 'mi1s' 'mi1e' 're1s' 'do1s' 'ti0e' 'do1s' 're1s' ... 'mi1f' 'mi1f' 'mi1f' 'so1e' 'mi1e' ... 'do2f' 'la1f' 'la1f' 'la1e' 'do1e' ... 're1f' 'so1f' 'so1f' 'la1f' ... 'ti1f' 'ti1f' 'ti1f' 'ti1f' ... }; part6={'blkf' 'blkf' 'mi1e' 'so1e' 'mi1e' 'so1e' ... 'mi1f' 'la0e' 'la0s' 'la0s' 'do1f' 'la0e' 'mi1s' 'la0s' ... 'do1e' 'do1s' 'do1s' 're1e' 'do1s' 're1s' 'mi1f' 'mi1f' ... 'mi1f' 'la0e' 'la0s' 'la0s' 'so1f' 're1e' 're1s' 're1s' ... 'mi1f' 'mi1f' 'mi1s' 're1s' 'do1s' 'la0s' 'mi0s' 're0s' 'mi0s' 'so0s' ... 'do1f' 'la0e' 'la0s' 'la0s' 're1f' 'so0e' 'so0s' 'so0s' ... 'mi0f' 'so0e' 'so0s' 'so0s' 'do1f' 'do1f' ... 'la0f' 'do1e' 'do1s' 'la0s' 'mi1e' 'mi1s' 'mi1s' 're1e' 're1s' 'mi1s' ... }; % Combination, v1 is complete version, v2 is simple version. v1 = [part0 part1 part1 part2 part3 part4 part0 part1 part1 part2 part3 part5 part3 part6 part3]; %v2 = [part0 part1 part1 part2 part3 part5 part3 part6 part3]; end
到此這篇關於Matlab實現別踩白塊小遊戲的範例程式碼的文章就介紹到這了,更多相關Matlab別踩白塊遊戲內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45