增加落点显示
This commit is contained in:
parent
4c95908c99
commit
8930b34e38
@ -18,21 +18,69 @@
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 2
|
||||
},
|
||||
{
|
||||
"__id__": 13
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 11
|
||||
"__id__": 18
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 13
|
||||
"__id__": 20
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 1.248,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 1
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"z": 1
|
||||
},
|
||||
"_layer": 1073741824,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "arrow",
|
||||
"_objFlags": 0,
|
||||
"_parent": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 3
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [],
|
||||
"_prefab": {
|
||||
"__id__": 12
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@ -62,17 +110,17 @@
|
||||
"_name": "javelin",
|
||||
"_objFlags": 0,
|
||||
"_parent": {
|
||||
"__id__": 1
|
||||
"__id__": 2
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 3
|
||||
"__id__": 4
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [],
|
||||
"_prefab": {
|
||||
"__id__": 10
|
||||
"__id__": 11
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@ -107,17 +155,17 @@
|
||||
"_name": "RootNode",
|
||||
"_objFlags": 0,
|
||||
"_parent": {
|
||||
"__id__": 2
|
||||
"__id__": 3
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 4
|
||||
"__id__": 5
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [],
|
||||
"_prefab": {
|
||||
"__id__": 9
|
||||
"__id__": 10
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@ -152,17 +200,17 @@
|
||||
"_name": "对象001",
|
||||
"_objFlags": 0,
|
||||
"_parent": {
|
||||
"__id__": 3
|
||||
"__id__": 4
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 5
|
||||
"__id__": 6
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 8
|
||||
"__id__": 9
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@ -197,11 +245,11 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 4
|
||||
"__id__": 5
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 6
|
||||
"__id__": 7
|
||||
},
|
||||
"_materials": [
|
||||
{
|
||||
@ -211,7 +259,7 @@
|
||||
],
|
||||
"_visFlags": 0,
|
||||
"lightmapSettings": {
|
||||
"__id__": 7
|
||||
"__id__": 8
|
||||
},
|
||||
"_mesh": {
|
||||
"__uuid__": "401c28d6-3085-4209-9f2e-3aff6da5855c@035c0",
|
||||
@ -272,6 +320,121 @@
|
||||
},
|
||||
"fileId": "e4s27HRhlBboS6EhifyuWl"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
"fileId": "5bf0LATlNOKYlJWbTsFq/i"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "circle",
|
||||
"_objFlags": 0,
|
||||
"_parent": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 14
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 17
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0.1,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": -0.7071067811865475,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 0.7071067811865476
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 4.7,
|
||||
"y": 4.7,
|
||||
"z": 1
|
||||
},
|
||||
"_layer": 1073741824,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": -90,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.MeshRenderer",
|
||||
"_name": "Quad<ModelComponent>",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 13
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 15
|
||||
},
|
||||
"_materials": [
|
||||
{
|
||||
"__uuid__": "5bd9794b-bfe1-46e1-b390-6060f1f08992",
|
||||
"__expectedType__": "cc.Material"
|
||||
}
|
||||
],
|
||||
"_visFlags": 0,
|
||||
"lightmapSettings": {
|
||||
"__id__": 16
|
||||
},
|
||||
"_mesh": {
|
||||
"__uuid__": "1263d74c-8167-4928-91a6-4e2672411f47@fc873",
|
||||
"__expectedType__": "cc.Mesh"
|
||||
},
|
||||
"_shadowCastingMode": 0,
|
||||
"_shadowReceivingMode": 1,
|
||||
"_enableMorph": true,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "c3HynMn7RK/rmskpx1afpj"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.ModelLightmapSettings",
|
||||
"texture": null,
|
||||
"uvParam": {
|
||||
"__type__": "cc.Vec4",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 0
|
||||
},
|
||||
"_bakeable": false,
|
||||
"_castShadow": false,
|
||||
"_receiveShadow": false,
|
||||
"_recieveShadow": false,
|
||||
"_lightmapSize": 64
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
"fileId": "51HSPesSRFgrKXr9+iQVi5"
|
||||
},
|
||||
{
|
||||
"__type__": "2330evjMPtBCJhzJpbQ/Kgk",
|
||||
"_name": "",
|
||||
@ -282,7 +445,13 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 12
|
||||
"__id__": 19
|
||||
},
|
||||
"arrow": {
|
||||
"__id__": 2
|
||||
},
|
||||
"circle": {
|
||||
"__id__": 13
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
import { Component, Vec3, _decorator } from 'cc';
|
||||
import { Color, Component, MeshRenderer, Node, Vec3, _decorator } from 'cc';
|
||||
import { MathUtil } from '../../scripts/models/MathUtil';
|
||||
import { gameConfig } from '../../scripts/shared/game/gameConfig';
|
||||
import { ArrowState } from '../../scripts/shared/game/state/ArrowState';
|
||||
@ -13,6 +13,11 @@ export class Arrow extends Component {
|
||||
id!: number;
|
||||
state!: ArrowState;
|
||||
|
||||
@property(Node)
|
||||
arrow!: Node;
|
||||
@property(Node)
|
||||
circle!: Node;
|
||||
|
||||
// 开始位置(场景坐标)
|
||||
private _startPos = new Vec3;
|
||||
// 落点位置(场景坐标)
|
||||
@ -32,6 +37,8 @@ export class Arrow extends Component {
|
||||
this._endTime = this._startTime + gameConfig.arrowFlyTime;
|
||||
|
||||
this._updatePosAndForward(0);
|
||||
this.circle.setPosition(this._endPos.x, 0.1, this._endPos.z);
|
||||
this.circle.getComponent(MeshRenderer)?.material!.setProperty('mainColor', new Color(255, 255, 255, 255));
|
||||
}
|
||||
|
||||
update() {
|
||||
@ -51,6 +58,8 @@ export class Arrow extends Component {
|
||||
}
|
||||
this._isRemoved = true;
|
||||
|
||||
this.circle.getComponent(MeshRenderer)?.material!.setProperty('mainColor', new Color(255, 0, 0, 255));
|
||||
|
||||
// 落地 1 秒后消失
|
||||
this.scheduleOnce(() => {
|
||||
this.node.removeFromParent()
|
||||
@ -59,11 +68,11 @@ export class Arrow extends Component {
|
||||
|
||||
private _updatePosAndForward(percent: number) {
|
||||
let nextPos = this._getPos(percent);
|
||||
this.node.position = nextPos;
|
||||
this.arrow.position = nextPos;
|
||||
|
||||
//武器朝向下一个目标位置, 形成曲线飞行的感觉
|
||||
let lastPos = this._getPos(percent - 0.01)
|
||||
this.node.forward = nextPos.clone().subtract(lastPos).normalize();
|
||||
this.arrow.forward = nextPos.clone().subtract(lastPos).normalize();
|
||||
}
|
||||
|
||||
private _getPos(percent: number) {
|
||||
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "92638561-9d6c-4011-ba3c-c672a78e54f1",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"compressionType": {},
|
||||
"isRemoteBundle": {}
|
||||
}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 7.5 KiB |
@ -0,0 +1,40 @@
|
||||
{
|
||||
"ver": "1.0.21",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "06fa3f81-1aae-4aad-a544-143756df67eb",
|
||||
"files": [
|
||||
".png",
|
||||
".json"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "06fa3f81-1aae-4aad-a544-143756df67eb@6c48a",
|
||||
"displayName": "circle",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "repeat",
|
||||
"wrapModeT": "repeat",
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0,
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "06fa3f81-1aae-4aad-a544-143756df67eb"
|
||||
},
|
||||
"ver": "1.0.21",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"hasAlpha": true,
|
||||
"type": "texture",
|
||||
"redirect": "06fa3f81-1aae-4aad-a544-143756df67eb@6c48a"
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
{
|
||||
"__type__": "cc.Material",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"_native": "",
|
||||
"_effectAsset": {
|
||||
"__uuid__": "a3cd009f-0ab0-420d-9278-b9fdab939bbc",
|
||||
"__expectedType__": "cc.EffectAsset"
|
||||
},
|
||||
"_techIdx": "1",
|
||||
"_defines": [
|
||||
{
|
||||
"USE_TEXTURE": true
|
||||
}
|
||||
],
|
||||
"_states": [
|
||||
{
|
||||
"rasterizerState": {},
|
||||
"depthStencilState": {},
|
||||
"blendState": {
|
||||
"targets": [
|
||||
{}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"_props": [
|
||||
{
|
||||
"mainTexture": {
|
||||
"__uuid__": "06fa3f81-1aae-4aad-a544-143756df67eb@6c48a",
|
||||
"__expectedType__": "cc.Texture2D"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
{
|
||||
"ver": "1.0.9",
|
||||
"importer": "material",
|
||||
"imported": true,
|
||||
"uuid": "5bd9794b-bfe1-46e1-b390-6060f1f08992",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
@ -27,17 +27,20 @@
|
||||
"__id__": 16
|
||||
},
|
||||
{
|
||||
"__id__": 25
|
||||
"__id__": 17
|
||||
},
|
||||
{
|
||||
"__id__": 50
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [],
|
||||
"_prefab": {
|
||||
"__id__": 58
|
||||
"__id__": 53
|
||||
},
|
||||
"autoReleaseAssets": false,
|
||||
"_globals": {
|
||||
"__id__": 61
|
||||
"__id__": 56
|
||||
},
|
||||
"_id": "0d3889f6-dc9c-424e-b8cd-6fa78d63af15"
|
||||
},
|
||||
@ -320,11 +323,7 @@
|
||||
"_parent": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 17
|
||||
}
|
||||
],
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [],
|
||||
"_prefab": null,
|
||||
@ -356,113 +355,6 @@
|
||||
},
|
||||
"_id": "46+eJFPoNAd75C26ynMBuo"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_objFlags": 0,
|
||||
"_parent": {
|
||||
"__id__": 16
|
||||
},
|
||||
"_prefab": {
|
||||
"__id__": 18
|
||||
}
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 17
|
||||
},
|
||||
"asset": {
|
||||
"__uuid__": "6eda806d-83a6-474f-a7b7-b75c57ba73b3",
|
||||
"__expectedType__": "cc.Prefab"
|
||||
},
|
||||
"fileId": "ad10ECDidH979xbvqlbbgn",
|
||||
"instance": {
|
||||
"__id__": 19
|
||||
}
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInstance",
|
||||
"fileId": "f7+AxAbd1K15HySl2cJ7yx",
|
||||
"mountedChildren": [],
|
||||
"mountedComponents": [],
|
||||
"propertyOverrides": [
|
||||
{
|
||||
"__id__": 20
|
||||
},
|
||||
{
|
||||
"__id__": 22
|
||||
},
|
||||
{
|
||||
"__id__": 23
|
||||
},
|
||||
{
|
||||
"__id__": 24
|
||||
}
|
||||
],
|
||||
"removedComponents": []
|
||||
},
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 21
|
||||
},
|
||||
"propertyPath": [
|
||||
"_name"
|
||||
],
|
||||
"value": "Arrow"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.TargetInfo",
|
||||
"localID": [
|
||||
"ad10ECDidH979xbvqlbbgn"
|
||||
]
|
||||
},
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 21
|
||||
},
|
||||
"propertyPath": [
|
||||
"_lpos"
|
||||
],
|
||||
"value": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 1.248,
|
||||
"z": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 21
|
||||
},
|
||||
"propertyPath": [
|
||||
"_lrot"
|
||||
],
|
||||
"value": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 21
|
||||
},
|
||||
"propertyPath": [
|
||||
"_euler"
|
||||
],
|
||||
"value": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "Canvas",
|
||||
@ -472,28 +364,28 @@
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 26
|
||||
"__id__": 18
|
||||
},
|
||||
{
|
||||
"__id__": 28
|
||||
"__id__": 20
|
||||
},
|
||||
{
|
||||
"__id__": 45
|
||||
"__id__": 37
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 54
|
||||
"__id__": 46
|
||||
},
|
||||
{
|
||||
"__id__": 55
|
||||
"__id__": 47
|
||||
},
|
||||
{
|
||||
"__id__": 56
|
||||
"__id__": 48
|
||||
},
|
||||
{
|
||||
"__id__": 57
|
||||
"__id__": 49
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -530,13 +422,13 @@
|
||||
"_name": "Camera",
|
||||
"_objFlags": 0,
|
||||
"_parent": {
|
||||
"__id__": 25
|
||||
"__id__": 17
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 27
|
||||
"__id__": 19
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -573,7 +465,7 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 26
|
||||
"__id__": 18
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -613,16 +505,16 @@
|
||||
"__type__": "cc.Node",
|
||||
"_objFlags": 0,
|
||||
"_parent": {
|
||||
"__id__": 25
|
||||
"__id__": 17
|
||||
},
|
||||
"_prefab": {
|
||||
"__id__": 29
|
||||
"__id__": 21
|
||||
}
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 28
|
||||
"__id__": 20
|
||||
},
|
||||
"asset": {
|
||||
"__uuid__": "0363f7f8-204e-410e-ade0-03adca6ea835",
|
||||
@ -630,7 +522,7 @@
|
||||
},
|
||||
"fileId": "25fHuwytBN2qk6dH5oVJvO",
|
||||
"instance": {
|
||||
"__id__": 30
|
||||
"__id__": 22
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -639,32 +531,32 @@
|
||||
"mountedChildren": [],
|
||||
"mountedComponents": [],
|
||||
"propertyOverrides": [
|
||||
{
|
||||
"__id__": 23
|
||||
},
|
||||
{
|
||||
"__id__": 25
|
||||
},
|
||||
{
|
||||
"__id__": 26
|
||||
},
|
||||
{
|
||||
"__id__": 27
|
||||
},
|
||||
{
|
||||
"__id__": 28
|
||||
},
|
||||
{
|
||||
"__id__": 30
|
||||
},
|
||||
{
|
||||
"__id__": 31
|
||||
},
|
||||
{
|
||||
"__id__": 33
|
||||
},
|
||||
{
|
||||
"__id__": 34
|
||||
},
|
||||
{
|
||||
"__id__": 35
|
||||
},
|
||||
{
|
||||
"__id__": 36
|
||||
},
|
||||
{
|
||||
"__id__": 38
|
||||
},
|
||||
{
|
||||
"__id__": 39
|
||||
},
|
||||
{
|
||||
"__id__": 41
|
||||
},
|
||||
{
|
||||
"__id__": 43
|
||||
}
|
||||
],
|
||||
"removedComponents": []
|
||||
@ -672,7 +564,7 @@
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 32
|
||||
"__id__": 24
|
||||
},
|
||||
"propertyPath": [
|
||||
"_name"
|
||||
@ -688,7 +580,7 @@
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 32
|
||||
"__id__": 24
|
||||
},
|
||||
"propertyPath": [
|
||||
"_lpos"
|
||||
@ -703,7 +595,7 @@
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 32
|
||||
"__id__": 24
|
||||
},
|
||||
"propertyPath": [
|
||||
"_lrot"
|
||||
@ -719,7 +611,7 @@
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 32
|
||||
"__id__": 24
|
||||
},
|
||||
"propertyPath": [
|
||||
"_euler"
|
||||
@ -734,7 +626,7 @@
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 37
|
||||
"__id__": 29
|
||||
},
|
||||
"propertyPath": [
|
||||
"_contentSize"
|
||||
@ -754,7 +646,7 @@
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 32
|
||||
"__id__": 24
|
||||
},
|
||||
"propertyPath": [
|
||||
"_layer"
|
||||
@ -764,7 +656,7 @@
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 40
|
||||
"__id__": 32
|
||||
},
|
||||
"propertyPath": [
|
||||
"_layer"
|
||||
@ -780,7 +672,7 @@
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 42
|
||||
"__id__": 34
|
||||
},
|
||||
"propertyPath": [
|
||||
"_layer"
|
||||
@ -796,7 +688,7 @@
|
||||
{
|
||||
"__type__": "CCPropertyOverrideInfo",
|
||||
"targetInfo": {
|
||||
"__id__": 44
|
||||
"__id__": 36
|
||||
},
|
||||
"propertyPath": [
|
||||
"_layer"
|
||||
@ -814,26 +706,26 @@
|
||||
"_name": "btnAttack",
|
||||
"_objFlags": 0,
|
||||
"_parent": {
|
||||
"__id__": 25
|
||||
"__id__": 17
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 46
|
||||
"__id__": 38
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 49
|
||||
"__id__": 41
|
||||
},
|
||||
{
|
||||
"__id__": 50
|
||||
"__id__": 42
|
||||
},
|
||||
{
|
||||
"__id__": 51
|
||||
"__id__": 43
|
||||
},
|
||||
{
|
||||
"__id__": 53
|
||||
"__id__": 45
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -870,16 +762,16 @@
|
||||
"_name": "Label",
|
||||
"_objFlags": 512,
|
||||
"_parent": {
|
||||
"__id__": 45
|
||||
"__id__": 37
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 47
|
||||
"__id__": 39
|
||||
},
|
||||
{
|
||||
"__id__": 48
|
||||
"__id__": 40
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -916,7 +808,7 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 46
|
||||
"__id__": 38
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -937,7 +829,7 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 46
|
||||
"__id__": 38
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -975,7 +867,7 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 45
|
||||
"__id__": 37
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -996,7 +888,7 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 45
|
||||
"__id__": 37
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -1035,13 +927,13 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 45
|
||||
"__id__": 37
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"clickEvents": [
|
||||
{
|
||||
"__id__": 52
|
||||
"__id__": 44
|
||||
}
|
||||
],
|
||||
"_interactable": true,
|
||||
@ -1093,14 +985,14 @@
|
||||
"_duration": 0.1,
|
||||
"_zoomScale": 1.2,
|
||||
"_target": {
|
||||
"__id__": 45
|
||||
"__id__": 37
|
||||
},
|
||||
"_id": "96d2z2/TpJ558pTlUMNNUO"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.ClickEvent",
|
||||
"target": {
|
||||
"__id__": 25
|
||||
"__id__": 17
|
||||
},
|
||||
"component": "",
|
||||
"_componentId": "d4728cOzxlKHLMu5Xg48U8U",
|
||||
@ -1112,7 +1004,7 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 45
|
||||
"__id__": 37
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -1124,7 +1016,7 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 25
|
||||
"__id__": 17
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -1145,12 +1037,12 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 25
|
||||
"__id__": 17
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"_cameraComponent": {
|
||||
"__id__": 27
|
||||
"__id__": 19
|
||||
},
|
||||
"_alignCanvasWithScreen": true,
|
||||
"_id": "ebX9QTnS1AlKH1eI+/bdJk"
|
||||
@ -1160,7 +1052,7 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 25
|
||||
"__id__": 17
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -1189,7 +1081,7 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 25
|
||||
"__id__": 17
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -1212,33 +1104,123 @@
|
||||
"__id__": 4
|
||||
},
|
||||
"btnAttack": {
|
||||
"__id__": 45
|
||||
"__id__": 37
|
||||
},
|
||||
"attackPosIndicator": {
|
||||
"__id__": 50
|
||||
},
|
||||
"_id": "86PJf2PFRK5LGUONuKqmzS"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "attackPosIndicator",
|
||||
"_objFlags": 0,
|
||||
"_parent": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 51
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0.1,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": -0.7071067811865475,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 0.7071067811865476
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 4.7,
|
||||
"y": 4.7,
|
||||
"z": 1
|
||||
},
|
||||
"_layer": 1073741824,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": -90,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_id": "fdFAHYRNVNIr2aN7wVD+Nn"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.MeshRenderer",
|
||||
"_name": "Quad<ModelComponent>",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 50
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"_materials": [
|
||||
{
|
||||
"__uuid__": "5bd9794b-bfe1-46e1-b390-6060f1f08992",
|
||||
"__expectedType__": "cc.Material"
|
||||
}
|
||||
],
|
||||
"_visFlags": 0,
|
||||
"lightmapSettings": {
|
||||
"__id__": 52
|
||||
},
|
||||
"_mesh": {
|
||||
"__uuid__": "1263d74c-8167-4928-91a6-4e2672411f47@fc873",
|
||||
"__expectedType__": "cc.Mesh"
|
||||
},
|
||||
"_shadowCastingMode": 0,
|
||||
"_shadowReceivingMode": 1,
|
||||
"_enableMorph": true,
|
||||
"_id": "6fuuF9XfNLL4/uFd0cFyL+"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.ModelLightmapSettings",
|
||||
"texture": null,
|
||||
"uvParam": {
|
||||
"__type__": "cc.Vec4",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 0
|
||||
},
|
||||
"_bakeable": false,
|
||||
"_castShadow": false,
|
||||
"_receiveShadow": false,
|
||||
"_recieveShadow": false,
|
||||
"_lightmapSize": 64
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"fileId": "",
|
||||
"targetOverrides": [
|
||||
{
|
||||
"__id__": 59
|
||||
"__id__": 54
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"__type__": "cc.TargetOverrideInfo",
|
||||
"source": {
|
||||
"__id__": 57
|
||||
"__id__": 49
|
||||
},
|
||||
"sourceInfo": null,
|
||||
"propertyPath": [
|
||||
"joyStick"
|
||||
],
|
||||
"target": {
|
||||
"__id__": 28
|
||||
"__id__": 20
|
||||
},
|
||||
"targetInfo": {
|
||||
"__id__": 60
|
||||
"__id__": 55
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -1250,16 +1232,16 @@
|
||||
{
|
||||
"__type__": "cc.SceneGlobals",
|
||||
"ambient": {
|
||||
"__id__": 62
|
||||
"__id__": 57
|
||||
},
|
||||
"shadows": {
|
||||
"__id__": 63
|
||||
"__id__": 58
|
||||
},
|
||||
"_skybox": {
|
||||
"__id__": 64
|
||||
"__id__": 59
|
||||
},
|
||||
"fog": {
|
||||
"__id__": 65
|
||||
"__id__": 60
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
import { Button, Component, instantiate, Node, Prefab, UIOpacity, Vec2, _decorator } from 'cc';
|
||||
import { Button, Color, Component, instantiate, MeshRenderer, Node, Prefab, UIOpacity, Vec2, _decorator } from 'cc';
|
||||
import { Arrow } from '../../prefabs/Arrow/Arrow';
|
||||
import { Joystick } from '../../prefabs/Joystick/Joystick';
|
||||
import { Player } from '../../prefabs/Player/Player';
|
||||
@ -30,6 +30,8 @@ export class GameScene extends Component {
|
||||
|
||||
@property(Node)
|
||||
btnAttack: Node = null as any;
|
||||
@property(Node)
|
||||
attackPosIndicator!: Node;
|
||||
|
||||
gameManager!: GameManager;
|
||||
|
||||
@ -40,6 +42,8 @@ export class GameScene extends Component {
|
||||
onLoad() {
|
||||
(window as any).game = this;
|
||||
|
||||
this.attackPosIndicator.getComponent(MeshRenderer)!.material!.setProperty('mainColor', Color.CYAN);
|
||||
|
||||
// 初始化摇杆
|
||||
this.joyStick.options = {
|
||||
onOperate: v => {
|
||||
@ -87,6 +91,8 @@ export class GameScene extends Component {
|
||||
}
|
||||
|
||||
this._updatePlayers();
|
||||
|
||||
this._updateAttackIndicator();
|
||||
}
|
||||
|
||||
private _updatePlayers() {
|
||||
@ -159,6 +165,7 @@ export class GameScene extends Component {
|
||||
let sceneOffset = playerNode.forward.clone().normalize().multiplyScalar(gameConfig.arrowDistance);
|
||||
// 攻击落点(逻辑层坐标)
|
||||
let targetPos = new Vec2(playerState.pos.x, playerState.pos.y).add2f(sceneOffset.x, -sceneOffset.z);
|
||||
|
||||
// 发送输入
|
||||
this.gameManager.sendClientInput({
|
||||
type: 'PlayerAttack',
|
||||
@ -175,4 +182,20 @@ export class GameScene extends Component {
|
||||
this.btnAttack.getComponent(UIOpacity)!.opacity = 255;
|
||||
}, 1)
|
||||
}
|
||||
|
||||
private _updateAttackIndicator() {
|
||||
let playerState = this.gameManager.state.players.find(v => v.id === this.gameManager.selfPlayerId);
|
||||
if (!playerState) {
|
||||
return;
|
||||
}
|
||||
|
||||
let playerNode = this._playerInstances[this.gameManager.selfPlayerId]?.node;
|
||||
if (!playerNode) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 攻击落点位置(表现层坐标)
|
||||
let sceneTargetPos = playerNode.position.clone().add(playerNode.forward.clone().normalize().multiplyScalar(gameConfig.arrowDistance));
|
||||
this.attackPosIndicator.setPosition(sceneTargetPos.x, 0.1, sceneTargetPos.z);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user