粉丝738获赞2043




好,大家好,我是吴仁南啊。之前有一个视频是打砖块的,然后说评论区超过十个的话,我就会出教学视频,嗯,应该是超过十个了。那我今天就大概讲一下。呃,这个代码。 好,我们先看到。嗯,我先演示一下是怎么样的吧。就是嗯分几个区域,分几个,一个是嗯,我这边就让他输掉,一个是外面这个边框, 这个球会碰到边框就会呃反弹,然后还有上面这个砖块,碰到那个砖块的话,球也是反弹,然后嗯砖块会消失,然后这个下面这个呃板的话会根据鼠标左右动,然后他不会超过这个边框,然后还有这边的分 分数我会往上加,大概就是这么几个东西。嗯,我们来看下代码。嗯,这边的话嗯,球那个球的话 动的话是用那个之前讲过那个顺太画出来的一个球,然后嗯,然后那个下面的板会跟着鼠标动的话,就是之前那个这个嗯 嗯 dig 来实现的。然后这两个的话,其实之前都是有视频出过的,原理是出过的,只是嗯,这等于是给他的应用一下啊,然后把两者结合了一下 看。我们大家来看一下啊。我先看那个顺泰那边吧。嗯,顺泰这边的话 呃,就不多讲了,我只展示一下代码,然后如果你们想跟着敲的话,可以暂停的敲一下。嗯,这边应该这几个应该跟都跟之前是一样的, 一个一个是初始化,一个是 go r 函数,一个是嗯刷新,然后还有一个是删除。好吧,然后这边这边也是一样的 原理我就不讲了,我只展示一下代码。这个啊,这边的话应该都看到了啊。 好,这嗯顺台的讲完了。这边是结构部分,结构部分会比较嗯,比较那个麻烦一点。这边的 初始化的时候,我们就给他构造出一个下面那个板吗?从五十十五开始就是一个板。然后 这边的话我又又多创了一个类来放一些 嗯,放一些这些参数,然后因为这这两个之间得得传数据吗?是吧,我就多放了一个一个静态类来,嗯,传数据。这个的话,嗯嗯,这个零跟引用就删掉吧。就这个这个 pointline 的话,就是那个 就是我们下面那个板,你看这个东西是是下面那个板,然后这个这些的话是那些上面的砖块。 嗯,这个版是嗯 jack 这边初始化的时候勾导出来的一个版。然后这边的话就是获取那个当前鼠标的嗯,当前鼠标的 那个吧,因为这边我放了一个五十的话,我们先看啊。我们先看一下那个吧,那个边框, 我边框是从零零点开始,然后右上角点应该是一百一百五,等于是一个一百乘一百五的一个边,一个矩形的边框。所以说这边结格的中中心点,最初始的点中心点就是五十嘛是吧? 然后这边就去判断当前鼠标的坐标,这是当前鼠标的坐标,然后 它的 x 点如果不等于五十,那相当于呃相当于叫等于是它的板移位置了嘛是吧。所以这个时候呃我们给它一个 double, 获取到这个鼠标这个点, 然后如果如果这鼠标这个 x 轴小于十,他就永远是十。这什么意思呢?就是因为我们这个板的宽度是我们板的宽度是二十嘛, 最小的四十,最大是六十,所以板宽度是二十。所以说哎,我给他弄出来,然后输掉。这个板是二十,就板的中心点 中,中心点最开始五十,然后版的总长是二十的话,左边那部分就是十嘛,所以 所以说板的中心点如果是到十了,他就不会往不会往左边去了。我不是根据碰撞去呃约束的,我直接根据数值来约束了。 就是这个板的中心点最最小是到十,如果是比十小,他就永远是十,这样就可以达到一个不会出框的一个效果。然后右边也是一样的,因为最大是一百嘛,减去十是九十嘛,对吧。然后这个的话, 这是什么呢?这个呢,就是嗯这个版。这个版我们这边是记录了一个初始的版的位置,就是一直在居中那个位置的,所以说我们这边要有一个有一个嗯平移的这么一个局 矩阵,然后去拿它这个东西,因为我们每次这边刷新那个图形,都是克隆一下这个初始的初始的这个 嗯板,然后再根据当前鼠标位置和本来那个鼠标的位置去剪出一个项链来,然后再平移它,这样才是我们这样就可以达到嗯,让这个板跟着鼠标动这么一个状态, 然后这边也是一样的,就实时去画出这个版。这这个应该之前看过 j 跟那期视频的话,嗯,都会的啊,这样就可以达到嗯, 你现在看的他是这个这个东西一直跟着鼠标动,其实鼠标每动一下,他都是重新从最中间 那个区域的。初始这个版克隆了一分,然后位移了,嗯,从鼠标位置这个 嗯,从中间的位置嗯平平移到鼠标位置这个项链,然后把把这个初始的版 平移过来,这样。所以看起来的效果是跟着鼠标。他其实一直每次都是一个新的一个版,他只是每次这个版的位置正好跟鼠标的 x 轴是 x 的值是一样的,所以看起来效果就是嗯跟着鼠标动了。 好,然后这两个讲完的话,我们接下来就就讲那个嗯,主体那个让他动的部分了。 好,这边这边应该这边应该比较清楚吧,就是一个, 我把这个往前提一下。好,这一部分就是打那个框线嘛,边框嘛,从零零点一百零一百一百五零一百五对吧,就是那个框线。 然后这个的话就是嗯这边这个分数,这边这个分数也是直接加到模型空间的,然后 分数后面的分数后面那个数值。我之前也试了,如果是增加那模型空间,我每次变化他的时候,他都会变成问号,问号我不知道怎么解决, 然后我就直接把它也当成了嗯也做了一个顺太,嗯,没有加大模型 空间。就是就是分数后面这个数值,就这个数值,他打完砖砖块会变大这个数值我没有给他加到某些空间,我也是用顺态给他表表示出来的。 你看这边这边有几个,一个是这个那个球,这个是那个分数,然后这是呃,之前看过顺泰做动画那个那期视频的话应该知道是一个计时器,一个 timer, 这个的话就是球运动的那个项链。 好,然后我们我们再看,往下看这边这边的话我是这边这个 move 这个类里面有一个嗯,破烂烂的结合,然后我给他初始化一下,然后最开始 做了一个最左上角的一个,最左上角的这个 pony line, 这个是我,这个是我根据这个做出来的,然后在两重循环,呃这个五的话, 这个五的话是 y 轴,等于是有几呃有几行,然后这个 j 的话是有有几列,就是 哦不对,这个 s 行, j 是列,然后给它不等于是正列了这么二十个出来嘛。然后这二十个的方位是加到模型空间的, 然后的话也是加到了这这个这边给他记录下来的,因为我等会球去碰到那个 嗯,球去碰到哎,其实这个不加到那边也可以, 嗯,家里没事,问题不大好。然后这个初始化的一个项链的话,我给他定的是一个二二,就是往往右上角 呃这么一个方向吗?是吧,这是我初始画的方向。然后这个这个蛇口的话就是那个球了,那个球是初始位置是这么一个位置,圆形的位置。这边就初始一下我们的嗯 timer, 然后它的间隔是一毫秒,然后这个它的每每个间隔 执行的。这个的话比较关键,我们等会再讲。我们接下来把这边讲完。这边的话就是一个启动这个胎门啊,这边的话就是接一个的内容,之前也呃说过的啊,这边如果接一个,你鼠标点击了之后,他就是执行这几个,就是 把这个 time 关掉,然后把这个球删掉,把这个分数删掉。好吧。然后我们接下来主要是讲讲一下这个这个呃 他们执行的内容,然后这边两个的话,如果之前看过视频的话应该也有,如果没有的话,嗯,抄一下,一个是添加模到模型空间,一个是删除这模型空间删除,嗯,暂停抄一下好了。 好。然后我们主要就是讲这边,这边的话是我们把从那个球 楼的那个顺太里面把它转转化出来,因为那边是个 anti 嘛,对吧?然后这个项链的话,这个项链就刚刚我们设置那个项链,然后它它的话 呃他是一个让这个圆动动起来吗?是吧,所以他的圆心呃这个坐标加上这个项链项链如果是二二,他就是往右上角走了吗,对吧?然后这边三个的话,就是碰到右边墙壁,碰到左边墙壁,碰到上方的墙壁, 然后他呃圆心做一个镜像,然后他向量也是根据相应的那个做个镜像,如果是右边的话,他右边和左边的话,他都是 x 方向变成负的了。然后如果是上面碰到的话,就是 y 方向是负了。然后这边的话就是 我们去便利一下所有那个砖块,然后如果这个砖块和圆有焦点的话,就说明他碰到那个砖块了是吧,就把这个值付给这个。然后如果有碰到砖块有焦点的,然后我们就把这个呃 那个分数那个顺态里面的那个 db text 取出来,然后他的值转成 ins 之后加加,再给他复回去,然后这边的刷新的话就是这个我们复回去的这个 db text 对吧?这样的话呢,分数就刷新了吗?对吧?然后这个圆也是一样的,碰到了,碰到了上面这个就是跟碰到上面墙壁一样的,也是圆圆做个镜像,然后限量也是根据要玩方向要变成负的。 然后这边的话就是我们记录那个砖块,那个集合要移除掉被打这个砖块,然后因为他也加大模型空间了嘛,所以要把他从模型空间删除 好。然后接下来的话,呃我们就这边的话就是等这个球碰到了我们这个板,因为我们这个板的上沿是二十,然后球的圆,呃,半径又是五嘛,所以他他的圆性到了二十五的 y 值到了二十五的时候就是碰到我们版了,然后碰到我们版的时候,他这个圆形的 x 坐标在我们版的 最小 x 和最大 x 之间的话,就证明他是被我们板接住了。所以他就是呃像那样的 y 值,他不往下跑的吗?对吧, y 值变成负,他就等于往上跑就反弹了吗,对吧。 然后这边的话是刷新了我们这个球,这边的话如果球到了我们最底下那边的话,就说明我们有事输了吗?就是把这个他们停掉,然后把这两个顺太的东西删掉。 好,这样的话就讲完了。就是最终实现的效果就是嗯,可以弹弹弹弹弹对吧。然后你要如果大家做个拓展的话,嗯,当这个东西 当这个分数到二十的时候就可以给他结束了,大家可以自己试一下。然后我今天就讲这么多吧,如果有什么问题的话,呃,可以留言或者评论区评论,然后或者加群也可以。今天就讲这么多,大家再见。
