mirror of
https://github.com/MartinKral/Slash-The-Hordes
synced 2024-12-25 11:18:54 +00:00
Projectiles, angles
This commit is contained in:
parent
d989ead748
commit
9c3299ebfe
@ -139,7 +139,7 @@
|
|||||||
"fileId": "cfXyVJoitMGp/0liEUZfNP"
|
"fileId": "cfXyVJoitMGp/0liEUZfNP"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.CircleCollider2D",
|
"__type__": "7a536G2OudFtpTsoF8yLXiW",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"node": {
|
"node": {
|
||||||
@ -149,35 +149,6 @@
|
|||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 7
|
"__id__": 7
|
||||||
},
|
},
|
||||||
"tag": 0,
|
|
||||||
"_group": 16,
|
|
||||||
"_density": 1,
|
|
||||||
"_sensor": false,
|
|
||||||
"_friction": 0.2,
|
|
||||||
"_restitution": 0,
|
|
||||||
"_offset": {
|
|
||||||
"__type__": "cc.Vec2",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"_radius": 14,
|
|
||||||
"_id": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "cc.CompPrefabInfo",
|
|
||||||
"fileId": "75WVRoLrtKLrJihCVsxa4D"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "7a536G2OudFtpTsoF8yLXiW",
|
|
||||||
"_name": "",
|
|
||||||
"_objFlags": 0,
|
|
||||||
"node": {
|
|
||||||
"__id__": 1
|
|
||||||
},
|
|
||||||
"_enabled": false,
|
|
||||||
"__prefab": {
|
|
||||||
"__id__": 9
|
|
||||||
},
|
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -193,7 +164,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": false,
|
"_enabled": false,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 11
|
"__id__": 9
|
||||||
},
|
},
|
||||||
"playOnLoad": true,
|
"playOnLoad": true,
|
||||||
"_clips": [
|
"_clips": [
|
||||||
@ -212,6 +183,39 @@
|
|||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "3ag4rexLNJW6A/sp6OpwZ8"
|
"fileId": "3ag4rexLNJW6A/sp6OpwZ8"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.BoxCollider2D",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": {
|
||||||
|
"__id__": 11
|
||||||
|
},
|
||||||
|
"tag": 0,
|
||||||
|
"_group": 1,
|
||||||
|
"_density": 1,
|
||||||
|
"_sensor": false,
|
||||||
|
"_friction": 0.2,
|
||||||
|
"_restitution": 0,
|
||||||
|
"_offset": {
|
||||||
|
"__type__": "cc.Vec2",
|
||||||
|
"x": 1.1,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"_size": {
|
||||||
|
"__type__": "cc.Size",
|
||||||
|
"width": 18,
|
||||||
|
"height": 18
|
||||||
|
},
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.CompPrefabInfo",
|
||||||
|
"fileId": "b5zZIKDzhK3q3Rd8OiKUPa"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.PrefabInfo",
|
"__type__": "cc.PrefabInfo",
|
||||||
"root": {
|
"root": {
|
||||||
|
@ -139,7 +139,7 @@
|
|||||||
"fileId": "cfXyVJoitMGp/0liEUZfNP"
|
"fileId": "cfXyVJoitMGp/0liEUZfNP"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.CircleCollider2D",
|
"__type__": "7a536G2OudFtpTsoF8yLXiW",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"node": {
|
"node": {
|
||||||
@ -149,35 +149,6 @@
|
|||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 7
|
"__id__": 7
|
||||||
},
|
},
|
||||||
"tag": 0,
|
|
||||||
"_group": 16,
|
|
||||||
"_density": 1,
|
|
||||||
"_sensor": false,
|
|
||||||
"_friction": 0.2,
|
|
||||||
"_restitution": 0,
|
|
||||||
"_offset": {
|
|
||||||
"__type__": "cc.Vec2",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"_radius": 12,
|
|
||||||
"_id": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "cc.CompPrefabInfo",
|
|
||||||
"fileId": "75WVRoLrtKLrJihCVsxa4D"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "7a536G2OudFtpTsoF8yLXiW",
|
|
||||||
"_name": "",
|
|
||||||
"_objFlags": 0,
|
|
||||||
"node": {
|
|
||||||
"__id__": 1
|
|
||||||
},
|
|
||||||
"_enabled": false,
|
|
||||||
"__prefab": {
|
|
||||||
"__id__": 9
|
|
||||||
},
|
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -193,7 +164,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 11
|
"__id__": 9
|
||||||
},
|
},
|
||||||
"playOnLoad": true,
|
"playOnLoad": true,
|
||||||
"_clips": [
|
"_clips": [
|
||||||
@ -212,6 +183,39 @@
|
|||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "3ag4rexLNJW6A/sp6OpwZ8"
|
"fileId": "3ag4rexLNJW6A/sp6OpwZ8"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.BoxCollider2D",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": {
|
||||||
|
"__id__": 11
|
||||||
|
},
|
||||||
|
"tag": 0,
|
||||||
|
"_group": 1,
|
||||||
|
"_density": 1,
|
||||||
|
"_sensor": false,
|
||||||
|
"_friction": 0.2,
|
||||||
|
"_restitution": 0,
|
||||||
|
"_offset": {
|
||||||
|
"__type__": "cc.Vec2",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"_size": {
|
||||||
|
"__type__": "cc.Size",
|
||||||
|
"width": 9,
|
||||||
|
"height": 14
|
||||||
|
},
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.CompPrefabInfo",
|
||||||
|
"fileId": "67joCa7ptP34A+uWLWHsEf"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.PrefabInfo",
|
"__type__": "cc.PrefabInfo",
|
||||||
"root": {
|
"root": {
|
||||||
|
@ -160,7 +160,7 @@
|
|||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 0
|
"y": 0
|
||||||
},
|
},
|
||||||
"_radius": 12,
|
"_radius": 6,
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -160,7 +160,7 @@
|
|||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 0
|
"y": 0
|
||||||
},
|
},
|
||||||
"_radius": 12,
|
"_radius": 6,
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -160,7 +160,7 @@
|
|||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 0
|
"y": 0
|
||||||
},
|
},
|
||||||
"_radius": 12,
|
"_radius": 6,
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
2050
assets/Media/Prefabs/Game/Player.prefab
Normal file
2050
assets/Media/Prefabs/Game/Player.prefab
Normal file
File diff suppressed because it is too large
Load Diff
13
assets/Media/Prefabs/Game/Player.prefab.meta
Normal file
13
assets/Media/Prefabs/Game/Player.prefab.meta
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"ver": "1.1.40",
|
||||||
|
"importer": "prefab",
|
||||||
|
"imported": true,
|
||||||
|
"uuid": "27c97ec7-9bb8-4e4e-a264-ce49f2ae9843",
|
||||||
|
"files": [
|
||||||
|
".json"
|
||||||
|
],
|
||||||
|
"subMetas": {},
|
||||||
|
"userData": {
|
||||||
|
"syncNodeName": "Player"
|
||||||
|
}
|
||||||
|
}
|
@ -77,8 +77,8 @@
|
|||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
"width": 15,
|
"width": 8,
|
||||||
"height": 15
|
"height": 4
|
||||||
},
|
},
|
||||||
"_anchorPoint": {
|
"_anchorPoint": {
|
||||||
"__type__": "cc.Vec2",
|
"__type__": "cc.Vec2",
|
||||||
@ -113,7 +113,7 @@
|
|||||||
"a": 255
|
"a": 255
|
||||||
},
|
},
|
||||||
"_spriteFrame": {
|
"_spriteFrame": {
|
||||||
"__uuid__": "9bebe8fc-7ccd-4376-a6ff-f9e471b40fcb@f9941",
|
"__uuid__": "1ed8c850-646c-4883-97ae-022e97a5e58e@f9941",
|
||||||
"__expectedType__": "cc.SpriteFrame"
|
"__expectedType__": "cc.SpriteFrame"
|
||||||
},
|
},
|
||||||
"_type": 0,
|
"_type": 0,
|
||||||
@ -136,7 +136,7 @@
|
|||||||
"fileId": "46qOXlbU5GmbOpfjiX4jGV"
|
"fileId": "46qOXlbU5GmbOpfjiX4jGV"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.CircleCollider2D",
|
"__type__": "6a24eYAhmtMDZo5Wb8iLC5Q",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"node": {
|
"node": {
|
||||||
@ -146,6 +146,26 @@
|
|||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 7
|
"__id__": 7
|
||||||
},
|
},
|
||||||
|
"collider": {
|
||||||
|
"__id__": 8
|
||||||
|
},
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.CompPrefabInfo",
|
||||||
|
"fileId": "a81ki8NjhA4KniWAiobzy2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.BoxCollider2D",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": {
|
||||||
|
"__id__": 9
|
||||||
|
},
|
||||||
"tag": 0,
|
"tag": 0,
|
||||||
"_group": 32,
|
"_group": 32,
|
||||||
"_density": 1,
|
"_density": 1,
|
||||||
@ -157,32 +177,16 @@
|
|||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 0
|
"y": 0
|
||||||
},
|
},
|
||||||
"_radius": 13,
|
"_size": {
|
||||||
"_id": ""
|
"__type__": "cc.Size",
|
||||||
},
|
"width": 8,
|
||||||
{
|
"height": 4
|
||||||
"__type__": "cc.CompPrefabInfo",
|
|
||||||
"fileId": "7cR5oa68RG/oqkiwJ9HQ3X"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "6a24eYAhmtMDZo5Wb8iLC5Q",
|
|
||||||
"_name": "",
|
|
||||||
"_objFlags": 0,
|
|
||||||
"node": {
|
|
||||||
"__id__": 1
|
|
||||||
},
|
|
||||||
"_enabled": true,
|
|
||||||
"__prefab": {
|
|
||||||
"__id__": 9
|
|
||||||
},
|
|
||||||
"collider": {
|
|
||||||
"__id__": 6
|
|
||||||
},
|
},
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "a81ki8NjhA4KniWAiobzy2"
|
"fileId": "62/HqD70FPyKT1OoTRCuXS"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.PrefabInfo",
|
"__type__": "cc.PrefabInfo",
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -24,11 +24,11 @@
|
|||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [],
|
"_components": [],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 25
|
"__id__": 33
|
||||||
},
|
},
|
||||||
"autoReleaseAssets": false,
|
"autoReleaseAssets": false,
|
||||||
"_globals": {
|
"_globals": {
|
||||||
"__id__": 26
|
"__id__": 34
|
||||||
},
|
},
|
||||||
"_id": "1a3bccb5-bbb7-4058-846c-ed41b52415b0"
|
"_id": "1a3bccb5-bbb7-4058-846c-ed41b52415b0"
|
||||||
},
|
},
|
||||||
@ -153,21 +153,24 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 13
|
"__id__": 13
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 21
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 21
|
"__id__": 29
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 22
|
"__id__": 30
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 23
|
"__id__": 31
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 24
|
"__id__": 32
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": null,
|
"_prefab": null,
|
||||||
@ -579,6 +582,300 @@
|
|||||||
"__prefab": null,
|
"__prefab": null,
|
||||||
"_id": "8d2ldk4JNJYKGBH48A9kCb"
|
"_id": "8d2ldk4JNJYKGBH48A9kCb"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Node",
|
||||||
|
"_name": "UpgradesBtn",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"_parent": {
|
||||||
|
"__id__": 10
|
||||||
|
},
|
||||||
|
"_children": [
|
||||||
|
{
|
||||||
|
"__id__": 22
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"_active": true,
|
||||||
|
"_components": [
|
||||||
|
{
|
||||||
|
"__id__": 25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 27
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 28
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"_prefab": null,
|
||||||
|
"_lpos": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 0,
|
||||||
|
"y": -47,
|
||||||
|
"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": 33554432,
|
||||||
|
"_euler": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"_id": "68jGDMx3tIYp00FOQuFhUE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Node",
|
||||||
|
"_name": "Label",
|
||||||
|
"_objFlags": 512,
|
||||||
|
"_parent": {
|
||||||
|
"__id__": 21
|
||||||
|
},
|
||||||
|
"_children": [],
|
||||||
|
"_active": true,
|
||||||
|
"_components": [
|
||||||
|
{
|
||||||
|
"__id__": 23
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 24
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"_prefab": null,
|
||||||
|
"_lpos": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 0,
|
||||||
|
"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": 33554432,
|
||||||
|
"_euler": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"_id": "14tp79FO5HlbxUE2NXOcEF"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.UITransform",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 22
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": null,
|
||||||
|
"_contentSize": {
|
||||||
|
"__type__": "cc.Size",
|
||||||
|
"width": 100,
|
||||||
|
"height": 40
|
||||||
|
},
|
||||||
|
"_anchorPoint": {
|
||||||
|
"__type__": "cc.Vec2",
|
||||||
|
"x": 0.5,
|
||||||
|
"y": 0.5
|
||||||
|
},
|
||||||
|
"_id": "f25nqGTehMw4pL7uv4uOnM"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Label",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 22
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": null,
|
||||||
|
"_customMaterial": null,
|
||||||
|
"_srcBlendFactor": 2,
|
||||||
|
"_dstBlendFactor": 4,
|
||||||
|
"_color": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 0,
|
||||||
|
"g": 0,
|
||||||
|
"b": 0,
|
||||||
|
"a": 255
|
||||||
|
},
|
||||||
|
"_string": "Upgrade",
|
||||||
|
"_horizontalAlign": 1,
|
||||||
|
"_verticalAlign": 1,
|
||||||
|
"_actualFontSize": 20,
|
||||||
|
"_fontSize": 20,
|
||||||
|
"_fontFamily": "Arial",
|
||||||
|
"_lineHeight": 40,
|
||||||
|
"_overflow": 1,
|
||||||
|
"_enableWrapText": false,
|
||||||
|
"_font": null,
|
||||||
|
"_isSystemFontUsed": true,
|
||||||
|
"_spacingX": 0,
|
||||||
|
"_isItalic": false,
|
||||||
|
"_isBold": false,
|
||||||
|
"_isUnderline": false,
|
||||||
|
"_underlineHeight": 2,
|
||||||
|
"_cacheMode": 0,
|
||||||
|
"_id": "a6pM9EFa1JnoBLTshXcD+3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.UITransform",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 21
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": null,
|
||||||
|
"_contentSize": {
|
||||||
|
"__type__": "cc.Size",
|
||||||
|
"width": 100,
|
||||||
|
"height": 40
|
||||||
|
},
|
||||||
|
"_anchorPoint": {
|
||||||
|
"__type__": "cc.Vec2",
|
||||||
|
"x": 0.5,
|
||||||
|
"y": 0.5
|
||||||
|
},
|
||||||
|
"_id": "1e3MN6eWxEvZYrv/QH5yMz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Sprite",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 21
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": null,
|
||||||
|
"_customMaterial": null,
|
||||||
|
"_srcBlendFactor": 2,
|
||||||
|
"_dstBlendFactor": 4,
|
||||||
|
"_color": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 255,
|
||||||
|
"g": 255,
|
||||||
|
"b": 255,
|
||||||
|
"a": 255
|
||||||
|
},
|
||||||
|
"_spriteFrame": {
|
||||||
|
"__uuid__": "20835ba4-6145-4fbc-a58a-051ce700aa3e@f9941",
|
||||||
|
"__expectedType__": "cc.SpriteFrame"
|
||||||
|
},
|
||||||
|
"_type": 1,
|
||||||
|
"_fillType": 0,
|
||||||
|
"_sizeMode": 0,
|
||||||
|
"_fillCenter": {
|
||||||
|
"__type__": "cc.Vec2",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"_fillStart": 0,
|
||||||
|
"_fillRange": 0,
|
||||||
|
"_isTrimmedMode": true,
|
||||||
|
"_useGrayscale": false,
|
||||||
|
"_atlas": null,
|
||||||
|
"_id": "7dz1lVaZdKjK3xB06aSZWO"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Button",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 21
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": null,
|
||||||
|
"clickEvents": [],
|
||||||
|
"_interactable": true,
|
||||||
|
"_transition": 2,
|
||||||
|
"_normalColor": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 214,
|
||||||
|
"g": 214,
|
||||||
|
"b": 214,
|
||||||
|
"a": 255
|
||||||
|
},
|
||||||
|
"_hoverColor": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 211,
|
||||||
|
"g": 211,
|
||||||
|
"b": 211,
|
||||||
|
"a": 255
|
||||||
|
},
|
||||||
|
"_pressedColor": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 255,
|
||||||
|
"g": 255,
|
||||||
|
"b": 255,
|
||||||
|
"a": 255
|
||||||
|
},
|
||||||
|
"_disabledColor": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 124,
|
||||||
|
"g": 124,
|
||||||
|
"b": 124,
|
||||||
|
"a": 255
|
||||||
|
},
|
||||||
|
"_normalSprite": {
|
||||||
|
"__uuid__": "20835ba4-6145-4fbc-a58a-051ce700aa3e@f9941",
|
||||||
|
"__expectedType__": "cc.SpriteFrame"
|
||||||
|
},
|
||||||
|
"_hoverSprite": {
|
||||||
|
"__uuid__": "20835ba4-6145-4fbc-a58a-051ce700aa3e@f9941",
|
||||||
|
"__expectedType__": "cc.SpriteFrame"
|
||||||
|
},
|
||||||
|
"_pressedSprite": {
|
||||||
|
"__uuid__": "544e49d6-3f05-4fa8-9a9e-091f98fc2ce8@f9941",
|
||||||
|
"__expectedType__": "cc.SpriteFrame"
|
||||||
|
},
|
||||||
|
"_disabledSprite": {
|
||||||
|
"__uuid__": "951249e0-9f16-456d-8b85-a6ca954da16b@f9941",
|
||||||
|
"__expectedType__": "cc.SpriteFrame"
|
||||||
|
},
|
||||||
|
"_duration": 0.1,
|
||||||
|
"_zoomScale": 1.2,
|
||||||
|
"_target": {
|
||||||
|
"__id__": 21
|
||||||
|
},
|
||||||
|
"_id": "02km9/CjtM4LntV5ZcaVeR"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "55e5f5nQ8dHiL5fPWjgdXbH",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 21
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": null,
|
||||||
|
"_id": "17dRwdDH1DH7KDpkjt3c0f"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.UITransform",
|
"__type__": "cc.UITransform",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
@ -656,6 +953,9 @@
|
|||||||
"playBtn": {
|
"playBtn": {
|
||||||
"__id__": 20
|
"__id__": 20
|
||||||
},
|
},
|
||||||
|
"upgradeBtn": {
|
||||||
|
"__id__": 28
|
||||||
|
},
|
||||||
"_id": "12ZDz/3H9Ff76Ay4iDl43K"
|
"_id": "12ZDz/3H9Ff76Ay4iDl43K"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -670,19 +970,19 @@
|
|||||||
{
|
{
|
||||||
"__type__": "cc.SceneGlobals",
|
"__type__": "cc.SceneGlobals",
|
||||||
"ambient": {
|
"ambient": {
|
||||||
"__id__": 27
|
"__id__": 35
|
||||||
},
|
},
|
||||||
"shadows": {
|
"shadows": {
|
||||||
"__id__": 28
|
"__id__": 36
|
||||||
},
|
},
|
||||||
"_skybox": {
|
"_skybox": {
|
||||||
"__id__": 29
|
"__id__": 37
|
||||||
},
|
},
|
||||||
"fog": {
|
"fog": {
|
||||||
"__id__": 30
|
"__id__": 38
|
||||||
},
|
},
|
||||||
"octree": {
|
"octree": {
|
||||||
"__id__": 31
|
"__id__": 39
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { CircleCollider2D, Collider2D, Component, Contact2DType, _decorator } from "cc";
|
import { Collider2D, Component, Contact2DType, Vec3, _decorator } from "cc";
|
||||||
import { ISignal } from "../../Services/EventSystem/ISignal";
|
import { ISignal } from "../../Services/EventSystem/ISignal";
|
||||||
import { Signal } from "../../Services/EventSystem/Signal";
|
import { Signal } from "../../Services/EventSystem/Signal";
|
||||||
import { ProjectileCollision } from "./ProjectileCollision";
|
import { ProjectileCollision } from "./ProjectileCollision";
|
||||||
@ -6,7 +6,7 @@ const { ccclass, property } = _decorator;
|
|||||||
|
|
||||||
@ccclass("Projectile")
|
@ccclass("Projectile")
|
||||||
export class Projectile extends Component {
|
export class Projectile extends Component {
|
||||||
@property(CircleCollider2D) private collider: CircleCollider2D;
|
@property(Collider2D) private collider: Collider2D;
|
||||||
private contactBeginEvent = new Signal<ProjectileCollision>();
|
private contactBeginEvent = new Signal<ProjectileCollision>();
|
||||||
private piercesDepletedEvent = new Signal<Projectile>();
|
private piercesDepletedEvent = new Signal<Projectile>();
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ export class Projectile extends Component {
|
|||||||
private piercesLeft = 0;
|
private piercesLeft = 0;
|
||||||
private damage = 0;
|
private damage = 0;
|
||||||
|
|
||||||
public init(damage: number, pierces: number): void {
|
public init(damage: number, pierces: number, angle: number): void {
|
||||||
this.piercesLeft = pierces;
|
this.piercesLeft = pierces;
|
||||||
this.damage = damage;
|
this.damage = damage;
|
||||||
|
|
||||||
@ -23,6 +23,8 @@ export class Projectile extends Component {
|
|||||||
this.isContactListenerSet = true;
|
this.isContactListenerSet = true;
|
||||||
this.collider.on(Contact2DType.BEGIN_CONTACT, this.onColliderContactBegin, this);
|
this.collider.on(Contact2DType.BEGIN_CONTACT, this.onColliderContactBegin, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.node.setRotationFromEuler(new Vec3(0, 0, angle));
|
||||||
}
|
}
|
||||||
|
|
||||||
public pierce(): void {
|
public pierce(): void {
|
||||||
|
@ -4,6 +4,7 @@ import { Signal } from "../../../../Services/EventSystem/Signal";
|
|||||||
import { GameTimer } from "../../../../Services/GameTimer";
|
import { GameTimer } from "../../../../Services/GameTimer";
|
||||||
import { ObjectPool } from "../../../../Services/ObjectPool";
|
import { ObjectPool } from "../../../../Services/ObjectPool";
|
||||||
import { delay } from "../../../../Services/Utils/AsyncUtils";
|
import { delay } from "../../../../Services/Utils/AsyncUtils";
|
||||||
|
import { getDegreeAngleFromDirection } from "../../../../Services/Utils/MathUtils";
|
||||||
import { ProjectileLauncherSettings } from "../../../Data/GameSettings";
|
import { ProjectileLauncherSettings } from "../../../Data/GameSettings";
|
||||||
import { IProjectileCollisionSignaler } from "../../../Projectile/IProjectileCollisionSignaler";
|
import { IProjectileCollisionSignaler } from "../../../Projectile/IProjectileCollisionSignaler";
|
||||||
import { Projectile } from "../../../Projectile/Projectile";
|
import { Projectile } from "../../../Projectile/Projectile";
|
||||||
@ -90,7 +91,7 @@ export class ProjectileLauncher extends Component implements IProjectileCollisio
|
|||||||
|
|
||||||
private fireProjectile(direction: Vec2): void {
|
private fireProjectile(direction: Vec2): void {
|
||||||
const projectile: Projectile = this.projectilePool.borrow();
|
const projectile: Projectile = this.projectilePool.borrow();
|
||||||
projectile.init(this.projectileData.damage, this.projectileData.pierces);
|
projectile.init(this.projectileData.damage, this.projectileData.pierces, getDegreeAngleFromDirection(direction.x, direction.y));
|
||||||
projectile.node.setWorldPosition(this.playerNode.worldPosition);
|
projectile.node.setWorldPosition(this.playerNode.worldPosition);
|
||||||
projectile.node.active = true;
|
projectile.node.active = true;
|
||||||
projectile.ContactBeginEvent.on(this.onProjectileCollision, this);
|
projectile.ContactBeginEvent.on(this.onProjectileCollision, this);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { _decorator, Component, Node, Button } from "cc";
|
import { _decorator, Component, Node, Button } from "cc";
|
||||||
|
import { type } from "os";
|
||||||
import { UIButton } from "../Services/UI/Button/UIButton";
|
import { UIButton } from "../Services/UI/Button/UIButton";
|
||||||
|
|
||||||
import { GameRunner } from "./GameRunner";
|
import { GameRunner } from "./GameRunner";
|
||||||
@ -7,8 +8,18 @@ const { ccclass, property } = _decorator;
|
|||||||
@ccclass("Menu")
|
@ccclass("Menu")
|
||||||
export class Menu extends Component {
|
export class Menu extends Component {
|
||||||
@property(UIButton) private playBtn: UIButton;
|
@property(UIButton) private playBtn: UIButton;
|
||||||
|
@property(UIButton) private upgradeBtn: UIButton;
|
||||||
|
|
||||||
public async start(): Promise<void> {
|
public async start(): Promise<void> {
|
||||||
this.playBtn.InteractedEvent.on(() => GameRunner.Instance.playGame(), this);
|
this.playBtn.InteractedEvent.on(this.startGame, this);
|
||||||
|
this.upgradeBtn.InteractedEvent.on(this.openUpgradesWindow, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private startGame(): void {
|
||||||
|
GameRunner.Instance.playGame();
|
||||||
|
}
|
||||||
|
|
||||||
|
private openUpgradesWindow(): void {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,3 +5,8 @@ export function roundToOneDecimal(num: number): number {
|
|||||||
export function randomPositiveOrNegative(): number {
|
export function randomPositiveOrNegative(): number {
|
||||||
return Math.random() < 0.5 ? 1 : -1;
|
return Math.random() < 0.5 ? 1 : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getDegreeAngleFromDirection(x: number, y: number): number {
|
||||||
|
const radianAngle = Math.atan2(y, x);
|
||||||
|
return (radianAngle / Math.PI) * 180;
|
||||||
|
}
|
||||||
|
16
tests/utils/mathUtils.test.ts
Normal file
16
tests/utils/mathUtils.test.ts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { getDegreeAngleFromDirection } from "../../assets/Scripts/Services/Utils/MathUtils";
|
||||||
|
|
||||||
|
const testCases: { x: number; y: number; expectedAngle: number }[] = [
|
||||||
|
{ x: 0.5, y: 0.5, expectedAngle: 45 },
|
||||||
|
{ x: 0, y: 1, expectedAngle: 90 },
|
||||||
|
{ x: -0.5, y: -0.5, expectedAngle: 225 }
|
||||||
|
];
|
||||||
|
|
||||||
|
for (const testCase of testCases) {
|
||||||
|
test(`returns correct degree angle for direction [X: ${testCase.x} , Y: ${testCase.y}] (${testCase.expectedAngle} degrees)`, () => {
|
||||||
|
let angle = getDegreeAngleFromDirection(testCase.x, testCase.y);
|
||||||
|
if (angle < 0) angle += 360;
|
||||||
|
|
||||||
|
expect(angle).toBe(testCase.expectedAngle);
|
||||||
|
});
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user