添加一个数子滚动的例子
67
RollingNumber/.gitignore
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
#/////////////////////////////////////////////////////////////////////////////
|
||||
# Fireball Projects
|
||||
#/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
library/
|
||||
temp/
|
||||
local/
|
||||
build/
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////
|
||||
# Logs and databases
|
||||
#/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
*.log
|
||||
*.sql
|
||||
*.sqlite
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////
|
||||
# files for debugger
|
||||
#/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
*.sln
|
||||
*.csproj
|
||||
*.pidb
|
||||
*.unityproj
|
||||
*.suo
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////
|
||||
# OS generated files
|
||||
#/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
.DS_Store
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////
|
||||
# exvim files
|
||||
#/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
*UnityVS.meta
|
||||
*.err
|
||||
*.err.meta
|
||||
*.exvim
|
||||
*.exvim.meta
|
||||
*.vimentry
|
||||
*.vimentry.meta
|
||||
*.vimproject
|
||||
*.vimproject.meta
|
||||
.vimfiles.*/
|
||||
.exvim.*/
|
||||
quick_gen_project_*_autogen.bat
|
||||
quick_gen_project_*_autogen.bat.meta
|
||||
quick_gen_project_*_autogen.sh
|
||||
quick_gen_project_*_autogen.sh.meta
|
||||
.exvim.app
|
||||
|
||||
#/////////////////////////////////////////////////////////////////////////////
|
||||
# webstorm files
|
||||
#/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
.idea/
|
||||
|
||||
#//////////////////////////
|
||||
# VS Code
|
||||
#//////////////////////////
|
||||
|
||||
.vscode/
|
||||
100
RollingNumber/assets/item_0.prefab
Normal file
@@ -0,0 +1,100 @@
|
||||
[
|
||||
{
|
||||
"__type__": "cc.Prefab",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"_rawFiles": null,
|
||||
"data": {
|
||||
"__id__": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "item_0",
|
||||
"_objFlags": 0,
|
||||
"_parent": null,
|
||||
"_children": [],
|
||||
"_tag": -1,
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 2
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 3
|
||||
},
|
||||
"_id": "",
|
||||
"_opacity": 255,
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 255,
|
||||
"g": 255,
|
||||
"b": 255,
|
||||
"a": 255
|
||||
},
|
||||
"_cascadeOpacityEnabled": true,
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0.5,
|
||||
"y": 0.5
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 26,
|
||||
"height": 36
|
||||
},
|
||||
"_rotationX": 0,
|
||||
"_rotationY": 0,
|
||||
"_scaleX": 1,
|
||||
"_scaleY": 1,
|
||||
"_position": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"_skewX": 0,
|
||||
"_skewY": 0,
|
||||
"_localZOrder": 0,
|
||||
"_globalZOrder": 0,
|
||||
"_opacityModifyRGB": false,
|
||||
"groupIndex": 0
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Sprite",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_enabled": true,
|
||||
"_spriteFrame": {
|
||||
"__uuid__": "187189c9-582f-4213-a754-1c33a9512de9"
|
||||
},
|
||||
"_type": 0,
|
||||
"_sizeMode": 2,
|
||||
"_fillType": 0,
|
||||
"_fillCenter": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"_fillStart": 0,
|
||||
"_fillRange": 0,
|
||||
"_isTrimmedMode": false,
|
||||
"_srcBlendFactor": 770,
|
||||
"_dstBlendFactor": 771,
|
||||
"_atlas": null
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"asset": {
|
||||
"__uuid__": "4639edfe-5f74-45f9-9fe3-65a79e365fd3"
|
||||
},
|
||||
"fileId": "bbbnkIa1VGQ7eS3L4JlJtT",
|
||||
"sync": false
|
||||
}
|
||||
]
|
||||
6
RollingNumber/assets/item_0.prefab.meta
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "4639edfe-5f74-45f9-9fe3-65a79e365fd3",
|
||||
"asyncLoadAssets": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
7
RollingNumber/assets/scene.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"ver": "1.0.1",
|
||||
"uuid": "421a490d-3fe7-4f9b-adf8-871d4a6292fe",
|
||||
"isSubpackage": false,
|
||||
"subpackageName": "",
|
||||
"subMetas": {}
|
||||
}
|
||||
1801
RollingNumber/assets/scene/test.fire
Normal file
7
RollingNumber/assets/scene/test.fire.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "daf82a65-d3df-4c93-9d56-0aae07223339",
|
||||
"asyncLoadAssets": false,
|
||||
"autoReleaseAssets": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
7
RollingNumber/assets/scene/texture.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"ver": "1.0.1",
|
||||
"uuid": "e01554a2-3524-4df4-baff-a4ac58ec2b95",
|
||||
"isSubpackage": false,
|
||||
"subpackageName": "",
|
||||
"subMetas": {}
|
||||
}
|
||||
BIN
RollingNumber/assets/scene/texture/0.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
30
RollingNumber/assets/scene/texture/0.png.meta
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "a0487136-6150-4031-911c-b140f6f997f5",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"subMetas": {
|
||||
"0": {
|
||||
"ver": "1.0.3",
|
||||
"uuid": "187189c9-582f-4213-a754-1c33a9512de9",
|
||||
"rawTextureUuid": "a0487136-6150-4031-911c-b140f6f997f5",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 3,
|
||||
"trimY": 4,
|
||||
"width": 20,
|
||||
"height": 28,
|
||||
"rawWidth": 26,
|
||||
"rawHeight": 36,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
RollingNumber/assets/scene/texture/1.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
30
RollingNumber/assets/scene/texture/1.png.meta
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "3fc1a681-d7e1-448f-a7a8-9429fc41beab",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"subMetas": {
|
||||
"1": {
|
||||
"ver": "1.0.3",
|
||||
"uuid": "8f1c5e92-c9a1-4d23-bc65-dd6d43a0aa33",
|
||||
"rawTextureUuid": "3fc1a681-d7e1-448f-a7a8-9429fc41beab",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": -3.5,
|
||||
"offsetY": 0.5,
|
||||
"trimX": 3,
|
||||
"trimY": 4,
|
||||
"width": 13,
|
||||
"height": 27,
|
||||
"rawWidth": 26,
|
||||
"rawHeight": 36,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
RollingNumber/assets/scene/texture/2.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
30
RollingNumber/assets/scene/texture/2.png.meta
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "dc10877a-7323-4408-aacc-1076c7941074",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"subMetas": {
|
||||
"2": {
|
||||
"ver": "1.0.3",
|
||||
"uuid": "4490822e-9312-49ac-8771-d7c0a3efeb9b",
|
||||
"rawTextureUuid": "dc10877a-7323-4408-aacc-1076c7941074",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": -0.5,
|
||||
"offsetY": 0.5,
|
||||
"trimX": 3,
|
||||
"trimY": 4,
|
||||
"width": 19,
|
||||
"height": 27,
|
||||
"rawWidth": 26,
|
||||
"rawHeight": 36,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
RollingNumber/assets/scene/texture/3.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
30
RollingNumber/assets/scene/texture/3.png.meta
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "d0b80349-4e67-4fcc-a5b2-003fcdd87874",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"subMetas": {
|
||||
"3": {
|
||||
"ver": "1.0.3",
|
||||
"uuid": "2f6db5a8-c805-44cd-8952-904323d03081",
|
||||
"rawTextureUuid": "d0b80349-4e67-4fcc-a5b2-003fcdd87874",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": -0.5,
|
||||
"offsetY": 0,
|
||||
"trimX": 3,
|
||||
"trimY": 4,
|
||||
"width": 19,
|
||||
"height": 28,
|
||||
"rawWidth": 26,
|
||||
"rawHeight": 36,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
RollingNumber/assets/scene/texture/4.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
30
RollingNumber/assets/scene/texture/4.png.meta
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "f8e30b51-3adf-4a02-a040-c07e493fc1b5",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"subMetas": {
|
||||
"4": {
|
||||
"ver": "1.0.3",
|
||||
"uuid": "161c849c-248e-4c24-b6be-3c0ad93f875d",
|
||||
"rawTextureUuid": "f8e30b51-3adf-4a02-a040-c07e493fc1b5",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0.5,
|
||||
"trimX": 3,
|
||||
"trimY": 4,
|
||||
"width": 20,
|
||||
"height": 27,
|
||||
"rawWidth": 26,
|
||||
"rawHeight": 36,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
RollingNumber/assets/scene/texture/5.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
30
RollingNumber/assets/scene/texture/5.png.meta
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "9d93bbe1-2a23-427b-aa05-e5a15cabc733",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"subMetas": {
|
||||
"5": {
|
||||
"ver": "1.0.3",
|
||||
"uuid": "32663112-ad42-4e3f-bbad-74d8466d3aa7",
|
||||
"rawTextureUuid": "9d93bbe1-2a23-427b-aa05-e5a15cabc733",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": -0.5,
|
||||
"offsetY": -0.5,
|
||||
"trimX": 3,
|
||||
"trimY": 5,
|
||||
"width": 19,
|
||||
"height": 27,
|
||||
"rawWidth": 26,
|
||||
"rawHeight": 36,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
RollingNumber/assets/scene/texture/6.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
30
RollingNumber/assets/scene/texture/6.png.meta
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "9920643f-69f7-4201-9004-6affddfc80e2",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"subMetas": {
|
||||
"6": {
|
||||
"ver": "1.0.3",
|
||||
"uuid": "435cc795-491d-4683-ad4e-9497e2dfca39",
|
||||
"rawTextureUuid": "9920643f-69f7-4201-9004-6affddfc80e2",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 3,
|
||||
"trimY": 4,
|
||||
"width": 20,
|
||||
"height": 28,
|
||||
"rawWidth": 26,
|
||||
"rawHeight": 36,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
RollingNumber/assets/scene/texture/7.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
30
RollingNumber/assets/scene/texture/7.png.meta
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "10b7be3e-c3df-45e7-9709-605b404dea18",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"subMetas": {
|
||||
"7": {
|
||||
"ver": "1.0.3",
|
||||
"uuid": "bd1c6114-80cb-488f-9240-3f19ebce5786",
|
||||
"rawTextureUuid": "10b7be3e-c3df-45e7-9709-605b404dea18",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": -0.5,
|
||||
"offsetY": 0,
|
||||
"trimX": 3,
|
||||
"trimY": 5,
|
||||
"width": 19,
|
||||
"height": 26,
|
||||
"rawWidth": 26,
|
||||
"rawHeight": 36,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
RollingNumber/assets/scene/texture/8.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
30
RollingNumber/assets/scene/texture/8.png.meta
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "7dbf105e-ff5c-4170-b106-93a3711a2981",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"subMetas": {
|
||||
"8": {
|
||||
"ver": "1.0.3",
|
||||
"uuid": "abf1a450-4e37-496f-8197-2a4b902dbc1a",
|
||||
"rawTextureUuid": "7dbf105e-ff5c-4170-b106-93a3711a2981",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 3,
|
||||
"trimY": 4,
|
||||
"width": 20,
|
||||
"height": 28,
|
||||
"rawWidth": 26,
|
||||
"rawHeight": 36,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
RollingNumber/assets/scene/texture/9.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
30
RollingNumber/assets/scene/texture/9.png.meta
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "6c724d27-3972-4512-abdc-af96ceae39fc",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"subMetas": {
|
||||
"9": {
|
||||
"ver": "1.0.3",
|
||||
"uuid": "7f70d486-1fdd-42ad-91df-e729d7eacce3",
|
||||
"rawTextureUuid": "6c724d27-3972-4512-abdc-af96ceae39fc",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 3,
|
||||
"trimY": 4,
|
||||
"width": 20,
|
||||
"height": 28,
|
||||
"rawWidth": 26,
|
||||
"rawHeight": 36,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
RollingNumber/assets/scene/texture/bg.jpg
Normal file
|
After Width: | Height: | Size: 52 KiB |
30
RollingNumber/assets/scene/texture/bg.jpg.meta
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"uuid": "6cd3bd46-a276-49a0-80ed-10afe3ceee45",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"subMetas": {
|
||||
"bg": {
|
||||
"ver": "1.0.3",
|
||||
"uuid": "bad77163-2b78-4b69-b684-a549b6b2e325",
|
||||
"rawTextureUuid": "6cd3bd46-a276-49a0-80ed-10afe3ceee45",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"rawWidth": 1280,
|
||||
"rawHeight": 720,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
7
RollingNumber/assets/script.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"ver": "1.0.1",
|
||||
"uuid": "d121327e-6631-4670-8b88-be8521a45ce6",
|
||||
"isSubpackage": false,
|
||||
"subpackageName": "",
|
||||
"subMetas": {}
|
||||
}
|
||||
192
RollingNumber/assets/script/RollingNumber.js
Normal file
@@ -0,0 +1,192 @@
|
||||
cc.Class({
|
||||
extends: cc.Component,
|
||||
|
||||
properties: {
|
||||
startSpeed: 10,
|
||||
finallySpeed: 3,
|
||||
frameSpeedOffset: 0.05,
|
||||
lap: 2,
|
||||
finallyNumber: 2,
|
||||
prefab: cc.Prefab,
|
||||
spriteFrames: [cc.SpriteFrame]
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
|
||||
this.init();
|
||||
},
|
||||
|
||||
registerEvent() {
|
||||
|
||||
},
|
||||
|
||||
init(data) {
|
||||
|
||||
this.time = 0;
|
||||
this.curIndex = 0;
|
||||
this.isOver = false;
|
||||
this.speed = this.startSpeed;
|
||||
|
||||
this.finallyNumber = data;
|
||||
|
||||
this.initRollNumbers(this.lap, this.finallyNumber);
|
||||
this.initItme();
|
||||
for (let i = 0; i < this.items.length; i++) {
|
||||
let item = this.items[i];
|
||||
this.onSwithSpriteFrame(item, this.getCurIndex());
|
||||
}
|
||||
},
|
||||
|
||||
initRollNumbers(lap, finallyNumber) {
|
||||
this.rollNumbers = [];
|
||||
let i = 0, rollNumbersTemp = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||
for (i = 0; i < lap; i++) {
|
||||
this.rollNumbers = this.rollNumbers.concat(rollNumbersTemp);
|
||||
}
|
||||
for (i = 0; i <= finallyNumber; i++) {
|
||||
this.rollNumbers.push(i);
|
||||
}
|
||||
this.rollNumbers.push((finallyNumber + 1) % 10);
|
||||
this.rollNumbers.push((finallyNumber + 2) % 10);
|
||||
},
|
||||
|
||||
initItme() {
|
||||
let len = 3, height;
|
||||
if (this.items) {
|
||||
for (let i = 1; i < this.items.length; i++) {
|
||||
let item = this.items[i];
|
||||
item.removeFromParent();
|
||||
}
|
||||
}
|
||||
this.items = [];
|
||||
let node = cc.instantiate(this.prefab);
|
||||
height = node.height;
|
||||
this.endPos = cc.v2(0, -height);
|
||||
this.startPos = cc.v2(0, height * 2);
|
||||
this.node.addChild(node);
|
||||
this.items.push(node);
|
||||
for (let i = 1; i < len; i++) {
|
||||
let node = cc.instantiate(this.prefab);
|
||||
node.y = height * i;
|
||||
this.items.push(node);
|
||||
this.node.addChild(node);
|
||||
}
|
||||
},
|
||||
|
||||
getCurIndex() {
|
||||
return this.rollNumbers[this.curIndex++];
|
||||
},
|
||||
|
||||
onMoveItem(node, y) {
|
||||
node.y += y;
|
||||
},
|
||||
|
||||
onCheckBorder(node, borderPos) {
|
||||
if (node.y < borderPos.y) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
setStartPos(node, startPos, borderPos) {
|
||||
let offset = node.y - borderPos.y
|
||||
node.y = startPos.y + offset;
|
||||
},
|
||||
|
||||
resetLocation() {
|
||||
let zeroNode = this.getNearZeroNode(this.items);
|
||||
let offset = 0 - zeroNode.y;
|
||||
let v2 = cc.v2(0, offset);
|
||||
for (let i = 0; i < this.items.length; i++) {
|
||||
let item = this.items[i];
|
||||
item.runAction(cc.moveBy(0.2, v2));
|
||||
}
|
||||
},
|
||||
|
||||
getNearZeroNode(items) {
|
||||
let result = items[0];
|
||||
for (let i = 1; i < items.length; i++) {
|
||||
let item = items[i];
|
||||
if (item.y < result.y) {
|
||||
result = item;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
},
|
||||
|
||||
onSwithSpriteFrame(node, index) {
|
||||
let sprite = node.getComponent(cc.Sprite);
|
||||
sprite.spriteFrame = this.spriteFrames[index];
|
||||
},
|
||||
|
||||
setSpeed() {
|
||||
if (this.speed > this.finallySpeed) {
|
||||
this.speed -= this.frameSpeedOffset;
|
||||
}
|
||||
},
|
||||
|
||||
onCheckRollingOver() {
|
||||
if (this.speed == 0) {
|
||||
if (this.isOver == false) {
|
||||
console.log('time=', this.time);
|
||||
this.resetLocation();
|
||||
}
|
||||
this.isOver = true;
|
||||
return;
|
||||
}
|
||||
},
|
||||
|
||||
judgeRollingOver() {
|
||||
if (this.curIndex == this.rollNumbers.length) {
|
||||
this.speed = 0;
|
||||
}
|
||||
},
|
||||
|
||||
update(dt) {
|
||||
this.time += dt;
|
||||
if (this.isOver) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.setSpeed();
|
||||
this.onCheckRollingOver();
|
||||
|
||||
let i = 0;
|
||||
//移动
|
||||
for (i = 0; i < this.items.length; i++) {
|
||||
let item = this.items[i];
|
||||
this.onMoveItem(item, -this.speed);
|
||||
}
|
||||
|
||||
//是否过界
|
||||
for (i = 0; i < this.items.length; i++) {
|
||||
let item = this.items[i];
|
||||
let isBorder = this.onCheckBorder(item, this.endPos);
|
||||
if (isBorder) {
|
||||
this.setStartPos(item, this.startPos, this.endPos);
|
||||
let index = this.getCurIndex();
|
||||
this.onSwithSpriteFrame(item, index);
|
||||
//是否结束
|
||||
this.judgeRollingOver();
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
onEnable() {
|
||||
this.registerEvent();
|
||||
},
|
||||
|
||||
onDisable() {
|
||||
this.offEvent();
|
||||
},
|
||||
|
||||
offEvent() {
|
||||
cc.emitter.offThis(this);
|
||||
},
|
||||
|
||||
onDestroy() {
|
||||
|
||||
}
|
||||
});
|
||||
9
RollingNumber/assets/script/RollingNumber.js.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.0.5",
|
||||
"uuid": "8ea5d38d-47d8-4ed0-baae-ababbb0927a3",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
46
RollingNumber/assets/script/test.js
Normal file
@@ -0,0 +1,46 @@
|
||||
cc.Class({
|
||||
extends: cc.Component,
|
||||
|
||||
properties: {
|
||||
rolling: cc.Node,
|
||||
editBox: cc.EditBox,
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
this.rollingNubmer = this.rolling.getComponent('RollingNumber');
|
||||
},
|
||||
|
||||
registerEvent() {
|
||||
|
||||
},
|
||||
|
||||
init(data) {
|
||||
|
||||
},
|
||||
|
||||
onEventClicked() {
|
||||
let number = this.editBox.string;
|
||||
console.log(number);
|
||||
this.rollingNubmer.init(number * 1);
|
||||
},
|
||||
|
||||
update(dt) {
|
||||
|
||||
},
|
||||
|
||||
onEnable() {
|
||||
this.registerEvent();
|
||||
},
|
||||
|
||||
onDisable() {
|
||||
this.offEvent();
|
||||
},
|
||||
|
||||
offEvent() {
|
||||
cc.emitter.offThis(this);
|
||||
},
|
||||
|
||||
onDestroy() {
|
||||
|
||||
}
|
||||
});
|
||||
9
RollingNumber/assets/script/test.js.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.0.5",
|
||||
"uuid": "ba31df0a-7471-4d89-93d4-398a8927bf5b",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
24564
RollingNumber/creator.d.ts
vendored
Normal file
15
RollingNumber/jsconfig.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es6",
|
||||
"module": "commonjs",
|
||||
"experimentalDecorators": true
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
".vscode",
|
||||
"library",
|
||||
"local",
|
||||
"settings",
|
||||
"temp"
|
||||
]
|
||||
}
|
||||
4
RollingNumber/project.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"engine": "cocos-creator-js",
|
||||
"packages": "packages"
|
||||
}
|
||||
28
RollingNumber/settings/project.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"start-scene": "current",
|
||||
"group-list": [
|
||||
"default"
|
||||
],
|
||||
"collision-matrix": [
|
||||
[
|
||||
true
|
||||
]
|
||||
],
|
||||
"excluded-modules": [],
|
||||
"design-resolution-width": 960,
|
||||
"design-resolution-height": 640,
|
||||
"fit-width": false,
|
||||
"fit-height": true,
|
||||
"use-project-simulator-setting": false,
|
||||
"simulator-orientation": false,
|
||||
"use-customize-simulator": false,
|
||||
"simulator-resolution": {
|
||||
"width": 960,
|
||||
"height": 640
|
||||
},
|
||||
"cocos-analytics": {
|
||||
"enable": false,
|
||||
"appID": "13798",
|
||||
"appSecret": "959b3ac0037d0f3c2fdce94f8421a9b2"
|
||||
}
|
||||
}
|
||||
102
RollingNumber/settings/services.json
Normal file
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"services": [
|
||||
{
|
||||
"service_id": "235",
|
||||
"service_name": "Cocos Analytics",
|
||||
"service_icon": "https://account.cocos.com/client/3f8f31ccf66995e183044f167c092395.png",
|
||||
"service_desc": "提供最核心最基本的数据、标准化界面功能简洁易用、数据准确性最好",
|
||||
"service_title": "精准了解游戏的新增、活跃、留存、付费等数据",
|
||||
"service_guide_url": "https://n-analytics.cocos.com/docs/",
|
||||
"service_sample_url": "https://github.com/cocos-creator/tutorial-dark-slash/tree/analytics",
|
||||
"service_dev_url": "http://analytics.cocos.com/realtime/jump_to/<app_id>",
|
||||
"service_type": "3",
|
||||
"service_type_zh": "公司和个人游戏",
|
||||
"support_platform": [
|
||||
"Android",
|
||||
"iOS",
|
||||
"HTML5"
|
||||
],
|
||||
"package_download_url": "https://download.cocos.com/CocosServices/plugins/service-analytics/1.2.0_2.1.0.zip",
|
||||
"package_version_desc": "<b>更新日期:</b>2019/6/10<br>\n<br><b>更新说明:</b><br>\n1、优化SDK,修复H5-SDK 与多个小游戏平台适配问题,删除和优化init事件无用接口<br>\n2、如有相关问题咨询或者需求, 可以联系我们技术支持邮箱 <a href=' '>support-cocos@cocos.com</a>",
|
||||
"service_component_name": "service-analytics",
|
||||
"package_versions": [
|
||||
"1.2.1_2.1.0",
|
||||
"1.2.0_2.1.0",
|
||||
"1.1.7_2.0.3",
|
||||
"1.1.6_2.0.1_2.0.2",
|
||||
"1.1.5_2.0.1",
|
||||
"1.1.4_2.0.1",
|
||||
"1.1.3_2.0.1",
|
||||
"1.1.2_2.0.0",
|
||||
"1.0.0_1.0.5"
|
||||
],
|
||||
"build_platform": [
|
||||
],
|
||||
"require_verify": 0,
|
||||
"service_price": "",
|
||||
"service_protocol": "游戏首次开启该服务时,Cocos会后台通知服务方为游戏开通服务并初始化参数,服务方根据需要可能会获取您的Cocos账户信息,包括账户基本资料、游戏基本资料、账户余额等,点击确认开通按钮即视为您同意该服务访问您的账户信息,详见<a href='http://auth.cocos.com/CocosServiceAgreement.html'>《Cocos用户服务协议》</a>和<a href='http://auth.cocos.com/PrivacyPolicy.html'>《Cocos隐私政策》</a>"
|
||||
},
|
||||
{
|
||||
"service_id": "241",
|
||||
"service_name": "Matchvs",
|
||||
"service_icon": "https://account.cocos.com/client/14406719a07eb3d714d36e5edc6e06fa.png",
|
||||
"service_desc": "通过SDK接入快速实现联网功能、帧同步、国内外多节点、服务器独立部署、gameServer自定义游戏服务端逻辑。",
|
||||
"service_title": "专业成熟的移动游戏联网与服务端解决方案",
|
||||
"service_guide_url": "http://doc.matchvs.com/QuickStart/QuickStart-CocosCreator",
|
||||
"service_sample_url": "http://www.matchvs.com/serviceCourse",
|
||||
"service_dev_url": "http://www.matchvs.com/cocosLogin",
|
||||
"service_type": "3",
|
||||
"service_type_zh": "公司和个人游戏",
|
||||
"support_platform": [
|
||||
"Android",
|
||||
"iOS",
|
||||
"HTML5"
|
||||
],
|
||||
"package_download_url": "https://download.cocos.com/CocosServices/plugins/service-matchvs/1.0.10_3.7.9.10.zip",
|
||||
"package_version_desc": "<p><strong>更新日期:</strong> 2019/9/12\n<strong>更新内容:</strong>\n1.多语言支持\n2.SDK日常更新</p>",
|
||||
"service_component_name": "service-matchvs",
|
||||
"package_versions": [
|
||||
"1.0.9_3.7.9.9",
|
||||
"1.0.7_3.7.9.6",
|
||||
"1.0.6_3.7.9.2",
|
||||
"1.0.5_3.7.7.3",
|
||||
"1.0.3_3.7.6.4",
|
||||
"1.0.10_3.7.9.10"
|
||||
],
|
||||
"build_platform": [
|
||||
],
|
||||
"require_verify": 0,
|
||||
"service_price": "该服务按使用量计费,<a href='https://www.matchvs.com/price'><font color='#dddddd'>计费规则</font></a>,所产生的费用将由第三方从您的 <a href='https://account.cocos.com/#/finance/finance_list'><font color='#dddddd'>Cocos 账户余额</font></a> 中扣除。",
|
||||
"service_protocol": "游戏首次开启该服务时,Cocos会后台通知服务方为游戏开通服务并初始化参数,服务方根据需要可能会获取您的Cocos账户信息,包括账户基本资料、游戏基本资料、账户余额等,点击确认开通按钮即视为您同意该服务访问您的账户信息,详见<a href='http://auth.cocos.com/CocosServiceAgreement.html'>《Cocos用户服务协议》</a>和<a href='http://auth.cocos.com/PrivacyPolicy.html'>《Cocos隐私政策》</a>"
|
||||
},
|
||||
{
|
||||
"service_id": "242",
|
||||
"service_name": "Agora Voice",
|
||||
"service_icon": "https://account.cocos.com/uploads/client_icon/2019-07-16/273952d155b4cdb72d2b1bc61de91ade.png",
|
||||
"service_desc": "稳定、低耗、76ms超低延时、全球200+数据中心覆盖;变声器、超高音质、听声辩位等丰富玩法极速接入;全平台支持:Android、iOS、Web。",
|
||||
"service_title": "游戏内置实时语音",
|
||||
"service_guide_url": "https://docs.agora.io/cn/Interactive Gaming/game_c?platform=Cocos Creator",
|
||||
"service_sample_url": "https://github.com/AgoraIO/Voice-Call-for-Mobile-Gaming/tree/master/Basic-Voice-Call-for-Gaming/Hello-CocosCreator-Voice-Agora",
|
||||
"service_dev_url": "https://sso.agora.io/api/oauth/cocos/login",
|
||||
"service_type": "3",
|
||||
"service_type_zh": "公司和个人游戏",
|
||||
"support_platform": [
|
||||
"Android",
|
||||
"iOS",
|
||||
"HTML5"
|
||||
],
|
||||
"package_download_url": "https://download.cocos.com/CocosServices/plugins/service-agora/1.0.2_2.2.3.20_2.5.2.zip",
|
||||
"package_version_desc": "<b>更新日期:<b>2019/06/27<br>\n<br><b>更新内容:</b><br>\n1、修复部分BUG<br>\n2、代码优化",
|
||||
"service_component_name": "service-agora",
|
||||
"package_versions": [
|
||||
"1.0.2_2.2.3.20_2.5.2",
|
||||
"1.0.1_2.2.3.20_2.5.2"
|
||||
],
|
||||
"build_platform": [
|
||||
],
|
||||
"require_verify": 1,
|
||||
"service_price": "该服务按使用量计费,<a href='https://www.agora.io/cn/price/'><font color='#dddddd'>计费规则</font></a>,所产生的费用将由第三方从您的 <a href='https://account.cocos.com/#/finance/finance_list'><font color='#dddddd'>Cocos 账户余额</font></a> 中扣除。",
|
||||
"service_protocol": "游戏首次开启该服务时,Cocos会后台通知服务方为游戏开通服务并初始化参数,服务方根据需要可能会获取您的Cocos账户信息,包括账户基本资料、游戏基本资料、账户余额等,点击确认开通按钮即视为您同意该服务访问您的账户信息,详见<a href='http://auth.cocos.com/CocosServiceAgreement.html'>《Cocos用户服务协议》</a>和<a href='http://auth.cocos.com/PrivacyPolicy.html'>《Cocos隐私政策》</a>"
|
||||
}
|
||||
]
|
||||
}
|
||||
17
RollingNumber/tsconfig.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [ "dom", "es5", "es2015.promise" ],
|
||||
"target": "es5",
|
||||
"experimentalDecorators": true,
|
||||
"skipLibCheck": true
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"library",
|
||||
"local",
|
||||
"temp",
|
||||
"build",
|
||||
"settings"
|
||||
]
|
||||
}
|
||||