




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第基于Matlab制作一款简单的龙舟小游戏没找到合适的背景就自己画了个,大家如果有更好看的可以换一下。。。
步骤
1创建Axes及图片导入
窗口创建:
Mainfig=figure('units','pixels','position',[50100760400],...
'Numbertitle','off','menubar','none','resize','off',...
'name','dragonBoat');
axes('parent',Mainfig,'position',[0011],...
'XLim',[0760],...
'YLim',[0400],...
'NextPlot','add',...
'layer','bottom',...
'Visible','on',...
'YDir','reverse',...
'XTick',[],...
'YTick',[]);
图片导入:
[bkg_C,~,~]=imread('river.png');
[boat_C,~,boat_Alp]=imread('boat.png');
[stone_C,~,stone_Alp]=imread('stone.png');
图片素材可以从这里拿哟
2创建timer函数移动背景
DrawBkgHdl=image([0760],[0400],bkg_C);
tempBkg_C=[bkg_C,bkg_C];
fps=20;
game=timer('ExecutionMode','FixedRate','Period',1/fps,'TimerFcn',@dragongame);
start(game)
functiondragongame(~,~)
t=t+6;
modt=mod(t,720);
newBkg_C=tempBkg_C(:,1+modt:684+modt,:);
set(DrawBkgHdl,'CData',newBkg_C)
3绘制石块并移动
其实是5个石块来回变位置,当一个石块位置减小到负数就把数值增加并重新绘制
stonePos=[600;870;1140;1410];
stonePos=[stonePos,randi([90,330],[4,1])];
fori=1:size(stonePos,1)
drawStoneHdl(i)=image([stonePos(i,1)-39stonePos(i,1)+39],[stonePos(i,2)-20stonePos(i,2)+20],stone_C,'AlphaData',stone_Alp);
functiondragongame(~,~)
%这里是之前写的背景部分代码
%。。。。。。。。。。。
%。。。。。。。。。。。
stonePos(:,1)=stonePos(:,1)-20/3;
stonePos(stonePos(:,1)0,2)=randi([90,330],[1,1]);
stonePos(stonePos(:,1)0,1)=stonePos(stonePos(:,1)0,1)+1080;
forii=1:size(stonePos,1)
set(drawStoneHdl(ii),'XData',[stonePos(ii,1)-39stonePos(ii,1)+39],...
'YData',[stonePos(ii,2)-20stonePos(ii,2)+20]);
4绘制船并创建鼠标回调
boatPos=[380,200];
DrawBoatHdl=image([boatPos(1)-75boatPos(1)+75],[boatPos(2)-50boatPos(2)+50],boat_C,'AlphaData',boat_Alp);
set(gcf,'WindowButtonMotionFcn',@moveBoat,'tag','mov')
functionmoveBoat(~,~)
xy=get(gca,'CurrentPoint');
temp_y=xy(1,2);
temp_y(temp_y100)=90;
temp_y(temp_y340)=330;
boatPos=[380,temp_y];
set(DrawBoatHdl,'YData',[temp_y-50temp_y+50]);
5碰撞判断函数
functionflag=judge(Bpos,Spos)
flag1=abs(Bpos(1)-Spos(:,1))
flag2=abs((Bpos(2)+35)-Spos(:,2))
flag3=flag1flag2;
flag=any(flag3);
dragongame函数做如下改写
functiondragongame(~,~)
%这里是之前一大堆代码
%。。。。。。。。。。
%。。。。。。。。。。
%。。。。。。。。。。
ifjudge(boatPos,stonePos)
stop(game)
set(gcf,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市政工程常见材料及性能分析试题及答案
- 完整工作经历与岗位证明文书(5篇)
- 智慧供应链管理 课件 第七章 智慧采购管理
- 旅游目的地文化与特色知识题
- 经济师考试预测试题及答案准备
- 数字化时代的品牌转型策略计划
- 班级心理健康周的活动安排计划
- 经济法与企业责任试题及答案
- 班主任应对突发事件的能力计划
- 公共关系的职业发展路径试题及答案
- 康复医学康复治疗技术含内容模板
- 无人机技术在农业的应用
- NB-T 47037-2021 电站阀门型号编制方法
- 2024年辅警考试公基常识300题(附解析)
- 前额叶皮质在记忆中的作用与机制
- 小学少先队活动课说课稿
- 妊娠期常见的皮肤病
- T∕CACM 1078-2018 中医治未病技术操作规范 拔罐
- 腹腔穿刺术评分表
- 2024届上海市闵行区三年级英语第二学期期中监测模拟试题含答案
- 电气一次主接线图课件
评论
0/150
提交评论