commit
28de64ba2b
14 changed files with 1925 additions and 0 deletions
@ -0,0 +1,24 @@ |
|||||
|
# Build and Release Folders |
||||
|
bin-debug/ |
||||
|
bin-release/ |
||||
|
[Oo]bj/ |
||||
|
[Bb]in/ |
||||
|
|
||||
|
# Other files and folders |
||||
|
.settings/ |
||||
|
|
||||
|
node_modules/ |
||||
|
.idea |
||||
|
.vscode |
||||
|
pullRadish-v1.6.html |
||||
|
.DS_Store |
||||
|
|
||||
|
# Executables |
||||
|
*.swf |
||||
|
*.air |
||||
|
*.ipa |
||||
|
*.apk |
||||
|
|
||||
|
# Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties` |
||||
|
# should NOT be excluded as they contain compiler settings and other important |
||||
|
# information for Eclipse / Flash Builder. |
After Width: | Height: | Size: 485 KiB |
@ -0,0 +1,203 @@ |
|||||
|
{"frames": { |
||||
|
|
||||
|
"B1": |
||||
|
{ |
||||
|
"frame": {"x":1795,"y":410,"w":29,"h":29}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":29,"h":29}, |
||||
|
"sourceSize": {"w":29,"h":29} |
||||
|
}, |
||||
|
"B2": |
||||
|
{ |
||||
|
"frame": {"x":1987,"y":165,"w":53,"h":53}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":53,"h":53}, |
||||
|
"sourceSize": {"w":53,"h":53} |
||||
|
}, |
||||
|
"B3": |
||||
|
{ |
||||
|
"frame": {"x":1618,"y":410,"w":88,"h":89}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":88,"h":89}, |
||||
|
"sourceSize": {"w":88,"h":89} |
||||
|
}, |
||||
|
"B4": |
||||
|
{ |
||||
|
"frame": {"x":1695,"y":501,"w":73,"h":67}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":73,"h":67}, |
||||
|
"sourceSize": {"w":73,"h":67} |
||||
|
}, |
||||
|
"B5": |
||||
|
{ |
||||
|
"frame": {"x":1708,"y":410,"w":85,"h":89}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":85,"h":89}, |
||||
|
"sourceSize": {"w":85,"h":89} |
||||
|
}, |
||||
|
"B6": |
||||
|
{ |
||||
|
"frame": {"x":1933,"y":418,"w":91,"h":97}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":91,"h":97}, |
||||
|
"sourceSize": {"w":91,"h":97} |
||||
|
}, |
||||
|
"B7": |
||||
|
{ |
||||
|
"frame": {"x":1428,"y":410,"w":93,"h":92}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":93,"h":92}, |
||||
|
"sourceSize": {"w":93,"h":92} |
||||
|
}, |
||||
|
"B8": |
||||
|
{ |
||||
|
"frame": {"x":1523,"y":410,"w":93,"h":92}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":93,"h":92}, |
||||
|
"sourceSize": {"w":93,"h":92} |
||||
|
}, |
||||
|
"LB1": |
||||
|
{ |
||||
|
"frame": {"x":1830,"y":323,"w":101,"h":126}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":101,"h":126}, |
||||
|
"sourceSize": {"w":101,"h":126} |
||||
|
}, |
||||
|
"bg_grassland": |
||||
|
{ |
||||
|
"frame": {"x":0,"y":475,"w":1024,"h":350}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":1024,"h":350}, |
||||
|
"sourceSize": {"w":1024,"h":350} |
||||
|
}, |
||||
|
"bg_ground": |
||||
|
{ |
||||
|
"frame": {"x":0,"y":0,"w":1024,"h":473}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":1024,"h":473}, |
||||
|
"sourceSize": {"w":1024,"h":473} |
||||
|
}, |
||||
|
"hole1": |
||||
|
{ |
||||
|
"frame": {"x":1770,"y":523,"w":108,"h":31}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":108,"h":31}, |
||||
|
"sourceSize": {"w":108,"h":31} |
||||
|
}, |
||||
|
"hole2": |
||||
|
{ |
||||
|
"frame": {"x":1428,"y":504,"w":112,"h":30}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":112,"h":30}, |
||||
|
"sourceSize": {"w":112,"h":30} |
||||
|
}, |
||||
|
"rabit1": |
||||
|
{ |
||||
|
"frame": {"x":1900,"y":165,"w":85,"h":156}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":85,"h":156}, |
||||
|
"sourceSize": {"w":85,"h":156} |
||||
|
}, |
||||
|
"rabit2": |
||||
|
{ |
||||
|
"frame": {"x":1900,"y":0,"w":120,"h":163}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":120,"h":163}, |
||||
|
"sourceSize": {"w":120,"h":163} |
||||
|
}, |
||||
|
"radish": |
||||
|
{ |
||||
|
"frame": {"x":1933,"y":323,"w":104,"h":93}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":104,"h":93}, |
||||
|
"sourceSize": {"w":104,"h":93} |
||||
|
}, |
||||
|
"任务完成": |
||||
|
{ |
||||
|
"frame": {"x":1463,"y":0,"w":435,"h":307}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":435,"h":307}, |
||||
|
"sourceSize": {"w":435,"h":307} |
||||
|
}, |
||||
|
"倒计时": |
||||
|
{ |
||||
|
"frame": {"x":1026,"y":0,"w":435,"h":307}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":435,"h":307}, |
||||
|
"sourceSize": {"w":435,"h":307} |
||||
|
}, |
||||
|
"再来一次": |
||||
|
{ |
||||
|
"frame": {"x":1026,"y":410,"w":400,"h":99}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":400,"h":99}, |
||||
|
"sourceSize": {"w":400,"h":99} |
||||
|
}, |
||||
|
"分数": |
||||
|
{ |
||||
|
"frame": {"x":1882,"y":517,"w":124,"h":46}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":124,"h":46}, |
||||
|
"sourceSize": {"w":124,"h":46} |
||||
|
}, |
||||
|
"开始按钮": |
||||
|
{ |
||||
|
"frame": {"x":1026,"y":309,"w":400,"h":99}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":400,"h":99}, |
||||
|
"sourceSize": {"w":400,"h":99} |
||||
|
}, |
||||
|
"开始训练": |
||||
|
{ |
||||
|
"frame": {"x":1428,"y":309,"w":400,"h":99}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":400,"h":99}, |
||||
|
"sourceSize": {"w":400,"h":99} |
||||
|
}, |
||||
|
"计时": |
||||
|
{ |
||||
|
"frame": {"x":1795,"y":451,"w":85,"h":70}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":85,"h":70}, |
||||
|
"sourceSize": {"w":85,"h":70} |
||||
|
}, |
||||
|
"返回按钮": |
||||
|
{ |
||||
|
"frame": {"x":1618,"y":501,"w":75,"h":75}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":75,"h":75}, |
||||
|
"sourceSize": {"w":75,"h":75} |
||||
|
}}, |
||||
|
"meta": { |
||||
|
"app": "Adobe Animate", |
||||
|
"version": "21.0.0.35450", |
||||
|
"image": "pullRadish_v1.6_atlas_2.png", |
||||
|
"format": "undefined", |
||||
|
"size": {"w":2048,"h":1024}, |
||||
|
"scale": "1" |
||||
|
} |
||||
|
} |
@ -0,0 +1,155 @@ |
|||||
|
{"frames": { |
||||
|
|
||||
|
"B1": |
||||
|
{ |
||||
|
"frame": {"x":984,"y":918,"w":29,"h":29}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":29,"h":29}, |
||||
|
"sourceSize": {"w":29,"h":29} |
||||
|
}, |
||||
|
"B2": |
||||
|
{ |
||||
|
"frame": {"x":746,"y":921,"w":53,"h":53}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":53,"h":53}, |
||||
|
"sourceSize": {"w":53,"h":53} |
||||
|
}, |
||||
|
"B3": |
||||
|
{ |
||||
|
"frame": {"x":822,"y":827,"w":88,"h":89}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":88,"h":89}, |
||||
|
"sourceSize": {"w":88,"h":89} |
||||
|
}, |
||||
|
"B4": |
||||
|
{ |
||||
|
"frame": {"x":909,"y":918,"w":73,"h":67}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":73,"h":67}, |
||||
|
"sourceSize": {"w":73,"h":67} |
||||
|
}, |
||||
|
"B5": |
||||
|
{ |
||||
|
"frame": {"x":912,"y":827,"w":85,"h":89}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":85,"h":89}, |
||||
|
"sourceSize": {"w":85,"h":89} |
||||
|
}, |
||||
|
"B6": |
||||
|
{ |
||||
|
"frame": {"x":539,"y":827,"w":91,"h":97}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":91,"h":97}, |
||||
|
"sourceSize": {"w":91,"h":97} |
||||
|
}, |
||||
|
"B7": |
||||
|
{ |
||||
|
"frame": {"x":632,"y":827,"w":93,"h":92}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":93,"h":92}, |
||||
|
"sourceSize": {"w":93,"h":92} |
||||
|
}, |
||||
|
"B8": |
||||
|
{ |
||||
|
"frame": {"x":727,"y":827,"w":93,"h":92}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":93,"h":92}, |
||||
|
"sourceSize": {"w":93,"h":92} |
||||
|
}, |
||||
|
"LB1": |
||||
|
{ |
||||
|
"frame": {"x":330,"y":827,"w":101,"h":126}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":101,"h":126}, |
||||
|
"sourceSize": {"w":101,"h":126} |
||||
|
}, |
||||
|
"bg_grassland": |
||||
|
{ |
||||
|
"frame": {"x":0,"y":475,"w":1024,"h":350}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":1024,"h":350}, |
||||
|
"sourceSize": {"w":1024,"h":350} |
||||
|
}, |
||||
|
"bg_ground": |
||||
|
{ |
||||
|
"frame": {"x":0,"y":0,"w":1024,"h":473}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":1024,"h":473}, |
||||
|
"sourceSize": {"w":1024,"h":473} |
||||
|
}, |
||||
|
"hole1": |
||||
|
{ |
||||
|
"frame": {"x":433,"y":926,"w":108,"h":31}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":108,"h":31}, |
||||
|
"sourceSize": {"w":108,"h":31} |
||||
|
}, |
||||
|
"hole2": |
||||
|
{ |
||||
|
"frame": {"x":632,"y":921,"w":112,"h":30}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":112,"h":30}, |
||||
|
"sourceSize": {"w":112,"h":30} |
||||
|
}, |
||||
|
"rabit1": |
||||
|
{ |
||||
|
"frame": {"x":122,"y":827,"w":85,"h":156}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":85,"h":156}, |
||||
|
"sourceSize": {"w":85,"h":156} |
||||
|
}, |
||||
|
"rabit2": |
||||
|
{ |
||||
|
"frame": {"x":0,"y":827,"w":120,"h":163}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":120,"h":163}, |
||||
|
"sourceSize": {"w":120,"h":163} |
||||
|
}, |
||||
|
"radish": |
||||
|
{ |
||||
|
"frame": {"x":433,"y":827,"w":104,"h":93}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":104,"h":93}, |
||||
|
"sourceSize": {"w":104,"h":93} |
||||
|
}, |
||||
|
"sun": |
||||
|
{ |
||||
|
"frame": {"x":209,"y":827,"w":119,"h":110}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":119,"h":110}, |
||||
|
"sourceSize": {"w":119,"h":110} |
||||
|
}, |
||||
|
"time": |
||||
|
{ |
||||
|
"frame": {"x":822,"y":918,"w":85,"h":85}, |
||||
|
"rotated": false, |
||||
|
"trimmed": false, |
||||
|
"spriteSourceSize": {"x":0,"y":0,"w":85,"h":85}, |
||||
|
"sourceSize": {"w":85,"h":85} |
||||
|
}}, |
||||
|
"meta": { |
||||
|
"app": "Adobe Animate", |
||||
|
"version": "20.5.1.31044", |
||||
|
"image": "pullRadish_v1.6_atlas_1.png", |
||||
|
"format": "undefined", |
||||
|
"size": {"w":1024,"h":1024}, |
||||
|
"scale": "1" |
||||
|
} |
||||
|
} |
@ -0,0 +1,32 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html> |
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="authoring-tool" content="Adobe_Animate_CC"> |
||||
|
<title>pullRadish-v1.6</title> |
||||
|
<!-- write your code here --> |
||||
|
<style> |
||||
|
html, body { background-color: transparent } |
||||
|
#animation_container { |
||||
|
position:absolute; |
||||
|
margin:auto; |
||||
|
left:0;right:0; |
||||
|
top:0;bottom:0; |
||||
|
} |
||||
|
</style> |
||||
|
<script src="https://code.createjs.com/1.0.0/createjs.min.js"></script> |
||||
|
<script src="https://cdn.bootcdn.net/ajax/libs/web-socket-js/1.0.0/web_socket.min.js"></script> |
||||
|
<script src="pullRadish-v1.6.js?1622677857927"></script> |
||||
|
<script src="socket.js"></script> |
||||
|
<script src="message.js"></script> |
||||
|
<script src="index.js"></script> |
||||
|
<!-- write your code here --> |
||||
|
</head> |
||||
|
<body onload="init();" style="margin:0px;"> |
||||
|
<div id="animation_container" style="background-color:rgba(255, 255, 255, 1.00); width:1024px; height:768px"> |
||||
|
<canvas id="canvas" width="1024" height="768" style="position: absolute; display: block; background-color:rgba(255, 255, 255, 1.00);"></canvas> |
||||
|
<div id="dom_overlay_container" style="pointer-events:none; overflow:hidden; width:1024px; height:768px; position: absolute; left: 0px; top: 0px; display: block;"> |
||||
|
</div> |
||||
|
</div> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,478 @@ |
|||||
|
var canvas, stage, exportRoot, anim_container, dom_overlay_container, fnStartAnimation; |
||||
|
const obj = { |
||||
|
lib: null, |
||||
|
holes: [], // 洞洞的实例集合
|
||||
|
radishes: [], // 萝卜的集合
|
||||
|
rabbit: null, // 兔子对象
|
||||
|
timeBg: null, // 倒计时背景对象
|
||||
|
timeText: null, // 倒计时文本对象
|
||||
|
totalTime: 60, // 总时长 s
|
||||
|
scoreText: null, // 得分文本对象
|
||||
|
totalScore: 0, // 总分 满分100分 每拔一个萝卜+5分
|
||||
|
pulledRadishNum: 0, // 已经拔了的萝卜的数量
|
||||
|
timerId: null, // 倒计时计时器的id
|
||||
|
btnBegin: null, // 开始游戏的按钮
|
||||
|
btnAgain: null, // 再玩一次的按钮
|
||||
|
bgModalBegin: null, // 开始倒计时面板
|
||||
|
countTimer: null, // 开始游戏的倒计时的 计时器id
|
||||
|
count: 5, // 开始游戏时的倒计时
|
||||
|
music: { |
||||
|
bgm: null, // 背景音乐
|
||||
|
excitation: null, // 拔出一个萝卜的激励声音
|
||||
|
amazing: null, |
||||
|
unbelievable: null, //
|
||||
|
}, |
||||
|
gameStart: false, // 游戏时候开始
|
||||
|
lock: false, // 锁 拔的过程中不能出发下一次拔的动作
|
||||
|
}; |
||||
|
|
||||
|
function init() { |
||||
|
initMessage(); |
||||
|
|
||||
|
canvas = document.getElementById("canvas"); |
||||
|
anim_container = document.getElementById("animation_container"); |
||||
|
dom_overlay_container = document.getElementById("dom_overlay_container"); |
||||
|
var comp = AdobeAn.getComposition("94CA090E719F4688AE0D01901C9EA0D7"); |
||||
|
var lib = comp.getLibrary(); |
||||
|
var loader = new createjs.LoadQueue(false); |
||||
|
loader.addEventListener("fileload", function (evt) { |
||||
|
handleFileLoad(evt, comp) |
||||
|
}); |
||||
|
loader.addEventListener("complete", function (evt) { |
||||
|
handleComplete(evt, comp) |
||||
|
}); |
||||
|
var lib = comp.getLibrary(); |
||||
|
loader.loadManifest(lib.properties.manifest); |
||||
|
} |
||||
|
|
||||
|
function handleFileLoad(evt, comp) { |
||||
|
var images = comp.getImages(); |
||||
|
if (evt && (evt.item.type == "image")) { |
||||
|
images[evt.item.id] = evt.result; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
function handleComplete(evt, comp) { |
||||
|
//This function is always called, irrespective of the content. You can use the variable "stage" after it is created in token create_stage.
|
||||
|
var lib = comp.getLibrary(); |
||||
|
var ss = comp.getSpriteSheet(); |
||||
|
var queue = evt.target; |
||||
|
var ssMetadata = lib.ssMetadata; |
||||
|
for (i = 0; i < ssMetadata.length; i++) { |
||||
|
ss[ssMetadata[i].name] = new createjs.SpriteSheet({ |
||||
|
"images": [queue.getResult(ssMetadata[i].name)], |
||||
|
"frames": ssMetadata[i].frames |
||||
|
}) |
||||
|
} |
||||
|
exportRoot = new lib.pullRadishv16(); |
||||
|
stage = new lib.Stage(canvas); |
||||
|
//Registers the "tick" event listener.
|
||||
|
fnStartAnimation = function () { |
||||
|
stage.addChild(exportRoot); |
||||
|
obj.lib = lib; |
||||
|
initStage(lib); |
||||
|
|
||||
|
createjs.Ticker.framerate = lib.properties.fps; |
||||
|
createjs.Ticker.addEventListener("tick", stage); |
||||
|
} |
||||
|
//Code to support hidpi screens and responsive scaling.
|
||||
|
AdobeAn.makeResponsive(true, 'both', true, 1, [canvas, anim_container, dom_overlay_container]); |
||||
|
AdobeAn.compositionLoaded(lib.properties.id); |
||||
|
fnStartAnimation(); |
||||
|
} |
||||
|
|
||||
|
// 初始绘制舞台相关元素
|
||||
|
function initStage(lib) { |
||||
|
initSound(); |
||||
|
initRadishes(lib); |
||||
|
initRabbit(lib); |
||||
|
initHoles(lib); |
||||
|
initTime(lib); |
||||
|
initScore(lib); |
||||
|
initBeginBtn(); |
||||
|
initBackBtn(); |
||||
|
|
||||
|
// test();
|
||||
|
} |
||||
|
|
||||
|
// 初始化音频资源
|
||||
|
function initSound() { |
||||
|
createjs.Sound.alternateExtensions = ["mp3"]; |
||||
|
const sounds = [ |
||||
|
{ src: './sounds/bgmMusic.mp3', id: 'bgm'}, |
||||
|
{ src: './sounds/excitationMusic.mp3', id: 'excitation'}, |
||||
|
{ src: './sounds/amazing.mp3', id: 'amazing'}, |
||||
|
{ src: './sounds/unbelievable.mp3', id: 'unbelievable'}, |
||||
|
]; |
||||
|
createjs.Sound.addEventListener('fileload', function (event) { |
||||
|
obj.music[event.id] = createjs.Sound.createInstance(event.id); |
||||
|
}); |
||||
|
createjs.Sound.registerSounds(sounds, './'); |
||||
|
} |
||||
|
|
||||
|
// 初始化开始按钮
|
||||
|
function initBeginBtn() { |
||||
|
obj.btnBegin = new obj.lib.btnBegin(); |
||||
|
obj.btnBegin.x = obj.lib.properties.width / 2; |
||||
|
obj.btnBegin.y = obj.lib.properties.height / 2; |
||||
|
// 点了以后开始游戏
|
||||
|
obj.btnBegin.addEventListener('click', function() { |
||||
|
send() |
||||
|
}, false); |
||||
|
|
||||
|
stage.addChild(obj.btnBegin); |
||||
|
} |
||||
|
|
||||
|
// 初始 开始倒计时面板
|
||||
|
function initBeginCount() { |
||||
|
obj.music.bgm && obj.music.bgm.play({ loop: -1, volume: 0.3 }); // 播放背景音乐
|
||||
|
|
||||
|
obj.bgModalBegin = new obj.lib.bgModalBegin(); |
||||
|
obj.bgModalBegin.x = obj.lib.properties.width / 2; |
||||
|
obj.bgModalBegin.y = obj.lib.properties.height / 2; |
||||
|
stage.addChild(obj.bgModalBegin); // 显示开始游戏的倒计时面板
|
||||
|
|
||||
|
stage.removeChild(obj.btnBegin); // 移除开始游戏的按钮
|
||||
|
const startTime = +gameInfo.startTime; |
||||
|
const endCountTime = startTime + obj.count * 1000; |
||||
|
obj.count = Math.floor((endCountTime - Date.now()) / 1000); |
||||
|
|
||||
|
changeBeginTime(obj.count); // 开始开始游戏的 倒计时
|
||||
|
obj.countTimer = setInterval(function() { |
||||
|
obj.count = Math.floor((endCountTime - Date.now()) / 1000) |
||||
|
stage.removeChild(obj.beginTimeText); |
||||
|
changeBeginTime(obj.count); |
||||
|
}, 1000); |
||||
|
} |
||||
|
|
||||
|
// 修改开始倒计时
|
||||
|
function changeBeginTime(time) { |
||||
|
if (time === 0) { |
||||
|
console.log(time); |
||||
|
// 发送倒计时结束的消息
|
||||
|
clearInterval(obj.countTimer); |
||||
|
stage.removeChild(obj.beginTimeText); |
||||
|
stage.removeChild(obj.bgModalBegin); |
||||
|
sendEndCountRequest(); |
||||
|
return; |
||||
|
} |
||||
|
const text = new createjs.Text(time, "bold 100px Arial", "#87431c"); |
||||
|
text.x = obj.lib.properties.width / 2; |
||||
|
text.y = obj.lib.properties.height / 2 + 20; |
||||
|
text.textAlign = 'center'; |
||||
|
text.textBaseline = "alphabetic"; |
||||
|
obj.beginTimeText = text; |
||||
|
stage.addChild(text); |
||||
|
} |
||||
|
|
||||
|
// 收到倒计时结束的消息
|
||||
|
function onCountdownMessage() { |
||||
|
obj.gameStart = true; |
||||
|
interval(); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 初始绘制holes 洞洞 |
||||
|
* @param {object} lib |
||||
|
*/ |
||||
|
function initHoles(lib) { |
||||
|
const deltaX = 185; // 列偏移
|
||||
|
const deltaY = 132; // 行偏移
|
||||
|
const initX = 108; // 第一个坑X
|
||||
|
const initY = 290; // 第一个坑Y
|
||||
|
|
||||
|
for (let j = 0; j < 4; j++) { |
||||
|
for (let i = 0; i < 5; i++) { |
||||
|
const holeInstance = new lib.hole(); |
||||
|
holeInstance.x = initX + deltaX * i; |
||||
|
holeInstance.y = initY + deltaY * j; |
||||
|
obj.holes.push(holeInstance); |
||||
|
stage.addChild(holeInstance); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 初始绘制radishes 萝卜 |
||||
|
* @param {object} lib |
||||
|
*/ |
||||
|
function initRadishes(lib) { |
||||
|
const deltaX = 185; // 列偏移
|
||||
|
const deltaY = 132; // 行偏移
|
||||
|
const initX = 150; // 第一个坑X
|
||||
|
const initY = 260; // 第一个坑Y
|
||||
|
|
||||
|
for (let j = 0; j < 4; j++) { |
||||
|
for (let i = 0; i < 5; i++) { |
||||
|
const radishInstance = new lib.radish_1(); |
||||
|
radishInstance.x = initX + deltaX * i; |
||||
|
radishInstance.y = initY + deltaY * j; |
||||
|
obj.radishes.push(radishInstance); |
||||
|
stage.addChild(radishInstance); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 初始绘制兔子 |
||||
|
* @param {object} lib |
||||
|
*/ |
||||
|
function initRabbit(lib) { |
||||
|
const initX = 100; |
||||
|
const initY = 250; |
||||
|
const deltaX = 185; |
||||
|
const deltaY = 132; |
||||
|
const rabbitInstance = new lib.rabbitCell(); |
||||
|
rabbitInstance.x = initX + deltaX * (obj.pulledRadishNum % 5); |
||||
|
rabbitInstance.y = initY + deltaY * Math.floor(obj.pulledRadishNum / 5); |
||||
|
obj.rabbit = rabbitInstance; |
||||
|
stage.addChild(rabbitInstance); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 初始绘制倒计时 |
||||
|
* @param {object} lib |
||||
|
*/ |
||||
|
function initTime(lib) { |
||||
|
const initX = 920; |
||||
|
const initY = 80; |
||||
|
const instance = new lib.timeBg(); |
||||
|
instance.x = initX; |
||||
|
instance.y = initY; |
||||
|
obj.timeBg = instance; |
||||
|
stage.addChild(instance); |
||||
|
changeTime(obj.totalTime); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改倒计时 |
||||
|
* @param {number} totalTime 游戏剩余秒数 |
||||
|
*/ |
||||
|
function changeTime(totalTime) { |
||||
|
const text = new createjs.Text(totalTime, "bold 40px Arial", "#823d16"); |
||||
|
text.x = 922; |
||||
|
text.y = 100; |
||||
|
text.textAlign = 'center'; |
||||
|
text.textBaseline = "alphabetic"; |
||||
|
obj.timeText = text; |
||||
|
stage.addChild(text); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改得分 |
||||
|
* @param {number} score 得分 |
||||
|
*/ |
||||
|
function changeScore(score) { |
||||
|
const text = new createjs.Text(score, "bold 32px Arial", "#FFF"); |
||||
|
text.x = obj.lib.properties.width / 2 + 50; |
||||
|
text.y = 97; |
||||
|
text.textAlign = 'center'; |
||||
|
text.textBaseline = "alphabetic"; |
||||
|
obj.scoreText = text; |
||||
|
stage.addChild(text); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 初始绘制得分 |
||||
|
* @param {object} lib |
||||
|
*/ |
||||
|
function initScore(lib) { |
||||
|
const initX = obj.lib.properties.width / 2; |
||||
|
const initY = 80; |
||||
|
const instance = new lib.scoreBg(); |
||||
|
instance.x = initX; |
||||
|
instance.y = initY; |
||||
|
instance.scaleX = 1.5; |
||||
|
instance.scaleY = 1.5; |
||||
|
obj.timeBg = instance; |
||||
|
stage.addChild(instance); |
||||
|
changeScore(obj.totalScore); |
||||
|
} |
||||
|
|
||||
|
// 测试
|
||||
|
function test() { |
||||
|
document.addEventListener('click', handlePull, false); |
||||
|
} |
||||
|
|
||||
|
// 一次拔萝卜的动作
|
||||
|
// 测试函数
|
||||
|
// 1. 萝卜动画
|
||||
|
// 2. 兔子动画
|
||||
|
// 3. 动画结束后 洞洞变状态
|
||||
|
// 4. 分数+5
|
||||
|
// 5. 兔子跑到下一个洞洞附近
|
||||
|
// 时间到游戏结束
|
||||
|
// 拔完了20个萝卜游戏结束
|
||||
|
function handlePull() { |
||||
|
if (obj.lock || !obj.gameStart) return; |
||||
|
obj.lock = true; |
||||
|
|
||||
|
if (obj.totalTime <= 0 || obj.pulledRadishNum >= 20) return; |
||||
|
|
||||
|
// 1. 设置萝卜的动画及状态
|
||||
|
obj.radishes[obj.pulledRadishNum].gotoAndPlay('radish_start'); |
||||
|
// 2. 兔子的动画
|
||||
|
obj.rabbit.gotoAndPlay('rabbit_start'); |
||||
|
|
||||
|
// 3. 延时修改洞洞的状态
|
||||
|
// 没找到动画的回调 目前只能用延时来处理
|
||||
|
setTimeout(function () { |
||||
|
// obj.holes[obj.pulledRadishNum].gotoAndPlay('hole_active');
|
||||
|
|
||||
|
if (obj.pulledRadishNum >= 20) { |
||||
|
// 游戏结束
|
||||
|
gameOver(); |
||||
|
return |
||||
|
} |
||||
|
obj.rabbit && stage.removeChild(obj.rabbit); |
||||
|
initRabbit(obj.lib); |
||||
|
|
||||
|
for (let i = 0; i < obj.pulledRadishNum; i++) { |
||||
|
obj.holes[i].gotoAndStop('hole_active'); |
||||
|
obj.radishes[i].gotoAndStop('radish_bomb_end'); |
||||
|
} |
||||
|
|
||||
|
obj.lock = false; |
||||
|
}, 1250); |
||||
|
} |
||||
|
|
||||
|
// 收到了计分的消息
|
||||
|
function onScoreMessage(score, times) { |
||||
|
console.log('score, times',score, times) |
||||
|
obj.totalScore = score; |
||||
|
obj.pulledRadishNum = times; |
||||
|
playExcitationMusic(); // 播放激励音乐
|
||||
|
|
||||
|
obj.scoreText && stage.removeChild(obj.scoreText); // 清除原有的分数
|
||||
|
changeScore(obj.totalScore); // 显示新的分数
|
||||
|
} |
||||
|
|
||||
|
// 播放激励音乐
|
||||
|
function playExcitationMusic() { |
||||
|
switch (obj.pulledRadishNum % 5) { |
||||
|
case 0: |
||||
|
obj.music.unbelievable.play(); |
||||
|
break; |
||||
|
case 3: |
||||
|
case 4: |
||||
|
obj.music.amazing.play(); |
||||
|
break; |
||||
|
default: |
||||
|
obj.music.excitation.play(); |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 游戏结束
|
||||
|
function gameOver() { |
||||
|
console.log('game over', obj); |
||||
|
obj.rabbit && stage.removeChild(obj.rabbit); |
||||
|
obj.timerId && clearInterval(obj.timerId); |
||||
|
obj.timerId = null; |
||||
|
sendEndRequest(); // 发送结束http请求
|
||||
|
showEndModal(); |
||||
|
} |
||||
|
|
||||
|
// 发送倒计时结束http请求
|
||||
|
function sendEndCountRequest() { |
||||
|
const data = { "param": { "id": gameInfo.patientId, "recordId": gameInfo.recordId } } |
||||
|
fetch('//www.tall.wiki/gateway/recovery/patient/countdown', { |
||||
|
method: 'POST', |
||||
|
mode: 'cors', |
||||
|
body: JSON.stringify(data), |
||||
|
headers: { |
||||
|
'Content-Type': 'application/json' |
||||
|
} |
||||
|
}) |
||||
|
.then(res => res.json()) |
||||
|
.then(response => { |
||||
|
if (response && response.code === 200) { |
||||
|
// 结束成功
|
||||
|
} else { |
||||
|
alert('网络异常, 请检查网络刷新重试'); |
||||
|
console.error(response.msg); |
||||
|
} |
||||
|
}) |
||||
|
.catch(error => console.error('Error:', error)); |
||||
|
} |
||||
|
|
||||
|
// 发送结束http请求
|
||||
|
function sendEndRequest() { |
||||
|
/** |
||||
|
gameId: "1" |
||||
|
patientId: "1" |
||||
|
recordId: "1400659869853421568" |
||||
|
*/ |
||||
|
const data = { "param": { "id": gameInfo.recordId, "patientId": gameInfo.patientId, "score": obj.totalScore } }; |
||||
|
fetch('//www.tall.wiki/gateway/recovery/patient/end', { |
||||
|
method: 'POST', |
||||
|
mode: 'cors', |
||||
|
body: JSON.stringify(data), |
||||
|
headers: { |
||||
|
'Content-Type': 'application/json' |
||||
|
} |
||||
|
}) |
||||
|
.then(res => res.json()) |
||||
|
.then(response => { |
||||
|
if (response && response.code === 200) { |
||||
|
// 结束成功
|
||||
|
} else { |
||||
|
console.error(response.msg); |
||||
|
} |
||||
|
}) |
||||
|
.catch(error => console.error('Error:', error)); |
||||
|
} |
||||
|
|
||||
|
// 处理倒计时
|
||||
|
function interval() { |
||||
|
if (obj.timerId) return; |
||||
|
const endTime = +gameInfo.startTime + 10 * 1000 + +gameInfo.duration; |
||||
|
obj.timerId = setInterval(function () { |
||||
|
if (obj.totalTime === 0) { |
||||
|
gameOver(); |
||||
|
return; |
||||
|
} |
||||
|
obj.totalTime = Math.floor((endTime - Date.now()) / 1000); |
||||
|
obj.timeText && stage.removeChild(obj.timeText); |
||||
|
changeTime(obj.totalTime); |
||||
|
}, 1000); |
||||
|
} |
||||
|
|
||||
|
// 显示结束游戏面板 及得分
|
||||
|
function showEndModal() { |
||||
|
obj.endModal = new obj.lib.bgModalEnd(); |
||||
|
obj.endModal.x = obj.lib.properties.width / 2; |
||||
|
obj.endModal.y = obj.lib.properties.height / 2 |
||||
|
stage.addChild(obj.endModal); |
||||
|
|
||||
|
const text = new createjs.Text(obj.totalScore, "bold 100px Arial", "#793b18"); |
||||
|
text.x = obj.lib.properties.width / 2; |
||||
|
text.y = obj.lib.properties.height / 2 + 70; |
||||
|
text.textAlign = 'center'; |
||||
|
text.textBaseline = "alphabetic"; |
||||
|
obj.endText = text; |
||||
|
stage.addChild(text); |
||||
|
showAgainBtn(); |
||||
|
} |
||||
|
|
||||
|
// 显示再玩一次的按钮
|
||||
|
function showAgainBtn() { |
||||
|
const btnAgain = new obj.lib.btnAgain(); |
||||
|
btnAgain.x = obj.lib.properties.width / 2; |
||||
|
btnAgain.y = obj.lib.properties.height / 2 + 150; |
||||
|
obj.btnAgain = btnAgain; |
||||
|
obj.btnAgain.addEventListener('click', function() { |
||||
|
location.reload(); |
||||
|
}, false); |
||||
|
stage.addChild(btnAgain); |
||||
|
} |
||||
|
|
||||
|
// 初始化返回按钮/退出游戏按钮
|
||||
|
function initBackBtn() { |
||||
|
obj.btnBack = new obj.lib.btnBack(); |
||||
|
obj.btnBack.x = 40; |
||||
|
obj.btnBack.y = 80; |
||||
|
obj.btnBack.scaleX = 1.3; |
||||
|
obj.btnBack.scaleY = 1.3; |
||||
|
stage.addChild(obj.btnBack); |
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
function initMessage() { |
||||
|
window.parent.postMessage('created', '*'); |
||||
|
window.addEventListener('message', function (event) { |
||||
|
try { |
||||
|
const data = JSON.parse(event.data); |
||||
|
// 消息格式: {type: 'data', data: { ... }}
|
||||
|
if (data.type === 'data') { |
||||
|
console.log('game message: -->', data.data); |
||||
|
window.parentData = data.data; |
||||
|
} |
||||
|
} catch (error) { |
||||
|
// console.error(error);
|
||||
|
} |
||||
|
}) |
||||
|
} |
Binary file not shown.
@ -0,0 +1,870 @@ |
|||||
|
(function (cjs, an) { |
||||
|
|
||||
|
var p; // shortcut to reference prototypes
|
||||
|
var lib={};var ss={};var img={}; |
||||
|
lib.ssMetadata = [ |
||||
|
{name:"pullRadish_v1.6_atlas_1", frames: [[1026,309,400,99],[1428,309,400,99],[1882,517,124,46],[1026,0,435,307],[1795,410,29,29],[1987,165,53,53],[1618,410,88,89],[1695,501,73,67],[1708,410,85,89],[1933,418,91,97],[1428,410,93,92],[1523,410,93,92],[0,475,1024,350],[0,0,1024,473],[1770,523,108,31],[1428,504,112,30],[1830,323,101,126],[1900,165,85,156],[1900,0,120,163],[1933,323,104,93],[1463,0,435,307],[1026,410,400,99],[1795,451,85,70],[1618,501,75,75]]} |
||||
|
]; |
||||
|
|
||||
|
|
||||
|
(lib.AnMovieClip = function(){ |
||||
|
this.actionFrames = []; |
||||
|
this.ignorePause = false; |
||||
|
this.gotoAndPlay = function(positionOrLabel){ |
||||
|
cjs.MovieClip.prototype.gotoAndPlay.call(this,positionOrLabel); |
||||
|
} |
||||
|
this.play = function(){ |
||||
|
cjs.MovieClip.prototype.play.call(this); |
||||
|
} |
||||
|
this.gotoAndStop = function(positionOrLabel){ |
||||
|
cjs.MovieClip.prototype.gotoAndStop.call(this,positionOrLabel); |
||||
|
} |
||||
|
this.stop = function(){ |
||||
|
cjs.MovieClip.prototype.stop.call(this); |
||||
|
} |
||||
|
}).prototype = p = new cjs.MovieClip(); |
||||
|
// symbols:
|
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.开始按钮 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(0); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.开始训练 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(1); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.分数 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(2); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.倒计时 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(3); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.B1 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(4); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.B2 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(5); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.B3 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(6); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.B4 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(7); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.B5 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(8); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.B6 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(9); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.B7 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(10); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.B8 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(11); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.bg_grassland = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(12); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.bg_ground = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(13); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.hole1 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(14); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.hole2 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(15); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.LB1 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(16); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.rabit1 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(17); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.rabit2 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(18); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.radish = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(19); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.任务完成 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(20); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.再来一次 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(21); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.计时 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(22); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
|
||||
|
|
||||
|
|
||||
|
(lib.返回按钮 = function() { |
||||
|
this.initialize(ss["pullRadish_v1.6_atlas_1"]); |
||||
|
this.gotoAndStop(23); |
||||
|
}).prototype = p = new cjs.Sprite(); |
||||
|
// helper functions:
|
||||
|
|
||||
|
function mc_symbol_clone() { |
||||
|
var clone = this._cloneProps(new this.constructor(this.mode, this.startPosition, this.loop, this.reversed)); |
||||
|
clone.gotoAndStop(this.currentFrame); |
||||
|
clone.paused = this.paused; |
||||
|
clone.framerate = this.framerate; |
||||
|
return clone; |
||||
|
} |
||||
|
|
||||
|
function getMCSymbolPrototype(symbol, nominalBounds, frameBounds) { |
||||
|
var prototype = cjs.extend(symbol, cjs.MovieClip); |
||||
|
prototype.clone = mc_symbol_clone; |
||||
|
prototype.nominalBounds = nominalBounds; |
||||
|
prototype.frameBounds = frameBounds; |
||||
|
return prototype; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
(lib.timeBg = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
this.isSingleFrame = false; |
||||
|
// timeline functions:
|
||||
|
this.frame_0 = function() { |
||||
|
if(this.isSingleFrame) { |
||||
|
return; |
||||
|
} |
||||
|
if(this.totalFrames == 1) { |
||||
|
this.isSingleFrame = true; |
||||
|
} |
||||
|
this.stop(); |
||||
|
} |
||||
|
|
||||
|
// actions tween:
|
||||
|
this.timeline.addTween(cjs.Tween.get(this).call(this.frame_0).wait(1)); |
||||
|
|
||||
|
// timeBg
|
||||
|
this.instance = new lib.计时(); |
||||
|
this.instance.setTransform(-60,-49,1.4118,1.4121); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = getMCSymbolPrototype(lib.timeBg, new cjs.Rectangle(-60,-49,120,98.9), null); |
||||
|
|
||||
|
|
||||
|
(lib.scoreBg = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
this.isSingleFrame = false; |
||||
|
// timeline functions:
|
||||
|
this.frame_0 = function() { |
||||
|
if(this.isSingleFrame) { |
||||
|
return; |
||||
|
} |
||||
|
if(this.totalFrames == 1) { |
||||
|
this.isSingleFrame = true; |
||||
|
} |
||||
|
this.stop(); |
||||
|
} |
||||
|
|
||||
|
// actions tween:
|
||||
|
this.timeline.addTween(cjs.Tween.get(this).call(this.frame_0).wait(1)); |
||||
|
|
||||
|
// scoreBg
|
||||
|
this.instance = new lib.分数(); |
||||
|
this.instance.setTransform(-62,-23); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = getMCSymbolPrototype(lib.scoreBg, new cjs.Rectangle(-62,-23,124,46), null); |
||||
|
|
||||
|
|
||||
|
(lib.LB1_1 = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// 图层_1
|
||||
|
this.instance = new lib.LB1(); |
||||
|
this.instance.setTransform(-50.5,-63); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = getMCSymbolPrototype(lib.LB1_1, new cjs.Rectangle(-50.5,-63,101,126), null); |
||||
|
|
||||
|
|
||||
|
(lib.hole = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {hole_normal:0,hole_active:1}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// timeline functions:
|
||||
|
this.frame_0 = function() { |
||||
|
this.stop(); |
||||
|
} |
||||
|
this.frame_1 = function() { |
||||
|
this.stop(); |
||||
|
} |
||||
|
|
||||
|
// actions tween:
|
||||
|
this.timeline.addTween(cjs.Tween.get(this).call(this.frame_0).wait(1).call(this.frame_1).wait(1)); |
||||
|
|
||||
|
// Hole
|
||||
|
this.instance = new lib.hole1(); |
||||
|
|
||||
|
this.instance_1 = new lib.hole2(); |
||||
|
this.instance_1.setTransform(0,1); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance}]}).to({state:[{t:this.instance_1}]},1).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = p = new cjs.MovieClip(); |
||||
|
p.nominalBounds = new cjs.Rectangle(0,0,112,31); |
||||
|
|
||||
|
|
||||
|
(lib.补间3 = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// 图层_1
|
||||
|
this.instance = new lib.radish(); |
||||
|
this.instance.setTransform(-52,-46.5); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = p = new cjs.MovieClip(); |
||||
|
p.nominalBounds = new cjs.Rectangle(-52,-46.5,104,93); |
||||
|
|
||||
|
|
||||
|
(lib.补间1 = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// 图层_1
|
||||
|
this.instance = new lib.rabit2(); |
||||
|
this.instance.setTransform(-60,-81.5); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = p = new cjs.MovieClip(); |
||||
|
p.nominalBounds = new cjs.Rectangle(-60,-81.5,120,163); |
||||
|
|
||||
|
|
||||
|
(lib.bgModalEnd = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// 图层_1
|
||||
|
this.instance = new lib.任务完成(); |
||||
|
this.instance.setTransform(-218,-154); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = getMCSymbolPrototype(lib.bgModalEnd, new cjs.Rectangle(-218,-154,435,307), null); |
||||
|
|
||||
|
|
||||
|
(lib.btnBack = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// 图层_1
|
||||
|
this.instance = new lib.返回按钮(); |
||||
|
this.instance.setTransform(0,-38); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = getMCSymbolPrototype(lib.btnBack, new cjs.Rectangle(0,-38,75,75), null); |
||||
|
|
||||
|
|
||||
|
(lib.btnBegin = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// 图层_1
|
||||
|
this.instance = new lib.开始按钮(); |
||||
|
this.instance.setTransform(-180,-50,0.9,1); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = getMCSymbolPrototype(lib.btnBegin, new cjs.Rectangle(-180,-50,360,99), null); |
||||
|
|
||||
|
|
||||
|
(lib.bomb = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {bomb_start:0,bomb_end:8}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// timeline functions:
|
||||
|
this.frame_8 = function() { |
||||
|
this.stop(); |
||||
|
} |
||||
|
|
||||
|
// actions tween:
|
||||
|
this.timeline.addTween(cjs.Tween.get(this).wait(8).call(this.frame_8).wait(1)); |
||||
|
|
||||
|
// bomb
|
||||
|
this.instance = new lib.B1(); |
||||
|
this.instance.setTransform(-15,-15); |
||||
|
|
||||
|
this.instance_1 = new lib.B2(); |
||||
|
this.instance_1.setTransform(-27,-27); |
||||
|
|
||||
|
this.instance_2 = new lib.B3(); |
||||
|
this.instance_2.setTransform(-44,-45); |
||||
|
|
||||
|
this.instance_3 = new lib.B4(); |
||||
|
this.instance_3.setTransform(-37,-34); |
||||
|
|
||||
|
this.instance_4 = new lib.B5(); |
||||
|
this.instance_4.setTransform(-43,-45); |
||||
|
|
||||
|
this.instance_5 = new lib.B6(); |
||||
|
this.instance_5.setTransform(-46,-49); |
||||
|
|
||||
|
this.instance_6 = new lib.B7(); |
||||
|
this.instance_6.setTransform(-47,-46); |
||||
|
|
||||
|
this.instance_7 = new lib.B8(); |
||||
|
this.instance_7.setTransform(-47,-46); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance}]}).to({state:[{t:this.instance_1}]},1).to({state:[{t:this.instance_2}]},1).to({state:[{t:this.instance_3}]},1).to({state:[{t:this.instance_4}]},1).to({state:[{t:this.instance_5}]},1).to({state:[{t:this.instance_6}]},1).to({state:[{t:this.instance_7}]},1).to({state:[]},1).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = p = new cjs.MovieClip(); |
||||
|
p.nominalBounds = new cjs.Rectangle(-47,-49,93,97); |
||||
|
|
||||
|
|
||||
|
(lib.btnBeginTrain = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// 图层_1
|
||||
|
this.instance = new lib.开始训练(); |
||||
|
this.instance.setTransform(-180,-50,0.9,1.0101); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = getMCSymbolPrototype(lib.btnBeginTrain, new cjs.Rectangle(-180,-50,360,100), null); |
||||
|
|
||||
|
|
||||
|
(lib.bgModalBegin = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// 图层_1
|
||||
|
this.instance = new lib.倒计时(); |
||||
|
this.instance.setTransform(-218,-154); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = getMCSymbolPrototype(lib.bgModalBegin, new cjs.Rectangle(-218,-154,435,307), null); |
||||
|
|
||||
|
|
||||
|
(lib.btnAgain = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// 图层_1
|
||||
|
this.instance = new lib.再来一次(); |
||||
|
this.instance.setTransform(-125,-35,0.625,0.707); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = getMCSymbolPrototype(lib.btnAgain, new cjs.Rectangle(-125,-35,250,70), null); |
||||
|
|
||||
|
|
||||
|
(lib.radish_1 = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {radish_normal:0,radish_start:1,radish_fly_start:10,radish_bomb_start:12,"radish_fly_start":17,"radish_bomb_start":22,"radish_bomb_start":28,radish_bomb_end:36}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// timeline functions:
|
||||
|
this.frame_0 = function() { |
||||
|
this.stop(); |
||||
|
} |
||||
|
this.frame_36 = function() { |
||||
|
this.stop(); |
||||
|
} |
||||
|
|
||||
|
// actions tween:
|
||||
|
this.timeline.addTween(cjs.Tween.get(this).call(this.frame_0).wait(36).call(this.frame_36).wait(1)); |
||||
|
|
||||
|
// radish
|
||||
|
this.instance = new lib.radish(); |
||||
|
this.instance.setTransform(-52,-47); |
||||
|
|
||||
|
this.instance_1 = new lib.补间3("synched",0); |
||||
|
this.instance_1.setTransform(0,-0.5); |
||||
|
this.instance_1._off = true; |
||||
|
|
||||
|
this.instance_2 = new lib.LB1_1(); |
||||
|
this.instance_2.setTransform(-1.55,-0.1,0.9306,0.9303,0,0,0,-0.1,-0.1); |
||||
|
this.instance_2.alpha = 0.5313; |
||||
|
this.instance_2._off = true; |
||||
|
|
||||
|
this.instance_3 = new lib.B1(); |
||||
|
this.instance_3.setTransform(-92,-89); |
||||
|
this.instance_3._off = true; |
||||
|
|
||||
|
this.instance_4 = new lib.B2(); |
||||
|
this.instance_4.setTransform(-104,-101); |
||||
|
this.instance_4._off = true; |
||||
|
|
||||
|
this.instance_5 = new lib.B3(); |
||||
|
this.instance_5.setTransform(-121,-119); |
||||
|
this.instance_5._off = true; |
||||
|
|
||||
|
this.instance_6 = new lib.B4(); |
||||
|
this.instance_6.setTransform(-114,-108); |
||||
|
this.instance_6._off = true; |
||||
|
|
||||
|
this.instance_7 = new lib.B5(); |
||||
|
this.instance_7.setTransform(-120,-119); |
||||
|
this.instance_7._off = true; |
||||
|
|
||||
|
this.instance_8 = new lib.B6(); |
||||
|
this.instance_8.setTransform(-123,-123); |
||||
|
this.instance_8._off = true; |
||||
|
|
||||
|
this.instance_9 = new lib.B7(); |
||||
|
this.instance_9.setTransform(-124,-120); |
||||
|
this.instance_9._off = true; |
||||
|
|
||||
|
this.instance_10 = new lib.B8(); |
||||
|
this.instance_10.setTransform(-124,-123); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance}]}).to({state:[{t:this.instance_1}]},1).to({state:[{t:this.instance_1}]},11).to({state:[{t:this.instance_1}]},11).to({state:[{t:this.instance_2}]},1).to({state:[{t:this.instance_2}]},3).to({state:[{t:this.instance_3}]},1).to({state:[{t:this.instance_4}]},1).to({state:[{t:this.instance_5}]},1).to({state:[{t:this.instance_6}]},1).to({state:[{t:this.instance_7}]},1).to({state:[{t:this.instance_8}]},1).to({state:[{t:this.instance_9}]},1).to({state:[{t:this.instance_10}]},1).to({state:[]},1).wait(1)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_1).wait(1).to({_off:false},0).to({scaleX:0.8654,scaleY:0.8651,y:-0.45},11).to({scaleX:1,scaleY:1,y:-0.5},11).to({_off:true,regX:-0.1,regY:-0.1,scaleX:0.9306,scaleY:0.9303,x:-1.55,y:-0.1,alpha:0.5313,mode:"independent"},1).wait(13)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_2).wait(23).to({_off:false},1).to({regX:0.1,scaleX:0.594,scaleY:0.594,rotation:-14.9986,x:-77.5,y:-75.05},3).to({_off:true,regX:0,regY:0,scaleX:1,scaleY:1,rotation:0,x:-92,y:-89,alpha:1},1).wait(9)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_3).wait(27).to({_off:false},1).to({_off:true,x:-104,y:-101},1).wait(8)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_4).wait(28).to({_off:false},1).to({_off:true,x:-121,y:-119},1).wait(7)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_5).wait(29).to({_off:false},1).to({_off:true,x:-114,y:-108},1).wait(6)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_6).wait(30).to({_off:false},1).to({_off:true,x:-120,y:-119},1).wait(5)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_7).wait(31).to({_off:false},1).to({_off:true,x:-123,y:-123},1).wait(4)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_8).wait(32).to({_off:false},1).to({_off:true,x:-124,y:-120},1).wait(3)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_9).wait(33).to({_off:false},1).to({_off:true,y:-123},1).wait(2)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = p = new cjs.MovieClip(); |
||||
|
p.nominalBounds = new cjs.Rectangle(-124,-123,176,181.6); |
||||
|
|
||||
|
|
||||
|
(lib.rabbitCell = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = true; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {rabbit_normal:0,rabbit_start:1,rabbit_end:31}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// timeline functions:
|
||||
|
this.frame_0 = function() { |
||||
|
this.stop(); |
||||
|
} |
||||
|
this.frame_31 = function() { |
||||
|
this.stop(); |
||||
|
} |
||||
|
|
||||
|
// actions tween:
|
||||
|
this.timeline.addTween(cjs.Tween.get(this).call(this.frame_0).wait(31).call(this.frame_31).wait(1)); |
||||
|
|
||||
|
// rabit
|
||||
|
this.instance = new lib.rabit1(); |
||||
|
this.instance.setTransform(-43,-78); |
||||
|
|
||||
|
this.instance_1 = new lib.补间1("synched",0); |
||||
|
this.instance_1._off = true; |
||||
|
|
||||
|
this.instance_2 = new lib.B2(); |
||||
|
this.instance_2.setTransform(-27,-27); |
||||
|
this.instance_2._off = true; |
||||
|
|
||||
|
this.instance_3 = new lib.B3(); |
||||
|
this.instance_3.setTransform(-44,-45); |
||||
|
this.instance_3._off = true; |
||||
|
|
||||
|
this.instance_4 = new lib.B4(); |
||||
|
this.instance_4.setTransform(-37,-34); |
||||
|
this.instance_4._off = true; |
||||
|
|
||||
|
this.instance_5 = new lib.B5(); |
||||
|
this.instance_5.setTransform(-43,-45); |
||||
|
this.instance_5._off = true; |
||||
|
|
||||
|
this.instance_6 = new lib.B6(); |
||||
|
this.instance_6.setTransform(-46,-49); |
||||
|
this.instance_6._off = true; |
||||
|
|
||||
|
this.instance_7 = new lib.B7(); |
||||
|
this.instance_7.setTransform(-47,-46); |
||||
|
this.instance_7._off = true; |
||||
|
|
||||
|
this.instance_8 = new lib.B8(); |
||||
|
this.instance_8.setTransform(-47,-46); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance}]}).to({state:[{t:this.instance_1}]},1).to({state:[{t:this.instance_1}]},11).to({state:[{t:this.instance_1}]},11).to({state:[{t:this.instance_2}]},1).to({state:[{t:this.instance_3}]},1).to({state:[{t:this.instance_4}]},1).to({state:[{t:this.instance_5}]},1).to({state:[{t:this.instance_6}]},1).to({state:[{t:this.instance_7}]},1).to({state:[{t:this.instance_8}]},1).to({state:[]},1).wait(1)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_1).wait(1).to({_off:false},0).to({scaleX:0.9167,scaleY:0.9166},11).to({scaleX:1,scaleY:1},11).to({_off:true,x:-27,y:-27},1).wait(8)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_2).wait(23).to({_off:false},1).to({_off:true,x:-44,y:-45},1).wait(7)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_3).wait(24).to({_off:false},1).to({_off:true,x:-37,y:-34},1).wait(6)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_4).wait(25).to({_off:false},1).to({_off:true,x:-43,y:-45},1).wait(5)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_5).wait(26).to({_off:false},1).to({_off:true,x:-46,y:-49},1).wait(4)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_6).wait(27).to({_off:false},1).to({_off:true,x:-47,y:-46},1).wait(3)); |
||||
|
this.timeline.addTween(cjs.Tween.get(this.instance_7).wait(28).to({_off:false},1).to({_off:true},1).wait(2)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = p = new cjs.MovieClip(); |
||||
|
p.nominalBounds = new cjs.Rectangle(-60,-81.5,120,163); |
||||
|
|
||||
|
|
||||
|
// stage content:
|
||||
|
(lib.pullRadishv16 = function(mode,startPosition,loop,reversed) { |
||||
|
if (loop == null) { loop = false; } |
||||
|
if (reversed == null) { reversed = false; } |
||||
|
var props = new Object(); |
||||
|
props.mode = mode; |
||||
|
props.startPosition = startPosition; |
||||
|
props.labels = {bgm:0}; |
||||
|
props.loop = loop; |
||||
|
props.reversed = reversed; |
||||
|
cjs.MovieClip.apply(this,[props]); |
||||
|
|
||||
|
// 图层_1
|
||||
|
this.instance = new lib.bg_ground(); |
||||
|
this.instance.setTransform(0.5,214,1,1.1733); |
||||
|
|
||||
|
this.instance_1 = new lib.bg_grassland(); |
||||
|
this.instance_1.setTransform(0.5,-73); |
||||
|
|
||||
|
this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance_1},{t:this.instance}]}).wait(1)); |
||||
|
|
||||
|
this._renderFirstFrame(); |
||||
|
|
||||
|
}).prototype = p = new lib.AnMovieClip(); |
||||
|
p.nominalBounds = new cjs.Rectangle(512.5,311,512,458); |
||||
|
// library properties:
|
||||
|
lib.properties = { |
||||
|
id: '94CA090E719F4688AE0D01901C9EA0D7', |
||||
|
width: 1024, |
||||
|
height: 768, |
||||
|
fps: 24, |
||||
|
color: "#F5F5F5", |
||||
|
opacity: 0.00, |
||||
|
manifest: [ |
||||
|
{src:"images/pullRadish_v1.6_atlas_1.png", id:"pullRadish_v1.6_atlas_1"}, |
||||
|
{src:"sounds/excitationMusic.mp3", id:"excitationMusic"} |
||||
|
], |
||||
|
preloads: [] |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
|
||||
|
// bootstrap callback support:
|
||||
|
|
||||
|
(lib.Stage = function(canvas) { |
||||
|
createjs.Stage.call(this, canvas); |
||||
|
}).prototype = p = new createjs.Stage(); |
||||
|
|
||||
|
p.setAutoPlay = function(autoPlay) { |
||||
|
this.tickEnabled = autoPlay; |
||||
|
} |
||||
|
p.play = function() { this.tickEnabled = true; this.getChildAt(0).gotoAndPlay(this.getTimelinePosition()) } |
||||
|
p.stop = function(ms) { if(ms) this.seek(ms); this.tickEnabled = false; } |
||||
|
p.seek = function(ms) { this.tickEnabled = true; this.getChildAt(0).gotoAndStop(lib.properties.fps * ms / 1000); } |
||||
|
p.getDuration = function() { return this.getChildAt(0).totalFrames / lib.properties.fps * 1000; } |
||||
|
|
||||
|
p.getTimelinePosition = function() { return this.getChildAt(0).currentFrame / lib.properties.fps * 1000; } |
||||
|
|
||||
|
an.bootcompsLoaded = an.bootcompsLoaded || []; |
||||
|
if(!an.bootstrapListeners) { |
||||
|
an.bootstrapListeners=[]; |
||||
|
} |
||||
|
|
||||
|
an.bootstrapCallback=function(fnCallback) { |
||||
|
an.bootstrapListeners.push(fnCallback); |
||||
|
if(an.bootcompsLoaded.length > 0) { |
||||
|
for(var i=0; i<an.bootcompsLoaded.length; ++i) { |
||||
|
fnCallback(an.bootcompsLoaded[i]); |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
an.compositions = an.compositions || {}; |
||||
|
an.compositions['94CA090E719F4688AE0D01901C9EA0D7'] = { |
||||
|
getStage: function() { return exportRoot.stage; }, |
||||
|
getLibrary: function() { return lib; }, |
||||
|
getSpriteSheet: function() { return ss; }, |
||||
|
getImages: function() { return img; } |
||||
|
}; |
||||
|
|
||||
|
an.compositionLoaded = function(id) { |
||||
|
an.bootcompsLoaded.push(id); |
||||
|
for(var j=0; j<an.bootstrapListeners.length; j++) { |
||||
|
an.bootstrapListeners[j](id); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
an.getComposition = function(id) { |
||||
|
return an.compositions[id]; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
an.makeResponsive = function(isResp, respDim, isScale, scaleType, domContainers) { |
||||
|
var lastW, lastH, lastS=1; |
||||
|
window.addEventListener('resize', resizeCanvas); |
||||
|
resizeCanvas(); |
||||
|
function resizeCanvas() { |
||||
|
var w = lib.properties.width, h = lib.properties.height; |
||||
|
var iw = window.innerWidth, ih=window.innerHeight; |
||||
|
var pRatio = window.devicePixelRatio || 1, xRatio=iw/w, yRatio=ih/h, sRatio=1; |
||||
|
if(isResp) { |
||||
|
if((respDim=='width'&&lastW==iw) || (respDim=='height'&&lastH==ih)) { |
||||
|
sRatio = lastS; |
||||
|
} |
||||
|
else if(!isScale) { |
||||
|
if(iw<w || ih<h) |
||||
|
sRatio = Math.min(xRatio, yRatio); |
||||
|
} |
||||
|
else if(scaleType==1) { |
||||
|
sRatio = Math.min(xRatio, yRatio); |
||||
|
} |
||||
|
else if(scaleType==2) { |
||||
|
sRatio = Math.max(xRatio, yRatio); |
||||
|
} |
||||
|
} |
||||
|
domContainers[0].width = w * pRatio * sRatio; |
||||
|
domContainers[0].height = h * pRatio * sRatio; |
||||
|
domContainers.forEach(function(container) { |
||||
|
container.style.width = w * sRatio + 'px'; |
||||
|
container.style.height = h * sRatio + 'px'; |
||||
|
}); |
||||
|
stage.scaleX = pRatio*sRatio; |
||||
|
stage.scaleY = pRatio*sRatio; |
||||
|
lastW = iw; lastH = ih; lastS = sRatio; |
||||
|
stage.tickOnUpdate = false; |
||||
|
stage.update(); |
||||
|
stage.tickOnUpdate = true; |
||||
|
} |
||||
|
} |
||||
|
an.handleSoundStreamOnTick = function(event) { |
||||
|
if(!event.paused){ |
||||
|
var stageChild = stage.getChildAt(0); |
||||
|
if(!stageChild.paused || stageChild.ignorePause){ |
||||
|
stageChild.syncStreamSounds(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
})(createjs = createjs||{}, AdobeAn = AdobeAn||{}); |
||||
|
var createjs, AdobeAn; |
@ -0,0 +1,148 @@ |
|||||
|
let connected = false; // socket 是否连接
|
||||
|
let socket = null; // websocket 实例
|
||||
|
let lockSocket = false; |
||||
|
let socketMsgQueue = []; // socket消息队列
|
||||
|
let prevTimestamp = 0; // 上次收到消息的时间戳
|
||||
|
let sendHeartTimer = null; // 💓的timer计时器
|
||||
|
let ws = null; |
||||
|
|
||||
|
initSocket(); |
||||
|
|
||||
|
function initSocket() { |
||||
|
if (lockSocket) return; |
||||
|
lockSocket = true; |
||||
|
ws = new WebSocket('wss://www.tall.wiki/websocket/recovery/recovery/ws'); |
||||
|
ws.onopen = onOpen; |
||||
|
ws.onmessage = onMessage; |
||||
|
ws.onclose = onClose; |
||||
|
lockSocket = false; |
||||
|
} |
||||
|
|
||||
|
// ws 打开
|
||||
|
function onOpen(event) { |
||||
|
connected = true; |
||||
|
prevTimestamp = Date.now(); |
||||
|
auth(); // 认证
|
||||
|
for (let i = 0; i < socketMsgQueue.length; i += 1) { |
||||
|
send(socketMsgQueue[i]); |
||||
|
} |
||||
|
socketMsgQueue = []; |
||||
|
} |
||||
|
|
||||
|
// ws收到消息
|
||||
|
function onMessage(res) { |
||||
|
try { |
||||
|
prevTimestamp = Date.now(); |
||||
|
// console.warn('message: ', res, new Date().toLocaleString());
|
||||
|
if (res && res.data && JSON.parse(res.data)) { |
||||
|
const resData = JSON.parse(res.data); |
||||
|
const { messageSet, ackId } = resData; |
||||
|
// 处理消息体对象
|
||||
|
messageSet.forEach(item => handleMessagesData(item)); |
||||
|
// console.log('ackId', ackId);
|
||||
|
// 有ackId 发送ack
|
||||
|
ackId && send({ type: 'Ack', data: { ackId } }); |
||||
|
} |
||||
|
} catch (error) { |
||||
|
console.error(error); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 处理收到的消息内容 |
||||
|
* @param {object} item 单个消息体对象 |
||||
|
*/ |
||||
|
function handleMessagesData(item) { |
||||
|
const data = JSON.parse(item.data); |
||||
|
switch (data.type) { |
||||
|
case 'ChannelStatus': // 认证消息
|
||||
|
handleAuthMessage(data); |
||||
|
break; |
||||
|
case 'feedback': // 收到拔萝卜的动作反馈
|
||||
|
console.log('score', data.data.score) |
||||
|
data.data && data.data.result === 1 && handlePull(data.data.times); |
||||
|
onScoreMessage(data.data.score, data.data.times); |
||||
|
break; |
||||
|
case 'startDrill': // 开始训练游戏
|
||||
|
console.log(data.data); |
||||
|
window.gameInfo = data.data; |
||||
|
initBeginCount(); |
||||
|
break; |
||||
|
case 'countdown': |
||||
|
onCountdownMessage(); |
||||
|
break; |
||||
|
case 'score': |
||||
|
onScoreMessage(data.data.score, data.data.times); |
||||
|
break; |
||||
|
default: |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// ws 关闭
|
||||
|
function onClose(event) { |
||||
|
connected = false; |
||||
|
if (sendHeartTimer) clearInterval(sendHeartTimer); |
||||
|
// console.warn('close:', connected, new Date().toLocaleString());
|
||||
|
if (!event || event.code !== 1005) { |
||||
|
socket.close(); |
||||
|
} |
||||
|
|
||||
|
setTimeout(() => { |
||||
|
// connected 在这里的作用是:
|
||||
|
// 在发生重连 但是还没连上之前 不要再次重连
|
||||
|
initSocket(); |
||||
|
}, 300); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 发送消息 |
||||
|
* @param data |
||||
|
*/ |
||||
|
function send(data) { |
||||
|
if (connected) { |
||||
|
if (ws.readyState === 1) { |
||||
|
ws.send(JSON.stringify({ toDomain: 'Server', data: JSON.stringify(data) })); |
||||
|
} |
||||
|
} else { |
||||
|
socketMsgQueue.push(data); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
// 认证消息
|
||||
|
function auth() { |
||||
|
// TODO: userId拿父框架传递过来的
|
||||
|
const data = { type: 'Auth', data: { userId: '1399952569681448962' } }; |
||||
|
send(data); |
||||
|
} |
||||
|
|
||||
|
// 心跳检测
|
||||
|
function sendHeart() { |
||||
|
if (sendHeartTimer) clearInterval(sendHeartTimer); |
||||
|
sendHeartTimer = setInterval(() => { |
||||
|
if (Date.now() - prevTimestamp >= 15000) { |
||||
|
send({ type: 'Ping' }); |
||||
|
|
||||
|
if (Date.now() - prevTimestamp > 20000) { |
||||
|
// console.warn('手动断开');
|
||||
|
ws.close(); |
||||
|
} |
||||
|
} |
||||
|
}, 5000); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 处理auth认证返回的ChannelStatus消息 |
||||
|
* @param {object} data 消息内容对象 |
||||
|
*/ |
||||
|
function handleAuthMessage(data) { |
||||
|
if (data.data.authed) { |
||||
|
// 认证成功
|
||||
|
sendHeart(); |
||||
|
} else { |
||||
|
console.error('消息系统认证失败'); |
||||
|
// 清除掉本地无用的token
|
||||
|
ws = null; |
||||
|
} |
||||
|
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue