游戏效果
.
.
游戏说明


‘A’,‘S’,‘D’,F’按键代表四条通路(点击S开始),按错按钮或黑块接触底限均为失败。
完整代码分两个m文件,应放在同一文件夹 . pianoKeys.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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?