自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 [Cocos Creator 3.5赛车游戏]第7节 认识Cocos中坐标系的概念:世界坐标和本地坐标

这一节,原本您将会学习到如何接受和处理到来自玩家的触摸屏幕的事件,不过在这之前,您需要学习一下Cocos中坐标系的概念,所以这一章会向您介绍Cocos中的坐标系。

2024-05-16 14:26:45 45

原创 [Cocos Creator 3.5赛车游戏]第6节 使用和控制刚体组件

然后是第二部分,也就是超过2s的情况下就施加一个前方2N的力给刚体。Cocos 中给刚体的质心施加力的方法是applyForceToCenter(force: math.Vec2, wake: boolean),其中:force参数表示要施加的力,由Vec2类型来指定x轴方向和y轴方向的分力各是多少,由于我们要施加的力是正前方2N,所以显然x取0,y取2;现在您已经理解了和使用了物理系统中的刚体组件,还差实现一个效果:“游戏开始2s后的第一帧后的汽车持续受到前方2N的力而改变运动状态”。

2024-05-16 14:26:33 896

原创 [Cocos Creator 3.5赛车游戏]第5节 为汽车节点挂载自定义脚本

在Coscos中,节点不光可以挂载组件,还可以挂载自定义脚本,自定义脚本主要使用到两个方法,第一个方法是start()方法,start 方法会在组件第一次激活时调用,所以start方法往往回写对节点的初始操作,比如设置起始点坐标、设置角色满血状态等,第二个方法是update(dt:number),update方法在游戏的每一帧都会调用,所以update方法往往用来写对节点状态改变的方法,例如更新角色的最新血量、更新角色位置(如果操作者此时正在按着前进按钮)等。

2024-05-16 14:26:20 585

原创 [Cocos Creator 3.5赛车游戏] 第4节 创建汽车节点

在Coscos中,节点不光可以挂载组件,还可以挂载自定义脚本,自定义脚本主要使用到两个方法,第一个方法是start()方法,start 方法会在组件第一次激活时调用,所以start方法往往回写对节点的初始操作,比如设置起始点坐标、设置角色满血状态等,第二个方法是update(dt:number),update方法在游戏的每一帧都会调用,所以update方法往往用来写对节点状态改变的方法,例如更新角色的最新血量、更新角色位置(如果操作者此时正在按着前进按钮)等。您这么想是没错的,这种操作和上面的效果等同。

2024-05-16 14:26:04 930

原创 [Cocos Creator 3.5赛车游戏]第3节 新建项目

您一定还记得上一章对scene也就是场景的解释,所以在这里我们需要创建一个用于承载主游戏逻辑的场景,这个场景中将会包含游戏地图、赛车等实体,所以我称它为主游戏场景。环境已经配置好,现在您将真正的开始开发您的项目,开发项目的第一步是新建项目。创建scene文件夹,当然以后还要创建image、maps等文件夹,不过现在只需要先创建一个场景的文件夹就够了。以上,就是本章的全部内容,现在恭喜您已经学会新建项目了,下一章节我们介绍会用到的基本概念后就会正式开工了。

2024-05-16 11:18:10 326

原创 [Cocos Creator 3.5赛车游戏] 第2节 环境准备

现在你已经能够在Cocos Creator中编辑场景了,但是在Cocos的体系或者多数游戏引擎的体系中,场景需要用脚本来控制,因此你需要为自己安装一个能够编辑typescript的编辑器,虽然现在已经有了能够在Cocos Creator中直接编辑ts文件的高仿VS Code插件,但是使用起来如同您在打CS时从盾牌里看人一个效果,严重影响您发挥全部实力。您可以想象自己是个AI,您收到了一条指令,内容是:“生成一个火箭从地面发射直到刚贴近卡门线的视频,视频的视角是人在地面仰视的视角”。

2024-05-16 11:16:16 852

原创 软著说明文档模板/生成

软著说明文档模板,软著说明文档生成/辅助填写工具,一站式软著说明文档生成系统,网站地址:https://register-pub.com

2024-04-10 16:43:24 393 9

原创 软著材料模板生成方案——软件著作权说明文档材料一站式辅助填写生成工具

软著材料模板生成方案——软件著作权说明文档材料一站式辅助填写生成工具,软著说明文档生成/辅助填写工具,本工具网站可以进行格式和内容的辅助填写,无需把精力浪费到没用的调整格式上,网站地址:https://register-pub.com

2024-04-05 21:09:35 457

原创 【Cocos Creator 3.5实现赛车游戏】10.实现汽车节点的运动逻辑

在这之前您需要想一下真实世界中汽车的漂移的逻辑,在现实中假设一辆汽车以一定的初速度进入一个左转的弯道,这个弯道是一个完美1/4的圆形,汽车如果以我们在电视上看见的漂移方式经过,则需要以弯道的圆心为轨迹的圆心,受力方向一直指向圆心才能通过这个弯道。所以用左转举例,当汽车节点发生左转时每一帧的update函数都需要先根据detalTime来计算出一帧内汽车节点应该转过了x度,然后把当前汽车节点的坐标设置为绕上一步的旋转点旋转过x度后的坐标,再把汽车节点的angle加上x度。5. 处理前进和后退时的阻力系数。

2023-09-12 10:33:30 923 5

原创 【基于Cocos Creator实现的赛车游戏】9.实现汽车节点的控制逻辑

,但是我们现在的情况是坐标点不变而坐标系旋转,但是也不难,点旋转了x角度就相当于坐标系旋转了-x度,反之亦然,所以只需要把上面博客公式中的x换为-x就可以了,sin(-x)=-sin(x),cos(-x)=cos(x)。但是这是在车头面向正前方的情况,当车头有一定旋转角度时,就相当于坐标轴旋转了一定角度,所以在汽车节点angle不为0的时候,相对坐标还要加一层坐标轴旋转后的计算。判断向左还是向右是判断相对位置的x值,同理,判断向前还是向后只需要判断相对位置的y值就可以了。屏幕上面是我点击右前方的输出。

2023-09-12 10:26:43 627

原创 【基于Cocos Creator 3.5的赛车游戏】8.引入触摸屏幕事件并简单的控制小车

我们要实现的效果是小车向玩家点击屏幕的位置移动,所以在代码中的逻辑就是:在每一帧的update的函数中,先获取touchInput的inTouch字段来判断下是否处于触摸状态,如果处于触摸状态,就获取到触摸点,然后将触摸点转换为世界坐标,最后再给小车的刚体组件施加一个由当前小车刚体所在的节点的世界坐标点指向触摸点的世界坐标点的力。console.log('点击结束 点击的X坐标: '+this.touchX+ ' 点击的Y坐标:'+this.touchY+ ' 点击状态:'+this.inTouch)

2023-09-12 10:24:38 551

原创 CocosCreator 长地图相机渲染不全

还有,为何cocos creator 3.x的资料or文章这么少,多数都集中在2.x的版本,还是两三年前的资料了。才能用,但是cc.follow()方法貌似被取消了。2.项目设置里ENABLE TILEDMAP CULLING的勾选是否在取消状态。最后,发现把地图层级的Enable Culling的勾选取消掉就加载全了。5.相机跟随不能设置节点的node,而是要用follow()方法。4.没啥用,只是调整大小,还是加载不全。3.是否没设置组件的group属性。1.地图的图层是否有问题。...

2022-09-01 11:05:17 1181 5

原创 JAVA线程的中断

每个线程都有一个boolean类型的标志来表明线程是否发生了中断,并且包含了中断相关的函数:interrupt()用于设置线程的中断状态为true,isInterrupted()用于返回线程的中断状态,interrupted()方法用于清除中断状态,并返回之前的中断状态。当线程在调用sleep()或者wait()时,对中断的表现为抛出InterruptedException异常并清除中断状态,所...

2019-11-10 23:09:35 241

原创 JAVA的Synchronizer

一、闭锁:可以延迟某一组或一个线程的执行到另一组或另一个线程运行至某一特定点,例如一个服务需要等待它所依赖的服务都已经开始、一个用于计算的线程需要等待另外几项资源准备完毕。CountDownLatch是实现类之一,在CountDownLatch类中,countDown方法用于将计数器减一,await方法则会在调用位置阻塞到计数器为0或者被Interrupt。import java.util.c...

2019-11-06 23:48:50 224

原创 JAVA同步容器和并发容器

一、同步容器:包括Vector、HashTable,以及Collections.synchronizedXXX方法包装过的容器类,同步容器对其类中的每一个对外的方法都使用synchronized关键字进行修饰,以此来保证同步,以Hashtable为栗子:虽然保证了线程安全,但这样每次只有一个线程访问容器,所以在并发的情况下性能上会削弱许多,仍需要在方法中加锁。并且迭代时如果数据发生变动仍然会...

2019-11-02 21:59:33 189

原创 eclipse 找不到或无法加载主类

这里需要的是jre,不能是jdk。

2019-10-03 00:20:46 102

原创 Ubuntu安装Nvidia显卡驱动

https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-18-04-bionic-beaver-linux我用的第一种方法,安装途中遇到了一个/var/cache/apt/archives/libnvidia-compute-390_390.48-0ubuntu3_amd64.deb的版本冲突问题,直接覆盖过去,现在...

2019-08-01 08:48:40 420

原创 Java的各种锁

1.悲观锁:是一种设计思想,并不是指具体实现出来的锁,永远都假设最坏的情况:每次对数据时操作时都会有另一线程前来修改当前数据,所以每次对数据进行操作时都会上锁,这时如果有其他线程对当前数据进行修改,只能等待或阻塞直到锁解开,例如Synchronized、ReentrantLock,按照实现方式这两个也可以叫做阻塞锁。2.乐观锁:是一种设计思想,并不是指具体实现出来的锁,每次操作数据时都认为不会有...

2019-07-31 08:09:51 107

原创 Spring Cloud Ribbon无法将服务名转换为地址

试了许多网上说的,都不管用,后来发现是spring-cloud-starter-eureka依赖项的版本问题,将版本降低后正常运行。

2019-07-16 22:29:22 451

原创 Spring Cloud环境搭建

1.首先在https://start.spring.io/填写artifactId和groupId等相关信息,填写完后下载zip包,解压后用导入到Eclipse,当然也可以在eclipse中自己新建一个maven项目,将以下的pom.xml复制一下。此时pom.xml如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs...

2019-07-16 17:27:56 158

原创 JVM回收算法

堆保存年轻代和年老代。年轻代:年轻代又分为三个区,一个Eden区,两个Survivor区(也可以称为From和To区),默认大小比例为8:1。回收算法:1.起始状态下,年轻代为空,此时new出新对象实例后,放在Eden区(如果是大对象,直接放在年老区),此时From和To区为空。2.程序继续运行,new出来的对象越来越多,当Eden区无法装下新的对象后,触发Minor GC(即对年轻代进行...

2019-06-29 00:09:45 337

原创 JVM内存划分

1.程序计数器:每一个线程都有自己的一个程序计数器,创建线程时被一起创建,用于记录当前字节码执行位置,例如一个线程在执行过程中被挂起,一定时间片后,又继续执行,此时需要进行现场恢复,那么就可以在对应的程序记录器中找到被挂起时的执行地址。2.方法区:用于保存:类结构信息、方法,JDK8之前,运行时常量池、静态变量、持久代也保存在这里,JDK8之后,运行时常量池和静态变量放在堆中,持久代移除。常量...

2019-06-25 23:13:02 114

原创 linux apt按包名搜索

linux apt包名搜索:apt-cache search 内容

2019-01-24 20:03:32 3868

原创 metasploit 连接postgresql

首先启动postgresql服务:service postgresql start找到database.yml文件:find / -name database.ymlcat一下:回到msfconsole中,db_connect一下:。。。不管用,可能是配置有什么问题,所以还是quit回到postgresql中新建一个对应账户和密码,顺便改一下数据库名称:su postgres...

2018-12-04 23:57:11 558

原创 Windows-检测盘符是否为U盘

STORAGE_PROPERTY_QUERY结构体:typedef struct _STORAGE_PROPERTY_QUERY { STORAGE_PROPERTY_ID PropertyId; STORAGE_QUERY_TYPE QueryType; BYTE AdditionalParameters [1];} STORAGE_PROPERTY_QUERY,* PS...

2018-03-17 15:00:45 2163 2

原创 windows内存管理

地址空间:系统中所有可用的内存地址。物理内存:硬件中真实存在的存储空间。虚拟地址空间:对于一个程序来说可以使用所有的内存空间中的地址,但实际往往不能做到和物理地址一 一对应,所以需要转换操作,将程序中的虚拟地址转换为硬盘中的真实地址(分页和分段)。API:1.堆管理--获取、分配:(1)HANDLE HeapCreate(DWORD flOptions,SIZE_T dw...

2018-02-15 23:05:19 212

原创 java引用ScriptEngine解析表达式实现计算器功能

包名:import javax.script.*;使用: String str="2+6%7"; ScriptEngine se=new ScriptEngineManager().getEngineByName("JavaScript"); try{ double d=(Double)se.eval(str); double d=(D...

2017-11-06 13:13:05 781

原创 c++ 建立链表并实现合并

创建两个链表并实现两个链表相加:#include <iostream>using namespace std;struct ListNode{ int val; ListNode *next; ListNode (int x):val(x),next(NULL){}};ListNode * Creat_Link(){ ListNode *head=NULL,*s,*r; int n; cin>>n; while(n!=-1) { s=new ListNode(n); i

2017-10-11 22:52:07 1290

原创 c++ 鼠标控制

windows下获得鼠标位置和控制鼠标:#include #include #include using namespace std;int main(){ char n; POINT p; //获取鼠标位置 while((n=getchar())!='\n') { GetCursorPos(&p); system("cls");//包含在cstdlib中 cout } SetCursorP

2017-10-10 20:45:30 9122

原创 c++ vector

动态数组 vector初始化:vector  myvec //定义一个空的vector容器vector myvec(n) //定义一个含n个元素的vector容器vector myvec(n,m) //定义一个含n个初值都为m的vector容器vector myvec2(myvec1) //复制int arr[ ]={2,3,4,5};

2017-10-09 13:10:21 188

操作系统课设大作业-进程调度模拟

计科专业大二的操作系统课程大作业,实现的是进程调度模拟、内存分配。有图形界面。后端C++,前端WIN32。写的比较垃圾,凑合用,前端还可以再优化一下。开关是右上角圆形的控件,点击开关后再点击载入进程。

2018-12-22

空空如也

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

TA关注的人

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