没有合适的资源?快使用搜索试试~ 我知道了~
俄罗斯方块MATLAB版的代码.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 12 浏览量
2022-07-05
03:07:13
上传
评论
收藏 25KB DOCX 举报
温馨提示
试读
11页
俄罗斯方块MATLAB版的代码
资源推荐
资源详情
资源评论
function varargout = RussiaBlock( varargin )
if nargin == 0
OldHandle = findobj( 'Type', 'figure', 'Tag', 'RussiaBlock' ) ;
if ishandle( OldHandle )
delete( OldHandle ) ;
end
FigureHandle = figure( 'Name', ' 俄 罗 斯 方 块 MATLAB 版
', 'Tag', 'RussiaBlock', 'NumberTitle', 'off',...
'Menubar', 'none', 'DoubleBuffer', 'on', 'Resize', 'off', 'visible', 'off',...
'KeyPressFcn', 'RussiaBlock( ''KeyPress_Callback'', gcbo )',...
'HelpFcn', 'helpdlg(''帮不了你- -!'',''不好意思'')',...
'CloseRequestFcn', 'RussiaBlock( ''CloseFigure_Callback'', gcbo )' ) ;
generate_FigureContent( FigureHandle ) ;
init_FigureContent( FigureHandle ) ;
set( FigureHandle, 'Visible', 'on' ) ;
elseif ischar( varargin{1} )
if nargout == 0
feval( varargin{:} ) ;
else
[varargout{1:nargout}] = feval( varargin{:} ) ;
end
end
% -------------------------------------------------------------------------
function generate_FigureContent( FigureHandle )
TabSpace = 30 ;
BlockWidth = 20 ;
BlockHeight = 20 ;
FigureWidth = BlockWidth * (12 + 1) + TabSpace * 7;
FigureHeight = 500 ;
set( FigureHandle, 'Position', [0 0 FigureWidth FigureHeight] ) ;
movegui( FigureHandle, 'center' ) ;
% 创建菜单
BeginMenu = uimenu( FigureHandle, 'Label', '开始' ) ;
StartMenu = uimenu( BeginMenu, 'Label', '开始新游戏', 'Accelerator', 'N',...
'Callback', 'RussiaBlock( ''StartNewGame_Callback'', gcbo )');
SaveMenu = uimenu( BeginMenu, 'Label', '保存', 'Accelerator', 'S', 'Enable', 'on',...
'Separator', 'on', 'Cal', 'RussiaBlock( ''SaveGame_Callback'', gcbo )' );
LoadMenu = uimenu( BeginMenu, 'Label', '读取', 'Accelerator', 'L', 'Enable', 'on',...
'Cal', 'RussiaBlock( ''LoadGame_Callback'', gcbo )' );
QuitMenu = uimenu( BeginMenu, 'Label', ' 退 出
', 'Accelerator', 'Q', 'Separator', 'on', 'Cal', 'close(gcf)');
OperationMenu = uimenu( FigureHandle, 'Label', '功能' );
BoardConfigMenu = uimenu( OperationMenu, 'label', '键盘设置', 'Enable', 'on',...
'Cal', 'RussiaBlock( ''BoardConfig_Callback'', gcbo )' );
FigureConfigMenu = uimenu( OperationMenu, 'label', '界面设置', 'Enable', 'on');
uimenu( FigureConfigMenu, 'Label', ' 设 置 窗 口 颜 色
', 'Cal', 'RussiaBlock( ''WindowColor_Callback'', gcbo )' )
uimenu( FigureConfigMenu, 'Label', ' 设 置 背 景 图 片
', 'Cal', 'RussiaBlock( ''WindowPicture_Callback'', gcbo )' )
uimenu( FigureConfigMenu, 'Label', ' 设 置 方 块 颜 色
', 'Cal', 'RussiaBlock( ''BlockColor_Callback'', gcbo )' )
uimenu( FigureConfigMenu, 'Label', '恢复默认', 'Cal', 'RussiaBlock( ''Default_Callback'', gcbo )' )
HighScoreMenu = uimenu( OperationMenu, 'label', '最高记录', 'Separator', 'on',...
'Cal', 'RussiaBlock( ''HighScore_Callback'', gcbo )', 'Enable', 'on' );
GameLevelMenu = uimenu( OperationMenu, 'Label', '游戏难度',...
'Cal','RussiaBlock( ''GameLevel_Callback'', gcbo )' );
HelpMenu = uimenu( FigureHandle, 'Label', '帮助' );
AboutMenu = uimenu( HelpMenu, 'Label', '关于此软件', 'Cal', 'helpdlg(''俄罗斯方块 MATLAB
版------冰风漫天(制作)(2006/11/21)'',''关于此软件……'')');
HelpDlgMenu = uimenu( HelpMenu, 'Label', '游戏帮助', 'Separator', 'on', 'Cal', 'helpdlg(''帮不了
你- -!'',''不好意思'')' );
% 创建工具条,图标可以用 imread 从图片读取,但图片不要太大
BeginTool = uipushtool( 'ToolTipString', '开始', 'CData', rand(16,16,3), 'Tag', 'BeginTool',...
'ClickedCallback', 'RussiaBlock( ''StartNewGame_Callback'', gcbo )' ) ;
PauseTool = uitoggletool( 'ToolTipString', '暂停', 'Tag', 'PauseTool', 'Tag', 'PauseTool',...
'CData', reshape( repmat( [1 1 0], 16, 16), [16,16,3] ),...
'ClickedCallback', 'RussiaBlock( ''PauseGame_Callback'', gcbo )' ) ;
% 创建游戏窗口
MainWindowXPos = TabSpace;
MainWindowYPos = TabSpace;
MainWindowWidth = BlockWidth * 12 ;
MainWindowHeight = BlockHeight * 22 ;
MainWindowPosition = [MainWindowXPos MainWindowYPos MainWindowWidth MainWindo
wHeight] ;
% 定义游戏窗口的右键菜单
AxesContextMenu = uicontextmenu( 'Tag', 'uicontextmenu' ) ;
uimenu( AxesContextMenu, 'Label', ' 设 置 窗 口 颜 色
', 'Cal', 'RussiaBlock( ''WindowColor_Callback'', gcbo )' )
uimenu( AxesContextMenu, 'Label', ' 设 置 背 景 图 片
', 'Cal', 'RussiaBlock( ''WindowPicture_Callback'', gcbo )' )
uimenu( AxesContextMenu, 'Label', ' 设 置 方 块 颜 色
', 'Cal', 'RussiaBlock( ''BlockColor_Callback'', gcbo )' )
uimenu( AxesContextMenu, 'Label', '恢复默认', 'Cal', 'RussiaBlock( ''Default_Callback'', gcbo )' )
MainAxes = axes( 'Units', 'pixels', 'Pos', MainWindowPosition, 'XTick', [], 'YTick',[], 'XTickLabel
', [],...
'YTickLabel', [], 'Box', 'on', 'Tag', 'MainAxes', 'UicontextMenu', AxesContextMenu,...
'XLim', [0 MainWindowWidth], 'YLim', [0 MainWindowHeight] ) ;
hold on;
% 创建一个窗口用于显示下一个方块的图形
NextBlockWndXPos = MainWindowXPos + MainWindowWidth + TabSpace ;
NextBlockWndHeight = 4 * TabSpace + BlockHeight ;
NextBlockWndYPos = MainWindowYPos + MainWindowHeight - NextBlockWndHeight ;
NextBlockWndWidth = TabSpace * 4 + BlockWidth ;
NextBlockWndPosition = [NextBlockWndXPos NextBlockWndYPos NextBlockWndWidth Next
BlockWndHeight] ;
NextBlockAxes = axes( 'Units', 'pixels', 'Pos', NextBlockWndPosition, 'XTick', [], 'YTick',[],...
'XTickLabel', [], 'YTickLabel', [], 'XLim', [0 NextBlockWndWidth],...
'YLim', [0 NextBlockWndHeight], ...
'Box', 'on', 'Tag', 'NextBlockAxes', 'Color', [0.85 0.85 0.85] ) ;
% 创建一组控件,包括(两个文本框用于显示当前方块数和成绩,两个按钮用于暂停和退
出)
ButtonTag = { 'QuitButton', 'PauseButton', 'BlockNumText', 'ScoreText' } ;
ButtonStyle = { 'pushbutton', 'togglebutton', 'text', 'text' } ;
FontColor = { [0 0 0], [1 0 0], [0 0 1], [1 0 1] } ;
ButtonColor = { [0.7 0.8 0.9], [0.3 1 0.3], [0.5 1 1], [0.5 1 1] } ;
ButtonString = { '退出', '暂停', '方块数', '积分' };
ButtonCallback = { 'close(gcf)', 'RussiaBlock( ''ButtonPauseGame_Callback'', gcbo )', '', '' } ;
剩余10页未读,继续阅读
资源评论
oligaga
- 粉丝: 52
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业设计基于python矩阵分解的推荐算法研究源码+详细文档+全部数据资料 高分项目.zip
- 基于网络的入侵检测系统源码+数据集+详细文档(高分毕业设计).zip
- 微信小程序源码 旅行故事分享 - 面包旅行App界面设计与文本展示资源下载
- 微信小程序源码 创意互动游戏 - 你画我猜App下载
- 摸底考试_学生版20230305.py
- 课程设计基于FPGA数字钟课程设计源码+课设报告(95分以上).zip
- 基于Java的企业家申报系统设计源码
- Cesium案例,集成各种模型,推演,各种Cesium效果
- 基于Python的Struts2全漏洞扫描利用工具设计源码
- python朴素贝叶斯(Naive Bayes)算法,机器算法
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功