[Cocos Creator 3.5賽車游戲]第5節 為汽車節點掛載自定義腳本

在前面的章節中您已經學會了如何創建一個汽車節點,這一章我們將會學習如何通過掛載自定義節點的方式讓小車變得可控制,所以通過這一章的學習后,您將實現一個效果:開始運行后,小車每隔一幀就延y軸向上移動一段距離。在這之前,我們要先熟悉一下少量的基本概念,這樣才能讓您更快的熟悉起來。

一、基本概念

1.如何控制節點/更改節點屬性:

在Coscos中,節點不光可以掛載組件,還可以掛載自定義腳本,自定義腳本主要使用到兩個方法,第一個方法是start()方法,start?方法會在組件第一次激活時調用,所以start方法往往回寫對節點的初始操作,比如設置起始點坐標、設置角色滿血狀態等,第二個方法是update(dt:number),update方法在游戲的每一幀都會調用,所以update方法往往用來寫對節點狀態改變的方法,例如更新角色的最新血量、更新角色位置(如果操作者此時正在按著前進按鈕)等。

二、為汽車節點掛載自定義腳本

1.創建腳本

首先我們要在和前面一樣,資源管理器中鼠標右鍵點擊assets,選擇“創建-文件夾”來創建一個script文件夾,這個文件夾將會保存我們接下來所有的自定義腳本,效果如下:

然后我們鼠標右鍵點擊新建出來的script文件夾,選擇“創建-腳本-NewComponment”:

創建出來的自定義腳本名稱為“CarControl”,效果如下:

2.預覽一下腳本

現在,讓我們鼠標左鍵雙擊CarControl腳本,VS Code將會自動運行并打開CarControl,效果如下:

3.將腳本掛載到汽車節點下:

為了讓腳本能實現對汽車的控制,例如改變位置等,我們需要將這個腳本掛載到汽車節點下,我們切換窗口切換到Cocos Creator界面,鼠標左鍵點擊“Car”節點來讓右邊的屬性檢查器里顯示目前Car節點的所有屬性,效果如下:

然后我們點擊屬性管理器中的“添加組件”按鈕,往下滑找到“自定義組件”按鈕,然后選中剛才創建的CarControl腳本,最終效果如下:

你也許會疑惑為什么要把自定義腳本掛載到Car節點而不是CarSprite節點,這是因為對于小車來說,Car才是它的根節點,我們最終達到的效果是要改變小車的位置,如果節點被掛載到了CarSprite節點下,那么運行起來后位置發生改變的是小車的圖片,而不是真正的小車的根節點。

4.實現控制邏輯

在上圖中,當你手動去修改y值的時候,你會發現場景編輯器中的小車的位置就會隨著你的改動而發生改變。所以只需要把您手動的這個過程交給腳本去做就行了。根據屬性管理器,需要修改的是當前節點的Position屬性的Y值。回憶下我們要達到的效果:“開始運行后,小車每隔一幀就延y軸向上移動一段距離”,因為是每一幀都要移動,所以我們將會把這一過程寫在update里面。而按照默認規則,自定義節點中調用this.node就表示當前被掛載的節點。而Postion作為節點的屬性必有set和get方法,所以綜上,核心實現邏輯為:

update(deltaTime: number) {

var nowPostion = this.node.getPosition()

nowPostion.y = nowPostion.y + 1

this.node.setPosition(nowPostion)

}

整體如下:

5.查看結果

現在,在VS Code按下Ctrl+S,切換到Cocos Creator窗口按下Ctrl+S(建議多按幾次直到確定左上角沒有*了),然后點擊運行按鈕,您將會在瀏覽器中看到效果,小車將會緩緩向上移動直到超出攝像機范圍:

6.查看代碼中的console.log的輸出:

在瀏覽器界面以內,黑色框以外的灰色部分任意位置點擊鼠標右鍵,選擇檢查:

點擊“檢查”后將會開啟瀏覽器的開發工具,選擇“控制臺”就可以看到console.log的輸出了:

以上就是本章的全部內容,感謝您的觀看和實踐。

?章節源碼、答疑和交流移步?https://t.zsxq.com/5JQPx

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/13743.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13743.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13743.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

cx_Oracle Python 庫連接 Oracle 數據庫時遇到報錯

這個錯誤 DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found" 是在嘗試使用 cx_Oracle Python 庫連接 Oracle 數據庫時遇到的。這個錯誤表明 cx_Oracle 無法找到 Oracle 客戶端庫(通常稱為 Instant Cli…

頂頂通呼叫中心中間件-自動外呼輸入分機號(比如隱私號)(mod_cti基于FreeSWITCH)

頂頂通呼叫中心中間件-自動外呼輸入分機號(比如隱私號)(mod_cti基于FreeSWITCH) 比如有些人的號碼是這樣的就需要用上自動外呼輸入分機號了 號碼1:182XXXX8111-1234 號碼2:182XXXX8222 如果號碼是這樣的就根據以下步驟配置 注意使用這個需要:…

Redis學習篇2:Redis在IEDA中的應用

本文繼上文開始講述了Redis在IDEA中如何應用以及集成進入spring開發環境,以及如何使用Redis客戶端。上一個文章:Redis學習篇1:初識Redishttps://blog.csdn.net/jialuosi/article/details/139057088 一、Redis在java中的客戶端 二、SpringDat…

MySQL存儲過程_觸發器_游標——Baidu Comate

# 問題1: 幫我創建2個表student與score表,要求student表有id,createDate,userName,phone,age,sex,introduce, 要求score表有id,scoreName,result,studentId(student表的id外鍵)。 要求student表中插入5條學生信息,都要是中文的。 要求score表…

onload和onunload有什么區別(代碼舉例說明)

onload 和 onunload 是兩種常用于網頁中的事件處理器(event handlers),但它們處理的是完全不同的頁面生命周期事件。 onload onload 事件會在頁面或指定的元素(如圖片、框架等)完成加載后觸發。對于頁面整體來說&…

樹莓派 Raspberry Pi M.2 HAT+ 現已發售!原理圖流出!

?Raspberry Pi M.2 HAT 使您能夠將 M.2 M-key 外設(如 NVMe 驅動器和人工智能加速器)連接到 Raspberry Pi 5。它能夠提供與這些外設之間的快數據傳輸(高達 500 MB/s),現在就可以從樹莓派的授權經銷商網絡購買&#xf…

c語言:strcmp

strcmp函數是用于比較兩個字符串的庫函數,其功能是根據ASCII值逐一對兩個字符串進行比較。 語法:strcmp(str1, str2) 返回值: 如果str1等于str2,則返回0。 如果str1小于str2,則返回負數(具體值取決于C…

注意力機制篇 | MSFE:即插即用的多尺度滑窗注意力(附源碼實現)

前言:Hello大家好,我是小哥談。多尺度滑窗注意力(Multi-Scale Sliding Window Attention,MSFE)是一種用于處理圖像的深度學習模型。它通過引入多尺度特征提取和滑窗注意力機制來提高圖像識別的準確性。在MSFE中,模型采用多尺度卷積神經網絡來提取圖像的特征,然后使用滑窗…

DELPHI通過WebService進行數據交互

WebService是一種可以跨語言和平臺的數據交互模式,使用非常廣泛,與JSon數據格式結合,更是當前非常流行的一種模式,本章針對DELPHI通過WebService進行數據的交互做一個相對簡單例子應用。 本文使用的DELPHI 版本為:DEL…

pdf文件怎么編輯?分享3個專業的pdf軟件!

在數字化時代,PDF文件已成為我們工作、學習中的得力助手。然而,面對需要修改的PDF文件,許多人卻感到無從下手。今天,就讓我們一起探索如何輕松編輯PDF文件,并介紹幾款實用的編輯軟件,讓你輕松應對各種PDF編…

創建型模式 (Python版)

單例模式 懶漢式 class SingleTon:# 類屬性_obj None # 用來存儲對象# 創造對象def __new__(cls, *args, **kwargs):# 如果對象不存在,就創造一個對象if cls._obj is None:cls._obj super().__new__(cls, *args, *kwargs)# 返回對象return cls._objif __name__…

OpenAI宮斗劇番外篇: “Ilya與Altman聯手對抗微軟大帝,掃除黑惡勢力”,“余華”和“莫言”犀利點評

事情是這樣的。 小編我是一個重度的智譜清言用戶,最近智譜清言悄悄上線了一個“劃詞引用”功能后,我仿佛打開了新世界的大門。我甚至用這個小功能,玩出來了即將為你上映的《OpenAI宮斗劇番外篇》。 3.5研究測試:hujiaoai.cn 4研…

@Controller和@RestController區別

一、Controller 注解: Controller 注解用于定義一個控制器類,通常配合 Spring MVC 框架使用。 控制器類負責處理用戶的 HTTP 請求,并將處理結果返回給客戶端。 控制器類中的方法通常通過 RequestMapping 或其衍生注解來映射特定的 URL 請求…

Python中的數據類型轉換

文章目錄 一、轉成整數形式二、轉成浮點數形式三、轉成字符串形式四、轉成列表形式五、轉成元祖形式六、json和字典轉換1.json轉字典2.字典轉json 一、轉成整數形式 使用int()方法,示例代碼如下: a 5201314 result int(a) print(result) print(type(…

藍牙Classic加密算法設計和實現,SAFER+,E0,E1,E2,E3(python)

概述 之前用python給大家實現了所有LE相關加密工具算法。bobwenstudy/BluetoothCryptographicToolbox: LE SMP加密算法設計和實現(python) (github.com),最近重溫了下Classic加密,順便將Classic所有加密算法給實現了一遍。 在藍牙Classic Spec中&#…

5.14.3 UNETR:用于 3D 醫學圖像分割的 Transformers

具有收縮和擴展路徑的全卷積神經網絡 (FCNN) 在大多數醫學圖像分割應用中表現出了突出的作用。在 FCNN 中,編碼器通過學習全局和局部特征以及上下文表示來發揮不可或缺的作用,這些特征和上下文表示可用于解碼器的語義輸出預測。 在FCNN中,收縮…

對列表進行統計和計算

自學python如何成為大佬(目錄):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Python的列表提供了內置的一些函數來實現統計、計算的功能。下面介紹幾種常用的功能。 (1)獲取指定元素出現的次數 使用列表…

數字水印 | 圖像標準化論文:Digital Watermarking Robust to Geometric Distortions(二)

目錄 C?變換參數的確定D?水印的影響E?可替代的標準化過程 🤖原文: Digital Watermarking Robust to Geometric Distortions 🤖前言: 這是一篇 2005 年的 SCI 一區 CCF-A,但是網上關于它的講解貌似挺少的。文中提出…

智能車競賽指南:從零到一,駛向自動駕駛的未來

智能車競賽指南:從零到一,駛向自動駕駛的未來 一、智能車競賽概覽1.1 競賽介紹1.2 競賽分類 二、智能車開發技術基礎2.1 硬件平臺2.2 軟件開發 三、實戰案例:循線小車開發3.1 系統架構3.2 代碼示例 四、技術項目:基于ROS的視覺導航…

FedSyn: Synthetic Data Generation using Federated Learning

arxiv2022,沒找到是哪個刊物的,是沒投中嗎? 這篇是用GAN做數據生成,每個client都訓練一個生成器,加噪聲傳到server端聚合,實驗是衡量生成圖片的質量。 論文地址:arxiv code:沒找到 貢獻 提出了提出了一種新穎的方法(FedSyn ),將聯邦學習、使用 GAN的合成數據生成…