【MATLAB小游戏】青蛙吃苍蝇

  • 内容
  • 代码
  • 图片
  • 其他

by 今天不飞了

春节在家闲着无聊写的,游戏本身没有可玩性,仅为给大家分享思路。
MATLAB可以设计一些低性能的游戏。


内容

视频链接《MATLAB可以写游戏吗?可以。》

代码

function FrogAndFly()
clc
%% {窗口初始化}
axesrange = [-10 10 -10 10]*4;
figure('position',[300 100 700 700],'color','w','menubar','none')
set(gcf,'WindowButtonMotionFcn',@currentPt);
set(gcf,'WindowButtonDownFcn',@ButtonDownFcn);
ax = axes('position',[.05 .05 .9 .85],'xcolor','none','ycolor','none'); hold all;
axis(ax,axesrange); box off;
colormap(ax,'hot');
caxis(ax,[.5 2]);%% {对象初始化}
% 青蛙
[x,y,hp] = meshgrid(1:-0.01:-1,1:-0.01:-1,0);
img1 = imread('frog.png');
h1 = surf(x*20,y*20-5,hp,'EdgeAlpha',0);
set(h1,'CData',img1,'FaceColor','texturemap');% 苍蝇
img2 = imread('fly.jpg');
[x,y,hp] = meshgrid(1:-0.02:-1,1:-0.02:-1,0);
flyx = x*2;
flyy = y*2;
ball = surf(flyx+20,flyy+20,hp,'EdgeAlpha',0);
set(ball,'CData',img2,'FaceColor','texturemap');% 眼睛
num = 18;
out1 = drawcircle(1,num);
rw = 4.4;
rk = 2;
eyek1pos = [-8.5,5.8];
eyew1 = plot(out1(:,1)*rw+eyek1pos(1),out1(:,2)*rw+eyek1pos(2),'-','Color',[1,1,1]*0.6);
eyek1 = plot(out1(:,1)*rk+eyek1pos(1),out1(:,2)*rk+eyek1pos(2),'k-','LineWidth',12);
eyek2pos = [9,5.8];
eyew2 = plot(out1(:,1)*rw+eyek2pos(1),out1(:,2)*rw+eyek2pos(2),'-','Color',[1,1,1]*0.6);
eyek2 = plot(out1(:,1)*rk+eyek2pos(1),out1(:,2)*rk+eyek2pos(2),'k-','LineWidth',12);% 嘴巴
rm = 2;
out2 = drawcircle(0.5,num);
mouthpos = [0.4,4];
mouth = plot(out2(:,1)*rm+mouthpos(1),out2(:,2)*rm+mouthpos(2),'r-','LineWidth',2);
state = 1;%% {执行}
while 1if ~isvalid(ax)breakenddrawnow
end% 鼠标移动function currentPt(~,~)cp = get(gca,'currentpoint');p = cp(1,1:2);p = [min(max(p(1),axesrange(1)),axesrange(2)),...min(max(p(2),axesrange(3)),axesrange(4))];ball.XData = flyx+p(1);ball.YData = flyy+p(2);w = 2;p1 = p-eyek1pos;if norm(p1)>rw-rkv = p1/norm(p1);eyek1.XData = out1(:,1)*rk+eyek1pos(1)+v(1)*w;eyek1.YData = out1(:,2)*rk+eyek1pos(2)+v(2)*w;elseeyek1.XData = out1(:,1)*rk+eyek1pos(1)+p1(1);eyek1.YData = out1(:,2)*rk+eyek1pos(2)+p1(2);endp2 = p-eyek2pos;if norm(p2)>rw-rkv = p2/norm(p2);eyek2.XData = out1(:,1)*rk+eyek2pos(1)+v(1)*w;eyek2.YData = out1(:,2)*rk+eyek2pos(2)+v(2)*w;elseeyek2.XData = out1(:,1)*rk+eyek2pos(1)+p2(1);eyek2.YData = out1(:,2)*rk+eyek2pos(2)+p2(2);endend% 鼠标点击function ButtonDownFcn(~,~)if statestate = 0;cp = get(gca,'currentpoint');p = cp(1,1:2);p = [min(max(p(1),axesrange(1)),axesrange(2)),...min(max(p(2),axesrange(3)),axesrange(4))];ball.XData = flyx+p(1);ball.YData = flyy+p(2);p1 = p-mouthpos;xy = out2*rm+mouthpos;if norm(p1)>rm% 最近dis = sqrt(sum((xy(1:num,:)-p).^2,2));[dis,idx] = sort(dis);dis = dis(1:floor(num/2));idx = idx(1:floor(num/2));% 方向tmp = xy(idx,:);v = (p-tmp(1,:)).*(mat2gray(dis(1)./dis)*0.9+0.1);TT = sqrt(ceil(norm(v(1,:))))+8;for t = 1:TTxy(idx,:) = xy(idx,:)+v/TT;xy(num+1,:) = xy(1,:);mouth.XData = xy(:,1);mouth.YData = xy(:,2);pause(0.005)drawnowendfor t = 1:TTxy(idx,:) = xy(idx,:)-v/TT;xy(num+1,:) = xy(1,:);mouth.XData = xy(:,1);mouth.YData = xy(:,2);pause(0.005)drawnowendendstate = 1;endendend% 画圈圈函数
function out = drawcircle(w,n)
t = 0:2*pi/n:2*pi;
x = cos(t);
y = sin(t)*w;
out = [x(:),y(:)];
end

图片



其他

大概没有什么bug

【MATLAB小游戏】青蛙吃苍蝇相关推荐

  1. HTML5青蛙吃苍蝇小游戏代码

    简介: HTML5青蛙吃苍蝇小游戏,自适应分辨率,兼容pc端和移动端,背景音乐开启关闭功能 白天和晚上两种游戏背景,直接上传空间目录即可! 网盘下载地址: http://kekewangLuo.cc/ ...

  2. 【MATLAB小游戏】养鱼

    [MATLAB小游戏]养鱼 代码 其他 by 今天不飞了 疫情在家闲着无聊写的,游戏本身没有可玩性,仅为给大家分享思路. MATLAB可以设计一些低性能的游戏. 视频链接<因为疫情被封控十天后, ...

  3. 《游戏开发》html5 益智小游戏-小熊吃星星

    游戏截图 项目结构 一共3个文件 分别为 index.html   script.js style.css index.html文件源码展示 <!DOCTYPE html> <htm ...

  4. matlab 小游戏 找不同的颜色

    用matlab实现的那个找不同颜色的小游戏 游戏截图: 完整代码 function find_different_color hold on axis equal axis(0.5+[0,10,0,1 ...

  5. Python游戏开发,Python实现贪吃蛇小游戏与吃豆豆 附带源码

    开发工具 Python版本: 3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 贪吃蛇 ...

  6. 用Python来实现经典童年小游戏-- 贪 吃 蛇

    贪吃蛇作为一款经典小游戏,早在 1976 年就面世了,我最早接触它还是在家长的诺基亚手机中. 尽管贪吃蛇的历史相对比较久远,但它却有着十分顽强的生命力,保持经久不衰,其中很重要的原因便是游戏厂家不断的 ...

  7. [python] 开发小游戏 豆豆吃花瓣

    今天来做一个python游戏 使用python的游戏框架pygame开开发一个自创的豆豆吃花瓣的游戏[还没有取名字?] 首先看下游戏主目录下有些什么文件 就一个img的文件夹,和一个py的文件 img ...

  8. 【Python游戏】Python各大游戏合集(3):飞翔的小鸟、俄罗斯方块、24点小游戏、吃豆豆小游、扫雷 | 附带源码

    相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 公众号:Python日志 可以关注小编公众号,会不定时的发布一下Python小技巧,还有很多资源可以免费领取哟!! 源码领取:加Pyth ...

  9. matlab小游戏,MATLAB实现五子棋游戏(双人对战、可悔棋)

    本文实例为大家分享了MATLAB实现五子棋游戏的具体代码,供大家参考,具体内容如下 程序介绍: 1.此游戏只可用于双人对战. 2.棋盘颜色.棋盘格数.棋子颜色等参数均可自由设置 3.鼠标点击非棋盘区域 ...

最新文章

  1. 未能创建Microsoft Visual C# 2008 编译器 解决方案【轉】
  2. 十九、I2C驱动及应用
  3. redis 删除操作
  4. python程序加密_Python简单的加密程序:如何循环Z回到A
  5. Hive UDF开发
  6. 2022 电工杯 B 物资配送 全部图解
  7. python下载网页中的pdf文件_Python下载PDF嵌入页面
  8. 软考网络工程师下午题知识点汇总
  9. 适用于Android的最佳笔记应用程序以及如何制作自己的应用程序
  10. javascript 替换全部字符串
  11. office插件开发_推荐!办公必备,Office插件大合集
  12. 交通流特征工程小技巧与思考
  13. 立体几何相关公式推导理解(球体、台体体积)
  14. Thinkphp6调用企业微信官方weworkapi配置接收消息服务器方法
  15. 你可以把Linux内核当成一家软件外包公司的老板
  16. 核电站问题 动态规划
  17. Kaldi WFST最小化算法
  18. AES 解密报错:Given final block not properly padded. Such issues can arise if a bad key is used dur
  19. Serv-U 15 架设FTP文件服务器 图文教程
  20. Android设置本地字体文件ttf

热门文章

  1. TRO与RPO的平衡
  2. MacBook Pro接通电源后电池不充电 Apple官方解决办法
  3. 黑莓系统可以玩java吗_黑莓开发环境搭建windows7+eclipse+BlackBerry Java Plug+JDK6
  4. python之torchlight使用_《火炬之光2》功能型MOD制作教程
  5. 王佩丰Excel24讲_第1讲:认识excel
  6. 提升C++程序运行速度的一些方法
  7. PrintWriter的使用方法
  8. Java后台生成图表——主代码(折线图,饼状图,柱状图,-》并产出图片PDF或其他格式的图片内容)
  9. 用 Python 帮财务小妹生成 Excel 报表,小妹直说一辈子。。。
  10. 张驰(中国著名男装设计师) - 搜狗百科