碰撞系统重做

This commit is contained in:
pan@work
2024-08-22 10:57:23 +08:00
parent ceee58079d
commit a707bcca29
7 changed files with 183 additions and 316 deletions

View File

@@ -569,7 +569,7 @@
"__expectedType__": "sp.SkeletonData" "__expectedType__": "sp.SkeletonData"
}, },
"defaultSkin": "default", "defaultSkin": "default",
"defaultAnimation": "", "defaultAnimation": "<None>",
"_premultipliedAlpha": false, "_premultipliedAlpha": false,
"_timeScale": 1, "_timeScale": 1,
"_preCacheMode": 1, "_preCacheMode": 1,
@@ -1918,7 +1918,7 @@
"fileId": "88a6VdbQBB7YwXovYCN2Sy" "fileId": "88a6VdbQBB7YwXovYCN2Sy"
}, },
{ {
"__type__": "cc.BoxCollider2D", "__type__": "cc.RigidBody2D",
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
@@ -1929,45 +1929,11 @@
"__prefab": { "__prefab": {
"__id__": 88 "__id__": 88
}, },
"tag": 0,
"_group": 2,
"_density": 1,
"_sensor": false,
"_friction": 1,
"_restitution": 0,
"_offset": {
"__type__": "cc.Vec2",
"x": 2.6,
"y": 32.5
},
"_size": {
"__type__": "cc.Size",
"width": 24.5,
"height": 75.8
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "b2Dt9lJI9FyJCDezkDBPBl"
},
{
"__type__": "cc.RigidBody2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 90
},
"enabledContactListener": true, "enabledContactListener": true,
"bullet": true, "bullet": true,
"awakeOnLoad": true, "awakeOnLoad": true,
"_group": 2, "_group": 2,
"_type": 2, "_type": 1,
"_allowSleep": false, "_allowSleep": false,
"_gravityScale": 1, "_gravityScale": 1,
"_linearDamping": 0, "_linearDamping": 0,
@@ -1985,6 +1951,40 @@
"__type__": "cc.CompPrefabInfo", "__type__": "cc.CompPrefabInfo",
"fileId": "d8rVs6intBQ7lRU8Dw4zXV" "fileId": "d8rVs6intBQ7lRU8Dw4zXV"
}, },
{
"__type__": "cc.BoxCollider2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 90
},
"tag": 0,
"_group": 2,
"_density": 1,
"_sensor": false,
"_friction": 1,
"_restitution": 0,
"_offset": {
"__type__": "cc.Vec2",
"x": 2.6,
"y": 34.5
},
"_size": {
"__type__": "cc.Size",
"width": 81.9,
"height": 73.4
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "b2Dt9lJI9FyJCDezkDBPBl"
},
{ {
"__type__": "cc.PrefabInfo", "__type__": "cc.PrefabInfo",
"root": { "root": {

View File

@@ -28,17 +28,17 @@
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 74 "__id__": 66
}, },
{ {
"__id__": 76 "__id__": 68
}, },
{ {
"__id__": 78 "__id__": 70
} }
], ],
"_prefab": { "_prefab": {
"__id__": 80 "__id__": 72
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -197,17 +197,17 @@
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 67 "__id__": 59
}, },
{ {
"__id__": 69 "__id__": 61
}, },
{ {
"__id__": 71 "__id__": 63
} }
], ],
"_prefab": { "_prefab": {
"__id__": 73 "__id__": 65
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -251,23 +251,23 @@
"__id__": 8 "__id__": 8
}, },
{ {
"__id__": 38 "__id__": 30
}, },
{ {
"__id__": 42 "__id__": 34
}, },
{ {
"__id__": 48 "__id__": 40
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 64 "__id__": 56
} }
], ],
"_prefab": { "_prefab": {
"__id__": 66 "__id__": 58
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -314,20 +314,20 @@
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 29 "__id__": 21
}, },
{ {
"__id__": 31 "__id__": 23
}, },
{ {
"__id__": 33 "__id__": 25
}, },
{ {
"__id__": 35 "__id__": 27
} }
], ],
"_prefab": { "_prefab": {
"__id__": 37 "__id__": 29
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -374,14 +374,14 @@
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 24 "__id__": 16
}, },
{ {
"__id__": 26 "__id__": 18
} }
], ],
"_prefab": { "_prefab": {
"__id__": 28 "__id__": 20
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -428,22 +428,10 @@
}, },
{ {
"__id__": 13 "__id__": 13
},
{
"__id__": 15
},
{
"__id__": 17
},
{
"__id__": 19
},
{
"__id__": 21
} }
], ],
"_prefab": { "_prefab": {
"__id__": 23 "__id__": 15
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -547,142 +535,6 @@
"__type__": "cc.CompPrefabInfo", "__type__": "cc.CompPrefabInfo",
"fileId": "66D90QlYtEvKkAU6KcReVW" "fileId": "66D90QlYtEvKkAU6KcReVW"
}, },
{
"__type__": "cc.RigidBody2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 10
},
"_enabled": true,
"__prefab": {
"__id__": 16
},
"enabledContactListener": false,
"bullet": true,
"awakeOnLoad": true,
"_group": 1,
"_type": 0,
"_allowSleep": false,
"_gravityScale": 0,
"_linearDamping": 0,
"_angularDamping": 0,
"_linearVelocity": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_angularVelocity": 0,
"_fixedRotation": false,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "fa0hN7/dVNJp+ZtcBdqwHp"
},
{
"__type__": "cc.BoxCollider2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 10
},
"_enabled": true,
"__prefab": {
"__id__": 18
},
"tag": 0,
"_group": 1,
"_density": 1,
"_sensor": false,
"_friction": 1,
"_restitution": 0,
"_offset": {
"__type__": "cc.Vec2",
"x": -119.1,
"y": -459.8
},
"_size": {
"__type__": "cc.Size",
"width": 4118.9,
"height": 981.7
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "fexeczFgpEObyOHYY30dp9"
},
{
"__type__": "cc.BoxCollider2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 10
},
"_enabled": false,
"__prefab": {
"__id__": 20
},
"tag": 0,
"_group": 1,
"_density": 1,
"_sensor": false,
"_friction": 0.2,
"_restitution": 0,
"_offset": {
"__type__": "cc.Vec2",
"x": 983.4,
"y": -22.4
},
"_size": {
"__type__": "cc.Size",
"width": 826.9,
"height": 1473.1
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "9fhhEkjyRAg7KBWa7BQ8y2"
},
{
"__type__": "cc.BoxCollider2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 10
},
"_enabled": false,
"__prefab": {
"__id__": 22
},
"tag": 0,
"_group": 1,
"_density": 1,
"_sensor": false,
"_friction": 0.2,
"_restitution": 0,
"_offset": {
"__type__": "cc.Vec2",
"x": -883.7,
"y": -16.2
},
"_size": {
"__type__": "cc.Size",
"width": 659.8,
"height": 1471.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "dclJIfE5FF96M6AV1wbuKr"
},
{ {
"__type__": "cc.PrefabInfo", "__type__": "cc.PrefabInfo",
"root": { "root": {
@@ -706,7 +558,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 25 "__id__": 17
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -734,7 +586,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 27 "__id__": 19
}, },
"_customMaterial": null, "_customMaterial": null,
"_srcBlendFactor": 2, "_srcBlendFactor": 2,
@@ -792,7 +644,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 30 "__id__": 22
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -820,10 +672,10 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 32 "__id__": 24
}, },
"bgImg": { "bgImg": {
"__id__": 26 "__id__": 18
}, },
"_id": "" "_id": ""
}, },
@@ -841,7 +693,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 34 "__id__": 26
}, },
"light": { "light": {
"__uuid__": "319c7eb8-9826-48b6-81e4-82559dbf82a8", "__uuid__": "319c7eb8-9826-48b6-81e4-82559dbf82a8",
@@ -863,7 +715,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 36 "__id__": 28
}, },
"_id": "" "_id": ""
}, },
@@ -896,11 +748,11 @@
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 39 "__id__": 31
} }
], ],
"_prefab": { "_prefab": {
"__id__": 41 "__id__": 33
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -937,11 +789,11 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 38 "__id__": 30
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 40 "__id__": 32
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -984,14 +836,14 @@
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 43 "__id__": 35
}, },
{ {
"__id__": 45 "__id__": 37
} }
], ],
"_prefab": { "_prefab": {
"__id__": 47 "__id__": 39
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -1028,11 +880,11 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 42 "__id__": 34
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 44 "__id__": 36
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -1056,11 +908,11 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 42 "__id__": 34
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 46 "__id__": 38
}, },
"_id": "" "_id": ""
}, },
@@ -1091,20 +943,20 @@
}, },
"_children": [ "_children": [
{ {
"__id__": 49 "__id__": 41
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 59 "__id__": 51
}, },
{ {
"__id__": 61 "__id__": 53
} }
], ],
"_prefab": { "_prefab": {
"__id__": 63 "__id__": 55
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -1139,17 +991,17 @@
"__type__": "cc.Node", "__type__": "cc.Node",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 48 "__id__": 40
}, },
"_prefab": { "_prefab": {
"__id__": 50 "__id__": 42
}, },
"__editorExtras__": {} "__editorExtras__": {}
}, },
{ {
"__type__": "cc.PrefabInfo", "__type__": "cc.PrefabInfo",
"root": { "root": {
"__id__": 49 "__id__": 41
}, },
"asset": { "asset": {
"__uuid__": "63c02880-bda6-4370-bb22-46bf4f49bbfe", "__uuid__": "63c02880-bda6-4370-bb22-46bf4f49bbfe",
@@ -1157,7 +1009,7 @@
}, },
"fileId": "fdklpBwCBM/qJ4WFlQF3kT", "fileId": "fdklpBwCBM/qJ4WFlQF3kT",
"instance": { "instance": {
"__id__": 51 "__id__": 43
}, },
"targetOverrides": null "targetOverrides": null
}, },
@@ -1171,22 +1023,22 @@
"mountedComponents": [], "mountedComponents": [],
"propertyOverrides": [ "propertyOverrides": [
{ {
"__id__": 52 "__id__": 44
}, },
{ {
"__id__": 54 "__id__": 46
}, },
{ {
"__id__": 55 "__id__": 47
}, },
{ {
"__id__": 56 "__id__": 48
}, },
{ {
"__id__": 57 "__id__": 49
}, },
{ {
"__id__": 58 "__id__": 50
} }
], ],
"removedComponents": [] "removedComponents": []
@@ -1194,7 +1046,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 53 "__id__": 45
}, },
"propertyPath": [ "propertyPath": [
"_name" "_name"
@@ -1210,7 +1062,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 53 "__id__": 45
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -1225,7 +1077,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 53 "__id__": 45
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -1241,7 +1093,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 53 "__id__": 45
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -1256,7 +1108,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 53 "__id__": 45
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -1266,7 +1118,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 53 "__id__": 45
}, },
"propertyPath": [ "propertyPath": [
"_lscale" "_lscale"
@@ -1284,11 +1136,11 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 48 "__id__": 40
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 60 "__id__": 52
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -1312,11 +1164,11 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 48 "__id__": 40
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 62 "__id__": 54
}, },
"light": { "light": {
"__uuid__": "319c7eb8-9826-48b6-81e4-82559dbf82a8", "__uuid__": "319c7eb8-9826-48b6-81e4-82559dbf82a8",
@@ -1351,7 +1203,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 65 "__id__": 57
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -1392,7 +1244,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 68 "__id__": 60
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -1420,7 +1272,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 70 "__id__": 62
}, },
"camera": { "camera": {
"__id__": 3 "__id__": 3
@@ -1429,16 +1281,16 @@
"__id__": 7 "__id__": 7
}, },
"mapLayer": { "mapLayer": {
"__id__": 31 "__id__": 23
}, },
"floorLayer": { "floorLayer": {
"__id__": 38 "__id__": 30
}, },
"entityLayer": { "entityLayer": {
"__id__": 45 "__id__": 37
}, },
"SkillLayer": { "SkillLayer": {
"__id__": 61 "__id__": 53
}, },
"isFollowPlayer": true, "isFollowPlayer": true,
"_id": "" "_id": ""
@@ -1457,7 +1309,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 72 "__id__": 64
}, },
"_id": "" "_id": ""
}, },
@@ -1488,7 +1340,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 75 "__id__": 67
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -1516,7 +1368,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 77 "__id__": 69
}, },
"_cameraComponent": { "_cameraComponent": {
"__id__": 3 "__id__": 3
@@ -1538,7 +1390,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 79 "__id__": 71
}, },
"_alignFlags": 45, "_alignFlags": 45,
"_target": null, "_target": null,
@@ -1577,7 +1429,7 @@
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{ {
"__id__": 49 "__id__": 41
} }
] ]
} }

View File

@@ -25,7 +25,7 @@ export enum BoxSet {
MONSTER_START = 300, MONSTER_START = 300,
END_POINT = 360, END_POINT = 360,
//游戏地平线 //游戏地平线
GAME_LINE = 0, GAME_LINE = 10,
CSKILL_X = 280, CSKILL_X = 280,
CSKILL_Y = 420, CSKILL_Y = 420,
} }

View File

@@ -66,44 +66,7 @@ export class MonsterViewComp extends CCComp {
private timer:Timer = new Timer(0.1); //计时器 private timer:Timer = new Timer(0.1); //计时器
is_dead:boolean = false; //是否摧毁 is_dead:boolean = false; //是否摧毁
is_stop:boolean = false;
/** 视图层逻辑代码分离演示 */
start () {
this.sprite = this.node.getChildByName("avatar").getChildByName("TNode").getChildByName("bb").getComponent(Sprite);
this.orginalFlashMaterial = this.sprite.getRenderMaterial(0);
// 注册单个碰撞体的回调函数
let collider = this.getComponent(Collider2D);
if (collider) {
collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
collider.on(Contact2DType.END_CONTACT, this.onEndContact, this);
// collider.on(Contact2DType.PRE_SOLVE, this.onPreSolve, this);
collider.on(Contact2DType.POST_SOLVE, this.onPostSolve, this);
}
// this.node.getChildByName("level").getChildByName("level").getComponent(Label).string = this.level.toString();
}
onBeginContact (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {
}
onEndContact (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {
// 只在两个碰撞体结束接触时被调用一次
// console.log('onEndContact');
}
// onPreSolve (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {
// // 每次将要处理碰撞体接触逻辑时被调用
// console.log('onPreSolve');
// }
onPostSolve (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {
if(otherCollider.group== BoxSet.HERO_SKILL || otherCollider.group== BoxSet.MONSTER_SKILL){
let skill = otherCollider.node.getComponent(SkillCom)!;
// console.log('onPostSolve',skill);
this.in_atked();
this.hp_change(skill.atk);
}
}
onLoad() { onLoad() {
this.as = this.getComponent(MonsterSpine); this.as = this.getComponent(MonsterSpine);
@@ -112,7 +75,68 @@ export class MonsterViewComp extends CCComp {
// EPhysics2DDrawFlags.CenterOfMass | // EPhysics2DDrawFlags.CenterOfMass |
// EPhysics2DDrawFlags.Joint | // EPhysics2DDrawFlags.Joint |
// EPhysics2DDrawFlags.Shape; // EPhysics2DDrawFlags.Shape;
} /** 视图层逻辑代码分离演示 */
start () {
this.sprite = this.node.getChildByName("avatar").getChildByName("TNode").getChildByName("bb").getComponent(Sprite);
this.orginalFlashMaterial = this.sprite.getRenderMaterial(0);
// 注册单个碰撞体的回调函数
let collider = this.getComponent(Collider2D);
console.log(collider);
if (collider) {
collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
collider.on(Contact2DType.END_CONTACT, this.onEndContact, this);
collider.on(Contact2DType.PRE_SOLVE, this.onPreSolve, this);
collider.on(Contact2DType.POST_SOLVE, this.onPostSolve, this);
}
// this.node.getChildByName("level").getChildByName("level").getComponent(Label).string = this.level.toString();
} }
onBeginContact (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {
}
onEndContact (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {
// 只在两个碰撞体结束接触时被调用一次
// console.log('onEndContact');
}
onPreSolve (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {
if(selfCollider.group != otherCollider.group){
if(otherCollider.tag != 8){
this.stop_cd = 0.5;
}
}
}
onPostSolve (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {
if(otherCollider.group== BoxSet.HERO_SKILL || otherCollider.group== BoxSet.MONSTER_SKILL){
let skill = otherCollider.node.getComponent(SkillCom)!;
// console.log('onPostSolve',skill);
this.in_atked();
this.hp_change(skill.atk);
}
if(selfCollider.group == otherCollider.group){
console.log('group 相同');
if(otherCollider.tag != 8){
let self_pos=selfCollider.node.getPosition();
let other_pos=otherCollider.node.getPosition();
if(selfCollider.group == BoxSet.HERO){
if(self_pos.x < other_pos.x&&Math.abs(self_pos.x-other_pos.x) <= 20){
this.stop_cd=0.1
}
}
if(selfCollider.group == BoxSet.MONSTER){
if(self_pos.x > other_pos.x&&Math.abs(self_pos.x-other_pos.x) <= 20){
this.stop_cd=0.1
}
}
}
}
}
change_name(hero_name:string='hero',scale:number=1){ change_name(hero_name:string='hero',scale:number=1){
this.name=hero_name; this.name=hero_name;
let label:any =this.node.getChildByName("lab_name") let label:any =this.node.getChildByName("lab_name")
@@ -235,7 +259,7 @@ export class MonsterViewComp extends CCComp {
}); });
} }
load_skill(skill_name:string){ load_skill(skill_name:string){
// console.log("load_skill"); console.log("load_skill");
let skill = ecs.getEntity<Skill>(Skill); let skill = ecs.getEntity<Skill>(Skill);
let x=30 let x=30
if(this.scale==1){ if(this.scale==1){

View File

@@ -45,9 +45,9 @@ export class Skill extends ecs.Entity {
sv.angle = angle; sv.angle = angle;
sv.t_pos = t_pos; sv.t_pos = t_pos;
if(scale == 1){ if(scale == 1){
sv.change_collider_group(BoxSet.HERO_SKILL) sv.box_group=BoxSet.HERO_SKILL
}else{ }else{
sv.change_collider_group(BoxSet.MONSTER_SKILL) sv.box_group=BoxSet.MONSTER_SKILL
} }
this.add(sv); this.add(sv);
} }

View File

@@ -24,15 +24,13 @@ export class SkillCom extends CCComp {
angle:number = 0; angle:number = 0;
t_pos:Vec3 = null; t_pos:Vec3 = null;
is_destroy:boolean = false; is_destroy:boolean = false;
box_group:number = 0;
start() { start() {
this.node.active=true this.node.active=true
this.node.angle = this.angle; this.node.angle = this.angle;
//根据目标坐标、欧拉角、预设距离增量speed 来计算新的x增量y增量
// this.x_speed = Math.cos(this.angle * Math.PI / 180) * this.speed;
// this.y_speed = Math.sin(this.angle * Math.PI / 180) * this.speed;
let collider = this.getComponent(Collider2D); let collider = this.getComponent(Collider2D);
collider.group = this.box_group;
if (collider) { if (collider) {
// collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this); // collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
collider.on(Contact2DType.POST_SOLVE, this.onPostSolve, this); collider.on(Contact2DType.POST_SOLVE, this.onPostSolve, this);
@@ -86,11 +84,7 @@ export class SkillCom extends CCComp {
} }
change_collider_group(group:number){ update(deltaTime: number) {
let collider = this.getComponent(Collider2D);
collider.group = group;
}
update(deltaTime: number) {
// this.node.setScale(v3(this.scale,this.node.scale.y,this.node.scale.z)) // this.node.setScale(v3(this.scale,this.node.scale.y,this.node.scale.z))
this.move(deltaTime) this.move(deltaTime)
// if(Math.abs(this.node.position.x) > this.dis) // if(Math.abs(this.node.position.x) > this.dis)

View File

@@ -41,10 +41,7 @@ export class baseCom extends Component {
reset() { reset() {
this.node.destroy(); this.node.destroy();
} }
change_collider_group(group:number){
let collider = this.getComponent(Collider2D);
collider.group = group;
}
update(deltaTime: number) { update(deltaTime: number) {
this.node.setScale(v3(this.scale,this.node.scale.y,this.node.scale.z)) this.node.setScale(v3(this.scale,this.node.scale.y,this.node.scale.z))
this.node.setPosition(v3(this.node.position.x+deltaTime*this.speed*this.scale,this.node.position.y,this.node.position.z)) this.node.setPosition(v3(this.node.position.x+deltaTime*this.speed*this.scale,this.node.position.y,this.node.position.z))