政安晨【示例演绎虚拟世界开发】(二):Cocos Creator 配置工作环境并运行脚本

在这篇文章中,我们将会为Cocos Creator配置默认的脚本编辑器与预览浏览器,并在配置好的编辑器中实施Cocos Creator脚本编程工作。通过这篇文章,您将会掌握基础的脚本开发知识,同时会对Cocos Creator脚本编程有初步的认知。

配置外部工具

准备好合适的工具,使用好的工具可以让我们事半功倍。

Cocos Creator的脚本编辑器和预览浏览器是支持自定义配置的,我们可以配置为自己喜欢的外部工具。本节将会以配置VSCode编辑器和Chrome浏览器为例,介绍如何给Cocos Creator配置相关的外部工具。

浏览器

Chrome是谷歌公司开发的一款高性能浏览器,具备强大的JavaScript V8引擎,所以成为很多开发者的首选浏览器。正因如此,Chrome浏览器也是Cocos Creator官方推荐使用的预览浏览器。

咱们可以通过搜索引擎搜索Chrome的官方网站来获取最新版本的安装包,并在获取安装包后进行安装:

Chrome浏览器安装icon-default.png?t=N7T8https://www.google.cn/chrome/

VS Code编辑器

VS Code的全称是Visual Studio Code,是微软公司开发的一款跨平台代码编辑器。

VS Code不仅功能强大、易上手,而且对TypeScript非常友好。

正因如此,VS Code还是Cocos Creator官方推荐使用的脚本编辑器。我们可以通过搜索引擎搜索VS Code的官方网站来获取与操作系统对应的安装包,并在获取安装包后进行安装,如下所示:

Visual Studio Codeicon-default.png?t=N7T8https://code.visualstudio.com/

根据大家的使用习惯,可以通过在应用商城安装Chinese中文应用插件的方式把语音改为中文。

配置默认外部程序

 接下来,就可以将它们配置为Cocos Creator的默认外部程序了。在Cocos Creator编辑器主菜单中选择【Cocos Creator】→【偏好设置】选项,打开编辑器的偏好设置面板,如下图所示:

在偏好设置面板中点击【外部程序】选项卡,可以在当前面板下看到Cocos Creator编辑器中的各外部程序的路径配置。由于我们先前并未填写任何外部程序的路径,因此相应的程序路径均为空。我们可以点击【放大镜】图标,将Chrome和VSCode的安装路径填入相应的配置项,即可完成配置,如下图所示:

小伙伴们把各自的路径填入其中即可。

创建和使用游戏脚本

脚本在游戏中具有重要的作用。它们可以用于控制游戏中的角色行为、NPC行为,处理游戏逻辑和事件,创建交互和对话系统,实现特效和动画效果等。

脚本通常由程序员编写,使用特定的脚本语言如TS、C#、Lua、Python等。它们与游戏引擎的核心代码交互,可以访问游戏对象、场景和资源,并通过调用预定义的函数或方法来实现所需的功能。

脚本在游戏中的作用可以具体如下:

  1. 控制角色行为:通过脚本可以实现玩家角色的移动、跳跃、攻击等动作,以及NPC角色的巡逻、追击、攻击等行为。
  2. 处理游戏逻辑和事件:脚本可以检测和响应游戏中的各种事件,如玩家输入、碰撞、触发器等,从而触发相应的逻辑操作和事件处理。
  3. 创建交互和对话系统:通过脚本可以实现玩家与NPC之间的交互和对话,包括触发对话、显示对话框、选择对话选项等。
  4. 实现特效和动画效果:脚本可以用于控制特效的播放、粒子效果的生成、动画的播放和控制等,以增强游戏的画面效果。
  5. 完善游戏功能:脚本可以扩展游戏功能,如创建任务系统、技能系统、商店系统等,使游戏更加丰富和有趣。
  6. 优化游戏性能:脚本可以用于优化游戏性能,如实现资源管理、内存管理、碰撞检测等,以提高游戏运行的效率和流畅度。

总之,脚本在游戏中扮演着非常重要的角色,通过编写和调用脚本,开发者可以快速实现游戏中的各种功能和效果,使游戏更加丰富和具有交互性。

脚本的创建

在Cocos Creator中,脚本也是资源的一部分。在资源管理器中创建的脚本,默认是一个NewComponent组件,称为脚本组件。在资源管理器中右击,并在弹出的快捷菜单中选择【创建】→【脚本(TypeScript)】命令,即可创建一个新的脚本,如下图所示:

可以看到下面的Game脚本:

在Game脚本创建完成后,我们可以在资源管理器中选中它,此时在属性检查器中,就可以看到脚本对应的内容了。这些代码是编辑器在脚本创建时自动生成的预设内容,如下所示:

代码如下:

import { _decorator, Component, Node } from 'cc';
const { ccclass, property } = _decorator;

/**
* Predefined variables
* Name = Game
* DateTime = Sat Feb 24 2024 13:05:43 GMT+0800 (中国标准时间)
* Author = zachsnowden
* FileBasename = Game.ts
* FileBasenameNoExtension = Game
* URL = db://assets/Game.ts
* ManualUrl = https://docs.cocos.com/creator/3.4/manual/zh/
*
*/

@ccclass('Game')
export class Game extends Component {
   // [1]
   // dummy = '';

   // [2]
   // @property
   // serializableDummy = 0;

   start () {
       // [3]
   }

   // update (deltaTime: number) {
   //     // [4]
   // }
}

/**
* [1] Class member could be defined like this.
* [2] Use `property` decorator if your want the member to be serializable.
* [3] Your initialization goes here.
* [4] Your update function goes here.
*
* Learn more about scripting: https://docs.cocos.com/creator/3.4/manual/zh/scripting/
* Learn more about CCClass: https://docs.cocos.com/creator/3.4/manual/zh/scripting/decorator.html
* Learn more about life-cycle callbacks: https://docs.cocos.com/creator/3.4/manual/zh/scripting/life-cycle-callbacks.html
*/

编辑脚本

此时如果我们尝试对代码进行编辑就会发现,在属性检查器中看到的代码是没有办法直接进行编辑的。

如果我们需要编辑对应的脚本文件,则可以在资源管理器中双击需要编辑的脚本此时Cocos Creator会使用外部编辑器打开对应的脚本文件,我们直接在外部编辑器中对代码进行编辑即可。

接下来我们直接在VS Code中对代码进行修改,在start函数中添加一行hello world的输出语句,如下所示:

    start () {
        // [3]
        console.log('hello world');
    }

保存一下代码。

在代码修改完成之后返回Cocos Creator,再次通过属性检查器查看Game脚本,此时可以发现在VS Code界面中编辑的内容已经同步过来了,与此同时Cocos Creator也会自动检测脚本的改动并迅速编译,开发者无须在Cocos Creator中进行多余的刷新操作。

绑定脚本

在通常情况下,没有被加载的游戏脚本是不会自动运行的,为了方便后续测试脚本,我们可以将其绑定到场景节点中,让其在加载节点时被触发执行。因此在脚本编写完成之后,我们还需要对脚本进行绑定操作。

在Cocos Creator中,脚本可以作为节点的组件存在,因此我们可以通过给节点添加组件来绑定脚本。

编辑器提供了两种方式来添加组件:

一种是拖动式添加另一种是通过点击【添加组件】按钮添加。下面我们采用后者来对脚本进行绑定操作。

下面我们采用后者来对脚本进行绑定操作。

在场景中创建一个空节点,并让其作为脚本组件的载体。右击层级管理器内的空白区域,在弹出的快捷菜单中选择【创建】→【空节点】命令,并将其重命名为Node,如下图所示:

为Node节点添加Game脚本组件(属性检查器中):

经过刚才的操作,Game脚本将会以组件的形式绑定到对应的节点下,如图2-11所示。

如果想要删除节点下的组件,则可以点击组件右上方的【齿轮】图标,并在弹出的菜单中选择【删除组件】命令,即可删除组件,如下图所示:

hello游戏脚本

为了让脚本能够被触发执行,我们将其绑定到了场景节点上。

当加载场景时场景下的所有子节点都会被加载;

当加载到Node节点时该节点上绑定的组件也会被同时加载,此时,Game脚本将会以组件的方式运行。

因此,当我们在预览运行Game场景时,脚本中添加的调试输出语句【hello world】也将会被触发。

为了测试调试输出语句,接下来我们将通过Chrome浏览器的开发者工具来查看相关的调试输出。如果你已经配置了Chrome浏览器为默认预览浏览器,在点击Cocos Creator编辑器的预览按钮时,Game场景就会以浏览器预览方式在Chrome浏览器中打开。

我们可以使用快捷键F12,或者点击Chrome浏览器右上角的三个点的按钮,选择【更多工具】→【开发者工具】命令,打开浏览器的开发者工具,如下图所示:

Chrome控制台中打印的 hello world

至此,您已经熟悉了如何配置Cocos Creator的工作环境,并运行脚本程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/420970.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何将一台电脑主机分裂成两台、三台?

有用户问:如何将一台电脑主机拆分成两台、三台甚至更多台使用? 这是什么意思? 简单解释一下:在一台计算机主机上,连接两台、三台或者更多台显示器,然后将这台主机的硬件资源分配给这些显示器,然…

退休开便利店真的靠谱吗?2024比较赚钱的创业项目排行

近日多个退休后开便利店赚钱的新闻登上热搜,但是,小编对此有疑问,退休的老年人开便利店真的是一个好选择吗? 第一、便利店最基本的转让费,装修费,进货等等,这笔开支非常大,足以掏空老…

librtmp源码分析

阅读了librtmp的源码,简单记录下。 首先补充下AMF格式基本知识 1 AMF格式 AMF是Action Message Format(动作消息格式)的简写,它是一种二进制的数据格式。它的设计是为了把actionscript里面的数据(包括Object, Array, Boolean, Number等)序列化成二进制…

Spring - InitializingBean、@PostConstruct、@Bean(initMethod = “init“)和构造方法执行优先级比较

执行顺序优先级 构造方法 > postConstruct > afterPropertiesSet > init方法 代码案例 Component public class InitializingBeanTest implements InitializingBean {public InitializingBeanTest(){System.out.println("构造方法");}Overridepublic void…

如何学习、上手点云算法(一):点云基础

写在前面 本文内容 点云算法的学习基础,入门方法,相关领域,资源,开源库,算法等的介绍; 以Open3D和PCL等为基础工具的点云处理代码讲解、实现; 文中涉及的参考以链接形式给出,涉及文…

计算机网络_2.1 物理层概述

2.1 物理层概述 一、物理层要实现的功能二、物理层接口特性 B站 深入浅出计算机网络 2.1物理层概述 一、物理层要实现的功能 物理层要实现的功能就是在各种传输媒体上传输比特0和1,进而给上面的数据链路层提供透明传输比特流的服务。 数据链路层“看不见”&#xff…

Golang 开发实战day01 - Variable String Numeric

Golang 教程01 - Variable String Numeric 1. Go语言的重要性 Go语言,又称Golang,是一种由Google开发的静态编译型编程语言。它于2009年首次发布,并在短短几年内迅速流行起来。Go语言具有以下特点: 语法简单易学:Go…

【C++从0到王者】第四十八站:最短路径

文章目录 一、最短路径二、单源最短路径 -- Dijkstra算法1.单源最短路径问题2.算法思想3.代码实现4.负权值带来的问题 三、单源最短路径 -- Bellman-Ford算法1.算法思想2.算法实现3.SPFA优化4.负权回路 四、多源最短路径 -- Floyd-Warshall算法1.算法思想2.算法实现 一、最短路…

项目解决方案:社会视频资源接入平台解决方案

目 录 一、项目背景 二、方案简述 1、监控功能 2、视频录像 三、系统构架 四、产品功能及特点 1、实时图像点播 2. 远程控制 3. 存储和备份 4. 历史图像的检索和回放 5、报警管理 (1)报警配置 (2)报警的…

优化Vue项目中 WebStorm:2023.3 对 CSS 和 HTML 的默认注释

前言 WebStorm是一种基于JetBrains IntelliJ平台的集成开发环境(IDE),专门用于Web开发。它支持JavaScript、HTML和CSS等语言,并提供了丰富的功能和工具,以提高开发人员的效率。但是,在开发Vue项目中发现&a…

通过实验验证GAP、GMP、FC性能表现

深度学习 文章目录 深度学习一、背景二、什么是GAP三、GAP在Keras中的定义四、GAP VS GMP VS FC五、结论 一、背景 Global Average Pooling(简称GAP,全局池化层)技术最早提出是可以替代全连接层的一种新技术。在keras发布的经典模型中,可以看到不少模型…

Cy8c42(2.软件串口使用)

1.前言 原本早上想开始用可编程逻辑模块来做RS寄存器的,但是RS寄存器要两个输入,板载只有一个按键,那就先看看串口吧,把串口作为一个按键用。 2.初始化 芯片内部一共有两种串口 (1)软件串口&#xff08…

企业数字化转型的第一步:由被动多云向主动多云转变

随着经济环境、市场形势、技术发展、用户需求等诸多因素的变化,数字化转型为企业进一步提升效率和竞争力、提供更加丰富的个性化产品和服务、进行业务场景创新、探寻新的增长机会和运营模式提供了崭新的途径。越来越多的企业意识到,数字化转型已不是企业…

【嵌入式——QT】数值输入和显示组件

数值输入和显示组件 QSlider:滑动条,通过滑动来设置数值;QScrollBar:卷滚条,与QSlider类似,还可以用于卷滚区域;QProgressBar:进度条,一般用于显示任务进度,…

【Leetcode每日一题】二分查找 - 在排序数组中查找元素的第一个和最后一个位置(难度⭐⭐)(18)

1. 题目解析 Leetcode链接:34. 在排序数组中查找元素的第一个和最后一个位置 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 核心在于找到给定目标值所在的数组下标区间,设计一个O(logn)的算法。 2. 算法原…

集成测试之我的初步学习与总结

基本概念 将软件集成起来后进行测试。 集成测试又叫子系统测试、组装测试、部件测试等。集成测试主要是针对软件高层设计进行测试,一般来说是以模块和子系统为单位进行测试。 集成测试包含的层次 模块内的集成,主要是测试模块内各个接口间的交互集成…

【C++】用文件流的put和get成员函数读写文件

题目 编写一个mycopy程序,实现文件复制的功能。用法是在控制台输入: mycooy 源文件名 目标文件名 参数介绍 m a i n main main 函数的参数有两个,一个int类型参数和一个指针数组。 a r g c argc argc 表示参数的个数。参数为void时 a r g …

Github上最值得学习的10个Android开源项目,安卓面试题

1.Java语言进阶与Android相关技术核 Android应用是由Java语言进行开发的,SDK也是由Java语言编写,对于Android来说,只要SDK没有用Kotlin重写,那么Java语言是都需要学习的。而且Android APK的后台服务器程序大概率是Java语言构建&a…

一【初识EMC】

在作为硬件行业相关从业者,经常接触到EMC相关问题,下面来简单介绍下EMC相关方面的知识 文章目录 前言一、生活中的EMC现象?二、EMC是什么三、EMC的三要素四、EMI与EMS的评估方式1.RE2.CE3.HAR4.FLICKER5.Rs6.CS7.ESD8.EFT9.DIP10.PMS11.surge…

内置kpi接口短视频解析html源码

内置kpi接口短视频解析html源码,复制代码即可解析视频并 去水印 源码免费下载地址专业知识分享社区-专业知识笔记免费分享 (chaobiji.cn)