自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序人生

记录技术点滴

  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 打砖块--脚本的property属性(8)

之后将Bullet拖入Prefab文件夹下,制作为一个预制体,这个Bullet目前比较大,将Scale在Node组件中设置为0.8,0.8,0.8,如下图。我们这个游戏控制Camera移动,故而可以将Bullet生成在Camera的位置,并给Bullet一个向前方向的速度,这样就可以向前发射了。在文件夹Materials下创建一个Bullet的材质,并将颜色设置为红色,然后将这个材质赋值给Bullet对象。首先制作一个子弹对象,在场景中创建一个3D的Sphere球体,并重命名为Bullet,如下图。

2025-07-24 18:34:56 188

原创 打砖块--控制相机的移动(7)

如果这个时候运行游戏,会发现游戏已经可以移动了,但是会发现移动的速度非常快,这是因为触摸偏移是以像素为单位,所以随便一动就是上百的像素,因为当比如大拇指放在屏幕上时就有50像素的大小,所以随便移动就过百了。那么通过getDelta就可以控制相机的移动了,移动的话在OnTouchMove里进行实现,如下图,在CameraController脚本里的onTouchMove里编写如下代码。首先相机要控制左右移动,会发现相机的左右移动对应的是X轴,而上下移动则对应的是Y轴,如下图。

2025-07-23 23:50:32 131

原创 打砖块--监听TOUCH_MOVE和TOUCH_END事件(6)

在onTouchStart方法里是有一个参数的为EventTouch变量,里面就包含了触摸的屏幕里的位置,如下图,getLocation就可以获取到一个触摸的位置。另外还有一个touchMove事件,如下图,touchMove会在每一帧触发,后面就可以用touchMove来控制相机的移动。因为要根据触摸移动的距离控制相机移动,则可以用getDelta方法来得到移动偏移,如下图。这个方法获得的是屏幕坐标系的位置,左下角为(0,0)点,X轴向右,Y轴向上。除了有触摸开始事件,还有触摸结束事件,如下图。

2025-07-23 22:50:08 113

原创 打砖块--监听触摸事件(5)

代码中则使用input模块进行事件的检测,如下图所示,定义一个onTouchStart方法用于处理触摸按下时的事件。input.on就是告诉输入系统,我们要绑定TOUCH_START事件,这个事件与当前对象里面的touch_start方法绑定起来。这里只是进行了绑定,触摸的检测过程都由系统完成,系统检测到事件后,就会将事件传递给onTouchStart。接下来要控制摄像机的移动,首先要监测触摸事件,监测是往哪个方向移动,首先创建一个CameraController脚本,并将其挂在Camera对象身上。

2025-07-23 21:20:36 108

原创 打砖块--cocos creator的脚本基础(4)

默认的Start方法在场景运行时,将调用一次每个组件的Start方法。而默认的Update方法则会在每一帧都执行一次,deltaTime是每一帧的时间,一般是1/60秒。但时间不是固定的,要看每一帧需要处理的数据,但整体在1/60秒上下。在添加组件的时候,显示的就是ccclass命名的名字。初始化代码可以放在Start里,而需要频繁监测的代码则可以放在Update里。Component是所有组件的一个基类,这个基类提供所需最基本的功能。第一行是指导入了哪些组件,那么在代码中就可以使用这些组件方法。

2025-07-22 22:46:21 215

原创 打砖块--墙体的创建(3)

创建一个文件夹为Materials,然后右键鼠标,点击创建-材质,并将材质重命名为Wall。删掉之前场景中除Plane外所有物体,并创建一个新的Cube,并重命名为Wall,并将y轴设为0.5,这样就正好位于地面上。在资源管理器里创建一个Prefabs文件夹,并将Wall拖入到这个文件夹内,将其制作成一个Prefab。然后选中场景中的Wall物体,将创建的材质拖到Materisxia的[0]处即可。在调整Cube的位置时,按住ctrl键,那么Cube就会一米一米的进行移动。

2025-07-22 15:11:52 143

原创 打砖块--cocos creator中的刚体与碰撞(2)

但如果这是运行游戏会发现,Cube添加rigibody后,会穿过plane掉落下去。因此在cocos中,MeshRenderer组件用来控制物体的显示,而Collider组件则用来模拟物体真实的形状。另外还需要为地面也添加一个PlaneCollider组件,如此Cube就可以与Collider组件发生碰撞了。这时候就需要用到刚体组件,那物体拥有物理属性,从而可以模拟物理行为。如下图,添加Rigibody组件。接着上面的文章,这些Cube是需要进行物理模拟的,需要进行物体之间的碰撞,它需要受到力的冲击等。

2025-07-22 14:22:35 146

原创 打砖块--cocos creator中的Prefab(1)

在场景中添加一个Cube,然后通过ctrl+D复制多份的Cube,当然如果每一个Cube单独去调整会非常的麻烦,因此这里需要创建一个Cube的Prefab。这个时候在复制这个Cube时,只需要调整这个Cube,那么所有复制出的Cube都会同时修改了。但是像比如材质属性则会都会同步。如果在Prefab某一个复制体身上进行了修改,希望同步到Prefab里,那么就可以点击复制体右上角的勾按钮,如果将更新复制体所在的Prefab。首先创建一个地面Plane,重命名为Ground,并将Scale设置为3,3,3。

2025-07-22 14:06:55 158

原创 cocos creator中世界坐标与本地坐标

比如首先构建一个默认的坐标系O,里面有两个点A(2,1)和B(3,2)。如果此时以A点在构建一个坐标系,那么B点在A里面坐标变为(1,1).此时O可以成为世界坐标系,而A可以称为一个本地坐标系。B点的位置一直没有发生改变,只是在不同的坐标系中,位置不一样。如果将Cube-002放到Cube下,就变成了Cube本地坐标系下的物体,此时坐标值就变为本地坐标系下的4.907。所以在cococs中每个物体都有两个位置,一个世界位置,一个本地位置。一般都会定义一个不变的世界坐标,然后里面会有不同的局部坐标。

2025-07-22 09:50:37 87

原创 cocos creator中物体的位置、旋转与缩放

另在选中物体后,属性检查器中会有一个Node节点,其中的Position、Rotation、Scale就对应了物体的位置、旋转和缩放,因此也可以在这里对其进行调整。移动工具有三个轴,通过这三个轴可以调整物体的位置。另外三个轴每两个轴之间有一个面,点击面则可以控制物体在面上移动,如下图中红、绿、蓝的三个方形面。旋转则分别代表围绕X、Y、Z轴进行旋转,紫色表示绕Z轴旋转,红色表示绕X轴旋转,绿色表示绕Y轴旋转。缩放工具用来控制在某个方向上的放大或缩小,点击中间的灰色小球则可以对物体进行等比例的缩放。

2025-07-21 19:16:34 130

原创 cocos creator中场景物体的聚焦

在场景编辑的过程中,有时候可能移动着移动着就找到不需要调整的物体了,那么这个时候可以在层级管理器里找到节点名字,那么可以通过双击节点的名字来进行聚焦,同样也可以使用快捷键F来进行聚焦。聚焦物体之后,可以按住Alt+鼠标左键就可以围绕焦点物体进行旋转。如果是使用的Mac电脑,则快捷键会有所不同,Mac上Command键相当于Ctrl键。另外之所以叫层级管理器,是因为某一个物体可以做另一个物体的子物体,如此就形成了一层一层的关系。形成这种层级关系后,就可以对这三个物体形成一个统一的控制了,比如选中父物体Cube

2025-07-21 07:09:59 168

原创 cocos creator中的场景漫游

那么这就几个按钮,就控制着镜头的前后左右方向(WSAD),另外的两个Q和E则可以控制镜头的向上移动或向下移动。如果感觉镜头的移动速度比较慢,则可以在左上角去调整漫游的速度,如下图。一般在调整场景时,都需要漫游到一个合适的位置,比如说要调整一个Cube,那么就可以通过上诉方法,去靠近这个Cube并进行调整。另外鼠标的滚轮可以拉近或拉远漫游的视野,拉近拉远的速度同样也可以通过上图的“滚轮”选项来进行调整。视野的控制首先需要知道漫游的控制,按下鼠标右键不动,场景右下角会出现6个按键的提示,如下图。

2025-07-20 15:57:21 204

原创 cocos creator中的Node和Component

当选中Light时,会显示Node和cc.DirectionalLight,选择Main Camera时会显示Node和cc.Camera。这些内容在cocos creator中都称为组件(Component),就是说每个物体身上都可以挂很多不同的组件,这个物体将起什么作用,是它身上挂的节点所决定的,所有不同的节点有不同的组件。当我们选中某一个物体时,会发现属性检查器会显示不同的内容。点击属性检查器最下方的添加组件,就可以为物体添加各种功能的组件了,如下图。其中的Node节点是每一个物体都会有的一个组件。

2025-07-20 12:45:36 110

原创 cocos creator中的场景是什么

每一个场景可以包含各种的游戏内容,一个游戏至少要包含一个场景,可以将所有游戏内容都放到一个场景里,也可以根据功能分别创建多个场景。比如每一个不同的副本分别创建一个场景,场景可以理解为管理游戏的一种方式。当我们打开场景时,就可以在层级管理器里查看场景里的内容,场景里每一个物体都是一个Node节点物体。cocos creator中是可以有很多个场景的,每一个场景就好比电影中的一幕一样。场景编辑器则可以看到场景的样子,通过场景编辑器去编辑场景的美术效果。

2025-07-19 21:59:07 123

原创 矩阵与坐标系的关系

向量在几何上能被解释成一系列与轴平行的位移。如向量[1,-3,4]能被解释成位移[1,0,0],随后位移[0,-3,0],最后位移[0,0,4]。将这个位移序列解释成向量的加法为:一般来说,任意向量v都能写为“扩展”形式:另一种略有差别的形式为:注意右边的单位向量是x,y,z轴。让我们将上面的向量和重新写一遍,这次,分别将p,q和r定义为指向+x,+y和+z方向的单位向量,得到:v=xp+yq+zr现在,向量v就被表示成向量p,q,r的线性变换了。向量p,q,r称作基

2021-12-26 12:21:11 4013

原创 向量投影的实现原理

给定两个向量v和n,能将v分解成两个向量:和。他们分别平行于和垂直于n,并满足v=+。一般称平行分量为v在n上的投影。下面我们先求。观察到平行于n,所以可以得到和n的单位向量是相同的,所以可以得到:因此只要能够求出的模,就能够计算出该投影向量的值了。由三角函数可得到:将代入上式得到:又有公式,最终可以得到至此,就求出了v在n上的投影向量。又因为V=+,所以可以得到垂直向量为:...

2021-12-22 11:23:53 2073

转载 快速排序算法的一些记录

一晃工作已经好多年了,回顾这些年找工作的经历,发现快速排序算法经常被面试官问道,在这里做个记录,也是为加深对算法的理解和认识。下面参考一些其他作者写的详解,做一个记录。 快速排序,就是给基准数据找到其正确索引位置的过程。 假设最开始的基准数据为数组第一个元素23,则首先用一个临时变量去存储基准数据,即tmp=23,然后分别从数组的两端扫描数组,设两个指示指标:low指向起始位置,high指向末尾。 首先从后半部分开始,如果扫描到的值大于基准数据...

2021-12-21 09:58:41 121

原创 OpenGL 坐标变换-4

1.向量加减2.向量点积也称为数量积,其结果为一个标量,其定义为几何意义:用于计算两个向量之间的夹角a·b>0 方向基本相同,夹角在0°到90°之间
a·b=0 正交(垂直)a·b另外也用于计算投影,投影计算得到一个标量向量A在B上的投影定义为:则AB = A.B / |B|3.向量叉积两个

2018-02-05 22:15:45 390

原创 OpenGL 二维纹理映射-3

#include #include #include #include #include using namespace std;unsigned int img = -1;GLuint vShader,fShader;//顶点着色器对象GLuint programHandle = -1;GLuint VBO, VAO, EBO;GLuint loadPNGTexture

2018-01-28 10:08:31 493

原创 OpenGL Xcode加入libpng库-2

1.在控制台安装MacPorts软件安装工具2.使用MacPorts安装libpng命令为:sudo port install libpng3.在xcode的工程设置中的Header Search Paths添加/opt/local/include/4.在xcode的工程设置中的Library Search Paths添加/opt/local/lib/通过上面四步后理论

2018-01-28 09:52:02 527

原创 OpenGL VAO和VBO画三角形-1

1.VBOVBO归根到底是显卡存储空间里的一块缓存区(Buffer)而已,这个Buffer有它的名字(VBO的ID),OpenGL在GPU的某处记录着这个ID和对应的显存地址。这里对位置,颜色,纹理坐标,法线,还是其他顶点属性进行设置,但是一个VBO对于交给它存储的数据到底是什么,完全不知道。2.VAOVAO的全名是Vertex Array Object,首先,它不是Buffer-

2018-01-24 21:00:00 875

原创 android.mk文件注解

记录一下android.mk文件里一些语句的含义,方便更好的理解这个文件。

2017-02-01 22:39:27 4537

android-suooprt-v4.jar(包含checkSelfPermission)

android-support-v4.jar,兼容低版本,在eclipse上可用

2017-10-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除