1. 程式人生 > >cocos creator | 碰撞事件回撥

cocos creator | 碰撞事件回撥

例如,場景中的子彈需要檢測是否碰撞到敵人,以及碰撞中、後的結果,

給需要進行碰撞處理的節點繫結一個指令碼,在屬性檢查器裡開啟接觸檢測,在指令碼中定義一個碰撞函式變數,例如onBeginContact,selfCollider 指的是回撥指令碼的節點上的碰撞體,otherCollider 指的是發生碰撞的另一個碰撞體。

​
​
cc.Class({
    extends: cc.Component,

    // 只在兩個碰撞體開始接觸時被呼叫一次
    onBeginContact: function (contact, selfCollider, otherCollider) {
        cc.log("onBeginContact!")
        
        //獲取碰撞事件的世界屬性
        var worldManifold = contact.getWorldManifold();
        
        //獲取碰撞發生地點的世界座標,返回json陣列,[0:vec2, 1:vec2, ...]
        var points = worldManifold.points;
        //呼叫碰撞位置點
        console.log(points[0]);
        console.log(points[1]);
        ...
        

    },

    // 只在兩個碰撞體結束接觸時被呼叫一次
    onEndContact: function (contact, selfCollider, otherCollider) {
    },

    // 每次將要處理碰撞體接觸邏輯時被呼叫
    onPreSolve: function (contact, selfCollider, otherCollider) {
    },

    // 每次處理完碰撞體接觸邏輯時被呼叫
    onPostSolve: function (contact, selfCollider, otherCollider) {
    }
});

​

​

相關推薦

cocos creator | 碰撞事件

例如,場景中的子彈需要檢測是否碰撞到敵人,以及碰撞中、後的結果, 給需要進行碰撞處理的節點繫結一個指令碼,在屬性檢查器裡開啟接觸檢測,在指令碼中定義一個碰撞函式變數,例如onBeginContact,selfCollider 指的是回撥指令碼的節點上的碰撞體,otherCo

COCOS 在node的exitTransitionStart事件中,移除其他node報錯

exitTransitionStart這類移除事件是在detachChild方法這種做的,可以看到此時的index是由傳參實現 而在真正刪除前,又派發了node的移除事件,如果此時在移除事件回撥中使用了removeChild操作,remove掉的node將會直接改變序列在其後面的所有

cocos creator Touch事件應用(觸控選擇多個子節點)

event false 等待 結果 ble cte mask convert 計算 最近參與了cocos creator的研究,開發小遊戲,結果被一個事件坑得不行不行的。現在終於解決了,分享給大家。 原理 1.觸控事件是針對節點的 2.觸控事件的冒泡,是直接關系冒泡,父

Unity 接收 IOS 記憶體不足的事件

1. unity 2017 新版本 https://docs.unity3d.com/ScriptReference/Application-lowMemory.html 直接註冊一下事件 2. 5.5 左右的 需要自己和IOS關聯起來。 方法一.用 XUPorter 工具 修改程式碼

cocos2d-lua中pageview滑動事件

1.在UIPageView.h中將addEventListener修改為如下 CC_DEPRECATED_ATTRIBUTE void addEventListener(const ccPageViewCallback& callback); using Scrol

Android中點選事件介面踩坑心得

有時候寫程式碼的時候有這樣的功能要求,如在ListView或recyclerView中的Item中的控制元件(如Button,TextView)上添加回調介面事件。其實難點就在添加回調介面事件上,怎麼寫介面,介面回撥在哪裡,這才是關鍵。下面是個例子: 介面的寫法:一下是兩介

Qt 學習之路 2(19):事件的接受與忽略(當重寫事件回撥函式時,時刻注意是否需要通過呼叫父類的同名函式來確保原有實現仍能進行!有好幾個例子。為什麼要這麼做?而不是自己去手動呼叫這兩個函式呢?因為我們無法確認父類中的這個處理函式有沒有額外的操作)

版本: 2012-09-29 2013-04-23 更新有關accept()和ignore()函式的相關內容。 2013-12-02 增加有關accept()和ignore()函式的示例。 上一章我們介紹了有關事件的相關內容。我們曾經提到,事件可以依情況接受和忽略。現在,我們就

js中的防抖、節流、點選事件

  以前,貼吧騙贊有個說法,快速點選兩次可以贊兩下哦,這個情況倒是可以發生的,就是將點贊資訊提交了多次。就算後端幫助判斷了不能點贊多次,將錯誤資訊返回前臺,頻繁提示“不能多次點贊”看起來也是很Low。我們可以根據需求來使用下面幾種方式讓效果、效能都能完美實現。   防抖的原理是在規定觸發時間內,多次點選,都

Android Multimedia框架總結(十二)CodeC部分之OMXCodec與OMX事件流程

前言:上篇文中分析到AwesomePlayer到OMX服務,曾介紹到,OMX服務主要完成三個任務: NodeInstance列表的管理,NodeInstance的操作, 事件的處理。最後這個事件處理就是今天放大看的內容。要一步一步一Codec,事件傳遞必不可

Java基礎系列之內部類的多重繼承與事件

為什要使用內部類實現多重繼承實現閉包(隱藏關鍵環節)事件回撥內部類的型別非靜態內部類public class NoStaticInsideClass { private @Setter String name; private @Setter i

Event物件,原生事件觸發,原生效果?

Event物件,原生事件回撥觸發,原生效果? 那麼問題來了,找個瀏覽器事件來測試一下? 背景: 專案上面遇到一個問題,就空想了一個這樣子的需求,順便了解了一下Event物件。 假想需求是這樣的: 能否用js去觸發瀏覽器的自帶的一些預設行為的監聽,達

cocos creator 碰撞檢測 拾取道具小案列

前言:creator有碰撞檢測系統 +物理碰撞系統,這個是兩個獨立的模組;demo:知識點:程式碼開啟碰撞檢測系統(預設是關閉碰撞檢測),開啟和關閉碰撞檢測的除錯:        var manager = cc.director.getCollisionManager();

解決OCX (ActiveX)事件註冊IE事件

OCX在事件註冊方面C#版本一般實現可能有問題——光使用事件代理註冊事件是不行的,需要註冊允許COM通訊。引文講述 In IE11, the attachEvent

cocos creator觸控事件 cc.node.EventType

var sprite = myholds.children[i].getComponent(cc.Sprite); var _x = 0; var _y = 0; sprite.node.on(cc.N

cocos Creator碰撞檢測

properties: {directionX:0, //根據元件上設定的數字來進行方向移動 directionY:0,}, // use this for initialization onLoad: function () {

理解事件函式、鉤子函式

打個形象的比喻:書店、你、你小表弟、書店美女店員 書店暫時沒有你要的書,咋辦呢?  1)你無恥的派了你小表弟在書店24小時蹲守,有人送書來,你表弟就去看下,一旦來了,你表弟就告訴你,並且幫你買下來 2)你留下你的號碼給美女店員,讓她有書就通知你 第一種:你就是js,你表弟就是你派出去的監聽器,監聽函式就是讓

js 點選事件函式傳參

點選事件回撥函式傳參 使用匿名函式 function testFun(event, str) { console.log(str); } var test = document.getEleme

Unity3D Animator 動態新增事件和替換動畫

     主要的層次結構式是, Animator 包含一個 AnimatorStateController 控制器, Controller 含有多個層,每個層含有多個狀態, 每個狀態可以繫結一個AnimationClip。執行動畫的是AnimationClip , 可以掛在

原始碼分析Dubbo非同步呼叫與事件機制

   本文將詳細分析Dubbo服務非同步呼叫與事件回撥機制。    1、非同步呼叫與事件回撥機制    1.1 非同步回撥    1.2 事件回撥    2、原始碼分析非同步呼叫與事件回撥機制    在Dubbo中,引入特定的過

cocos creator事件:監聽、發射、派送

事件監聽 事件處理是在節點(cc.Node)中完成的。 對於元件,可以通過訪問節點this.node來註冊和監聽事件。 監聽事件可以通過this.node.on()方法和this.node.once()方法來註冊。 node.on(type, callback,