花了4个小时,在matlab中用脚本编辑的小游戏,下面是代码:

大一新生第一次发文章,有什么问题希望大佬们能够提出来。

clc;
clear;
fig=figure("WindowStyle","normal");
hold on;
h=animatedline("Color","b","Marker",".","MarkerSize",50,"MaximumNumPoints",1);
hq=animatedline("Color","r","Marker","hexagram","MarkerSize",8,"MaximumNumPoints",1,"MarkerFaceColor","r");
h1=animatedline("Color","black","Marker",".","MarkerSize",10,"MaximumNumPoints",1);
h2=animatedline("Color","black","Marker",".","MarkerSize",10,"MaximumNumPoints",1);
h3=animatedline("Color","black","Marker",".","MarkerSize",10,"MaximumNumPoints",1);
h4=animatedline("Color","black","Marker",".","MarkerSize",10,"MaximumNumPoints",1);
h5=animatedline("Color","black","Marker",".","MarkerSize",10,"MaximumNumPoints",1);
j1=animatedline("Color","r","Marker",".","MarkerSize",50,"MaximumNumPoints",1);
j2=animatedline("Color","r","Marker",".","MarkerSize",50,"MaximumNumPoints",1);
j3=animatedline("Color","r","Marker",".","MarkerSize",50,"MaximumNumPoints",1);
j4=animatedline("Color","r","Marker",".","MarkerSize",50,"MaximumNumPoints",1);
j5=animatedline("Color","r","Marker",".","MarkerSize",50,"MaximumNumPoints",1);
j6=animatedline("Color","r","Marker",".","MarkerSize",50,"MaximumNumPoints",1);
j7=animatedline("Color","r","Marker",".","MarkerSize",50,"MaximumNumPoints",1);
j8=animatedline("Color","r","Marker",".","MarkerSize",50,"MaximumNumPoints",1);
j9=animatedline("Color","r","Marker",".","MarkerSize",50,"MaximumNumPoints",1);
j10=animatedline("Color","r","Marker",".","MarkerSize",50,"MaximumNumPoints",1);
set(gcf,"WindowButtonMotionFcn")
direction=[0,0];%运动方向
xy=[500,500];%士兵在的坐标
v=10;%士兵的基本速度
x1=linspace(0,0,5);
y1=linspace(0,0,5);%子弹的坐标
v1=50;%子弹的速度
d=zeros(2,5);%子弹的方向变量
d1=zeros(2,10);%敌人的方向变量
fenshu=0;%设置分数
x2=linspace(0,0,10);
y2=linspace(-1000,-1000,10);%敌人的坐标
v2=20;%敌人的移动速度
tn=[10,50,100,200,250,300,350,400,450,500];
p=0;
bre=1;
hold on;
for i=1:20000axis([0,1000,0,1000])xy1=get(gca,"CurrentPoint");%鼠标点的位置xy2=[xy1(1,1),xy1(1,2)];direction=(xy2-xy)/norm(xy2-xy);xy=xy+direction*v;%士兵随鼠标移动xy3=xy+direction*20;%士兵枪的位置%d=repmat(direction',1,5);%子弹的初始方向for j=1:5if x1(j)<0||x1(j)>1000||y1(j)>1000||y1(j)<0x1(j)=-1000;y1(j)=-1000;endend%子弹待命i1=rem(i,25);if rem(i1,5)==0x1((i1+5)/5)=xy(1);y1((i1+5)/5)=xy(2);d(:,(i1+5)/5)=direction';end%产生子弹for j=1:5u=d(:,j);x1(j)=x1(j)+v1*u(1);y1(j)=y1(j)+v1*u(2);end%子弹射出for j=1:10if x2(j)<0||x2(j)>1000||y2(j)>1000||y2(j)<0x2(j)=-1000;y2(j)=-500;endend%敌人待命for j=1:10if i==tn(j)p=p+1;endend%随时间增加敌人增多for j=1:pt4=fix(4*rand(1)+1);if t4==1&&y2(j)<0x2(j)=0;y2(j)=1000*rand(1);endif t4==2&&y2(j)<0x2(j)=1000;y2(j)=1000*rand(1);endif t4==3&&y2(j)<0y2(j)=0;x2(j)=1000*rand(1);endif t4==4&&y2(j)<0y2(j)=1000;x2(j)=1000*rand(1);endend%敌人随机生成在范围内for j=1:pt2=[xy(1)-x2(j);xy(2)-y2(j)];d1(:,j)=t2/norm(t2);t2=d1(:,j);x2(j)=x2(j)+v2*t2(1);y2(j)=y2(j)+v2*t2(2);for i2=1:5if x2(j)>(x1(i2)-30)&&x2(j)<(x1(i2)+30)&&y2(j)>(y1(i2)-30)&&y2(j)<(y1(i2)+30)x2(j)=-500;y2(j)=-1000;fenshu=fenshu+100;endendif xy(1)>x2(j)-20&&xy(1)<x2(j)+20&&xy(2)>y2(j)-20&&xy(2)<y2(j)+20text(150,800,"game over!",'Color','r','FontSize',50);bre=0;endendtitle('分数:',fenshu);addpoints(h,xy(1),xy(2));addpoints(hq,xy3(1),xy3(2));addpoints(h1,x1(1),y1(1));addpoints(h2,x1(2),y1(2));addpoints(h3,x1(3),y1(3));addpoints(h4,x1(4),y1(4));addpoints(h5,x1(5),y1(5));addpoints(j1,x2(1),y2(1));addpoints(j2,x2(2),y2(2));addpoints(j3,x2(3),y2(3));addpoints(j4,x2(4),y2(4));addpoints(j5,x2(5),y2(5));addpoints(j6,x2(6),y2(6));addpoints(j7,x2(7),y2(7));addpoints(j8,x2(8),y2(8));addpoints(j9,x2(9),y2(9));addpoints(j10,x2(10),y2(10));drawnow;if bre==0break;endpause(0.1);
end

用matlab制作一个打枪的小游戏相关推荐

  1. 使用小程序制作一个飞机大战小游戏

    此文主要基于微信小程序制作一个飞机大战小游戏,上手即用,操作简单. 一.创建小程序 二.页面实现 三.代码块 一.创建小程序 访问微信公众平台,点击账号注册. 选择小程序,并在表单填写所需的各项信息进 ...

  2. 100行代码,使用 Pygame 制作一个贪吃蛇小游戏!

    作者 | 周萝卜 来源 | 萝卜大杂烩 相信我们大家都玩过贪吃蛇游戏,今天我们就从头一起来写一个贪吃蛇小游戏,只需要100多行的代码就完成了. 用到的 Pygame 函数 贪吃蛇小游戏用到的函数 功能 ...

  3. 微信小程序|使用小程序制作一个足球拼图小游戏

    世界杯的意义永远不止是冠军,它是每个精彩的瞬间,是呐喊,是青春.此文用小程序制作一个足球的拼图小游戏,一起为世界杯疯狂吧! 开发步骤 一.工具安装 二.功能实现 1 . 提示图展示 2 . 绘制画布内 ...

  4. html5制作端午节游戏,意派Epub360怎么制作一个端午节H5小游戏页面?

    六月已经过了三分之一,"粽子节"也马上要到了,每当这时候,又到新媒体运营人和设计师头秃的时刻,在传统的节日里,如何把传统的节日使用互联网元素表现,让更多的年轻人能够参与进来,H5这 ...

  5. 使用PlayCanvas制作一个简单的小游戏(一)

    我们使用PlayCanvas做了一个"掂球"的小游戏,在这个小游戏中玩家需要点击落下的足球使之停留在空中. 本教程包含如下主题: 1 场景(Scene)和层级(Hierarchy) ...

  6. html5制作端午节游戏,零代码怎么制作一个端午节H5小游戏页面?

    不光端午节,任何小游戏类型都可以轻松搞定! 六月已经过了三分之一,"粽子节"也马上要到了,每当这时候,又到新媒体运营人和设计师头秃的时刻,在传统的节日里,如何把传统的节日使用互联网 ...

  7. 用turtle库制作一个简单的小游戏《鸡子大战篮球》

    刚上大学,学习python不到两月半,连简单的字典.元组数据类型都还没有捂熟.这不刚好python小组作业是用turtle库画自己喜欢的图案吗,在我们小组的努力下我们画好了5只小只因,于是我就大胆的进 ...

  8. python打地鼠脚本_制作一个打地鼠的小游戏!100行Python代码轻松搞定

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于萝卜大杂烩 ,作者周萝卜 游戏画面 首先先进行游戏画面排版, classTopWin ...

  9. 基于C#制作一个飞机大战小游戏

    此文主要基于C#制作一个飞机大战游戏,重温经典的同时亦可学习. 实现流程 1.创建项目 2.界面绘制 3.我方飞机 4.敌方飞机 5.子弹及碰撞检测 实现流程 1.创建项目 打开Visual Stud ...

最新文章

  1. 测试晶面间距软件_丽江导电橡胶电阻率测试仪生产商
  2. 2020年阿里大数据一面面经,看看你还有啥不知道的?
  3. centos 安装低版本内核_Linux 升级内核
  4. 报名 | TensorFlow China Roadshow 正式开启
  5. 时间计算本质理论2-时间产生的虚拟化
  6. head rush ajax chapter4 DOM
  7. 三位bcd加法计数器_两个8位BCD编号的加法| 8085微处理器
  8. 【opencv学习】【图像的数值计算操作】
  9. 人如果没有愿望。。。。。。
  10. 第四季-专题5-内核模块开发
  11. 网站服务器和空间大小,网站服务器和空间大小
  12. 四线温度探头怎么接线_热电阻的接线方式
  13. oracle 体系架构图
  14. 利用猜根法求解三阶行列式的特征值
  15. 钟表维修管理系统技术解析(八) 保修记录、新增、修改、报废
  16. “一年前,我来到国企搞IT”
  17. 微信公众号Makrdown编辑器,语法你懂吗?
  18. sqli-lab安装中遇到的报错
  19. PacBio三代甲基化分析流程(不包含序列组装)
  20. Flink DataStream API 介绍

热门文章

  1. 当贝投影F3和当贝投影K1 有什么区别 哪个好详细性能配置对比
  2. 中国武打电影最经典的十个打斗场面
  3. 对象可以创建数组吗_投保关系丨可以给对象买保险吗?
  4. VSCode安装ESP32开发环境ESP-IDF
  5. 探索 Web 2.5 游戏的生存之道:crypto 的颠覆性用对地方了吗?
  6. 一个2-3年的运营,应该有的6点觉悟
  7. 自动刷淘宝喵币!拿红包都靠这牛逼的脚本...
  8. 将小米平板2从低版本安卓适配到高版本的若干收获与思考
  9. python ipados_iPadOS13正式版下载-iPadOS13正式版描述文件下载官方版-西西软件下载...
  10. “量子霸权”道路上的是与非,物理学家如何做到“信达雅”?