main.js 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085
  1. document.body.addEventListener('touchmove', bodyScroll, { passive: false });
  2. function bodyScroll(event) {
  3. event.preventDefault();
  4. }
  5. var canvas = document.getElementById("canvas");
  6. var stage = new createjs.Stage(canvas);
  7. createjs.Sound.alternateExtensions = ["mp3"];
  8. createjs.Sound.registerSound("sound/start/hsr.mp3", "hsr");
  9. createjs.Sound.registerSound("sound/start/ymc.mp3", "ymc");
  10. createjs.Sound.registerSound("sound/start/swy.mp3", "swy");
  11. createjs.Sound.registerSound("sound/start/qcdf.mp3", "qcdf");
  12. createjs.Sound.registerSound("sound/background_music.mp3", "bgm");
  13. createjs.Sound.registerSound("sound/cut.mp3", "cut");//切菜
  14. createjs.Sound.registerSound("sound/oil.mp3", "oil");//空锅倒油(肉、油麦菜)
  15. createjs.Sound.registerSound("sound/soup.mp3", "soup");//煮
  16. createjs.Sound.registerSound("sound/shake.mp3", "shake");//摇
  17. // 大屏适配
  18. var hFont = $('html').css('font-size');
  19. var h = $(window).height();
  20. hFont = hFont.slice(0,-2);
  21. // 屏幕超过1245。显示大屏配置
  22. if(h/hFont > 16.6){
  23. $("body").addClass("big-page");
  24. }else if(h/hFont < 15.2){
  25. $("body").addClass("small-page");
  26. $(".game-box").css("top",'-35px')
  27. }
  28. window.user_info = {
  29. uid: 0,
  30. logo:'http://img5q.duitang.com/uploads/item/201502/25/20150225060808_wuANL.jpeg',//用户头像
  31. nickname:'用户昵称',//用户昵称,
  32. namemsg:'那个她/他',//寄语
  33. textmsg:'GOOD GOOD STUDY,DAY DAY UP'//寄语
  34. };
  35. var URLParams = new Array() , chooseType = 0 , dishType = 0;
  36. var params = document.location.search.substr(1).split('&');
  37. var ua = navigator.userAgent.toLowerCase() , url = "" , type = 0;
  38. for (i=0; i < params.length ; i++){
  39. var aParam = params[i].split('=');
  40. URLParams[aParam[0]] = aParam[1];
  41. }
  42. function init() {
  43. //createjs.Sound.play("bgm", {loop: -1});
  44. just_play();
  45. var comp = AdobeAn.getComposition("5529E26743974F469545223C44E61D22");
  46. var lib = comp.getLibrary();
  47. var loader = new createjs.LoadQueue(false);
  48. loader.addEventListener("fileload", function(evt) { handleFileLoad(evt, comp) });
  49. loader.addEventListener("complete", function(evt) { handleComplete(evt, comp) });
  50. loader.addEventListener("progress", loadProgressHandler);
  51. var lib = comp.getLibrary();
  52. loader.loadManifest(lib.properties.manifest);
  53. createjs.MotionGuidePlugin.install();
  54. createjs.Touch.enable(stage);
  55. }
  56. function handleFileLoad(evt, comp) {
  57. var loadingimages = comp.getImages();
  58. if (evt && (evt.item.type == "image")) {
  59. loadingimages[evt.item.id] = evt.result;
  60. }
  61. }
  62. function loadProgressHandler(event) {
  63. var num = Math.floor(event.progress * 100);
  64. $("#loadingTxt").text(num);
  65. $("#loadingBar").css("width", num + '%');
  66. }
  67. function handleComplete(evt, comp) {
  68. //This function is always called, irrespective of the content. You can use the variable "stage" after it is created in token create_stage.
  69. var lib = comp.getLibrary();
  70. var ss = comp.getSpriteSheet();
  71. var queue = evt.target;
  72. var ssMetadata = lib.ssMetadata;
  73. for (i = 0; i < ssMetadata.length; i++) {
  74. ss[ssMetadata[i].name] = new createjs.SpriteSheet({ "images": [queue.getResult(ssMetadata[i].name)], "frames": ssMetadata[i].frames })
  75. }
  76. var exportRoot = new lib.assets();
  77. $(".loading").fadeOut(function(){
  78. $(".select-dish-box").find(".animated").removeClass("js-an");
  79. });
  80. var dishIndex = 0;
  81. $(".select-dish-box .item").on("click", function() {
  82. $(this).addClass("active").siblings().removeClass("active");
  83. $(".select-dish-box .confirm").show();
  84. })
  85. $(".select-dish-box .confirm").on("click", function() {
  86. if (!$(".select-dish-box .item").hasClass("active")) {
  87. alert("请选择你要做的菜")
  88. return false;
  89. }
  90. dishIndex = $(".select-dish-box .item.active").index();
  91. $(".select-dish-box").hide();
  92. $(".game-box").show();
  93. $(".cut-mode2").show();
  94. setTimeout(function(){ $(".cut-mode2").hide(); }, 1500);
  95. $(".cut-mode2").on("touchend",function(){
  96. $(this).hide();
  97. })
  98. $(".move-mode2").on("touchend",function(){
  99. $(this).hide();
  100. })
  101. // 判断是哪个菜
  102. if(dishIndex == 0){
  103. exportRoot.plate.hsr_icon1.alpha = 1;
  104. exportRoot.plate.hsr_icon2.alpha = 1;
  105. exportRoot.plate.hsr_icon3.alpha = 1;
  106. exportRoot.plate.hsr_icon4.alpha = 1;
  107. cutDishArr = hsr_iconArr;
  108. $('#poster').attr('src','./img/poster/hsr.png');
  109. }else if(dishIndex == 1){
  110. exportRoot.plate.qcdf_icon1.alpha = 1;
  111. exportRoot.plate.qcdf_icon2.alpha = 1;
  112. exportRoot.plate.qcdf_icon3.alpha = 1;
  113. exportRoot.plate.qcdf_icon4.alpha = 1;
  114. exportRoot.plate.qcdf_icon5.alpha = 1;
  115. cutDishArr = qcdf_iconArr;
  116. $('#poster').attr('src','./img/poster/qcdf.png');
  117. }else if(dishIndex == 2){
  118. exportRoot.plate.swy_icon1.alpha = 1;
  119. exportRoot.plate.swy_icon2.alpha = 1;
  120. cutDishArr = swy_iconArr;
  121. $('#poster').attr('src','./img/poster/swy.png');
  122. }else{
  123. exportRoot.plate.ymc_icon1.alpha = 1;
  124. exportRoot.plate.ymc_icon2.alpha = 1;
  125. exportRoot.plate.ymc_icon3.alpha = 1;
  126. exportRoot.plate.ymc_icon4.alpha = 1;
  127. cutDishArr = ymc_iconArr;
  128. $('#poster').attr('src','./img/poster/ymc.png');
  129. }
  130. })
  131. $(".replay-btn").on("click",function(){
  132. URLParams = new Array();
  133. window.location.href = "https://wx.ttkuaiban.com/minigame/";
  134. })
  135. //$(".secret-btn").on("click",function(){
  136. //saveText();
  137. // $(".secret-box").fadeIn();
  138. //})
  139. $(".secret-box").on("click",function(){
  140. $(".secret-box").fadeOut();
  141. })
  142. function ballAnim(dom) {
  143. var video = "";
  144. if(dishIndex == 0){
  145. video = createjs.Sound.play("soup");//播放
  146. }else if(dishIndex == 1){
  147. video = createjs.Sound.play("soup");//播放
  148. }else if(dishIndex == 3){
  149. video = createjs.Sound.play("soup");//播放
  150. }
  151. video.volume = 1;
  152. setTimeout(function(){
  153. video.paused = true;
  154. }, 3500);
  155. var anim = new TimelineMax({ repeat: -1 });
  156. anim.to(dom, 0.15, { rotation: "-=15", ease: Power0.easeIn })
  157. .to(dom, 0.3, { rotation: "+=30", ease: Power0.easeIn })
  158. .to(dom, 0.3, { rotation: "-=30", ease: Power0.easeIn })
  159. .to(dom, 0.3, { rotation: "+=30", ease: Power0.easeIn })
  160. .to(dom, 0.15, { rotation: "-=15", ease: Power0.easeIn });
  161. return anim;
  162. }
  163. function materialAnim(dom, x, y, callback) {
  164. var anim = new TimelineMax({ onComplete: callback });
  165. anim.to(dom, 0.5, { x: "+=" + x, y: "+=" + y, ease: Power0.easeIn })
  166. .to(dom, 0.3, { rotation: "-=25", ease: Power0.easeIn })
  167. .to(dom, 0.3, { rotation: "+=25", ease: Power0.easeIn })
  168. .to(dom, 0.3, { rotation: "-=25", ease: Power0.easeIn })
  169. .to(dom, 0.3, { rotation: "+=25", ease: Power0.easeIn });
  170. return anim;
  171. }
  172. function oilAnim(){
  173. if(dishIndex != 2){
  174. var dom = exportRoot.pot.oil;
  175. }else{
  176. var dom = exportRoot.bowl.oil;
  177. }
  178. var anim = new TimelineMax({ delay:0.8});
  179. anim.to(dom, 0.4, { alpha: 1, ease: Power0.easeIn })
  180. .to(dom, 1, { scale: 1, ease: Power0.easeIn })
  181. return anim;
  182. }
  183. function bowlAnim(callback) {
  184. var anim = new TimelineMax({ onComplete: callback, delay: 0.3 });
  185. anim.to(exportRoot.plate, 0.5, { y: "-=370", ease: Power0.easeIn })
  186. .to(exportRoot.bowl, 0.5, { alpha: 1, ease: Power0.easeIn });
  187. return anim;
  188. }
  189. function proAnim(callback) {
  190. var anim = new TimelineMax({ onComplete: callback, delay: 0.5 });
  191. anim.to(exportRoot.pro.proImg, 0.5, { rotation: "-=25", ease: Power0.easeIn })
  192. .to(exportRoot.pro.oil_icon1, 0.3, {alpha:1})
  193. .to(exportRoot.pro.oil_icon2, 0.2, {alpha:1})
  194. .to(exportRoot.pro.proImg, 1, {})
  195. .to(exportRoot.pro, 0.3, { alpha: 0, ease: Power0.easeIn })
  196. .to(exportRoot.pro, 1, {})
  197. return anim;
  198. }
  199. function oilIconAnim() {
  200. oilAnim();
  201. var video = "" , noice = "" , soup = "";
  202. if(dishIndex == 0){
  203. noice = createjs.Sound.play("hsr");//播放
  204. setTimeout(function(){
  205. video = createjs.Sound.play("oil");//播放
  206. }, 1000);
  207. }else if(dishIndex == 1){
  208. noice = createjs.Sound.play("qcdf");//播放
  209. setTimeout(function(){
  210. soup = createjs.Sound.play("soup");//播放
  211. }, 2000);
  212. }else if(dishIndex == 2){
  213. noice = createjs.Sound.play("swy");//播放
  214. }else{
  215. noice = createjs.Sound.play("ymc");//播放
  216. setTimeout(function(){
  217. video = createjs.Sound.play("oil");//播放
  218. }, 3000);
  219. }
  220. noice.volume = 1;
  221. video.volume = 0.2;
  222. soup.volume = 0.8;
  223. setTimeout(function(){
  224. video.paused = true;
  225. soup.paused = true;
  226. }, 4500);
  227. var anim = new TimelineMax({ repeat:10,delay:1});
  228. anim.to(exportRoot.pro.oil_icon2, 0.3, {y:"+=100",alpha:0})
  229. return anim;
  230. }
  231. function btnAnim(dom){
  232. var anim = new TimelineMax({ repeat:-1 });
  233. anim.to(dom, 0.3, { scale: "+=0.1", ease: Power0.easeIn })
  234. .to(dom, 0.3, { scale: "-=0.1", ease: Power0.easeIn })
  235. return anim;
  236. }
  237. function fadeInAnim(dom){
  238. var anim = new TimelineMax({ });
  239. anim.to(dom, 0.4, { alpha: 1, ease: Power0.easeIn })
  240. return anim;
  241. }
  242. function menuIconInAnim(dom){
  243. var anim = new TimelineMax({ });
  244. if(!dom.icon5){
  245. dom.icon5 = exportRoot.btn2;
  246. }
  247. anim.to(dom.icon1, 0.3, { alpha: 1, ease: Power0.easeIn })
  248. .to(dom.icon2, 0.3, { alpha: 1, ease: Power0.easeIn })
  249. .to(dom.icon3, 0.3, { alpha: 1, ease: Power0.easeIn })
  250. .to(dom.icon4, 0.3, { alpha: 1, ease: Power0.easeIn })
  251. .to(dom.icon5, 0.3, { alpha: 1, ease: Power0.easeIn })
  252. .to(exportRoot.btn2, 0.4, { alpha: 1, ease: Power0.easeIn })
  253. return anim;
  254. }
  255. function menuIconInAnim2(dom,callback){
  256. var anim = new TimelineMax({onComplete:callback });
  257. anim.to(dom.icon1, 0.3, { alpha: 1, ease: Power0.easeIn })
  258. .to(dom.icon2, 0.3, { alpha: 1, ease: Power0.easeIn })
  259. .to(dom.icon3, 0.3, { alpha: 1, ease: Power0.easeIn })
  260. .to(dom.icon4, 0.3, { alpha: 1, ease: Power0.easeIn })
  261. .to(dom.icon5, 0.3, { alpha: 1, ease: Power0.easeIn })
  262. return anim;
  263. }
  264. function materialEnterAnim(dom,delay){
  265. dom.scale = 0.1;
  266. delay = delay || 0.1;
  267. var anim = new TimelineMax({ delay:delay});
  268. anim.to(dom,1.2, { scale: 1, ease: Elastic.easeOut.config(1, 0.3) })
  269. return anim;
  270. }
  271. var cutDishArr = [];
  272. // 油麦菜
  273. var ymc_iconArr = [
  274. {
  275. x: exportRoot.plate.x + exportRoot.plate.ymc_icon1.x,
  276. y: exportRoot.plate.y + exportRoot.plate.ymc_icon1.y,
  277. width: 266,
  278. height: 187,
  279. isClear: false
  280. },
  281. {
  282. x: exportRoot.plate.x + exportRoot.plate.ymc_icon2.x,
  283. y: exportRoot.plate.y + exportRoot.plate.ymc_icon2.y,
  284. width: 103,
  285. height: 118,
  286. isClear: false
  287. },
  288. {
  289. x: exportRoot.plate.x + exportRoot.plate.ymc_icon3.x,
  290. y: exportRoot.plate.y + exportRoot.plate.ymc_icon3.y,
  291. width: 371,
  292. height: 144,
  293. isClear: false
  294. },
  295. {
  296. x: exportRoot.plate.x + exportRoot.plate.ymc_icon4.x,
  297. y: exportRoot.plate.y + exportRoot.plate.ymc_icon4.y,
  298. width: 86,
  299. height: 75,
  300. isClear: false
  301. }
  302. ]
  303. // 三文鱼
  304. var swy_iconArr = [
  305. {
  306. x: exportRoot.plate.x + exportRoot.plate.hsr_icon1.x,
  307. y: exportRoot.plate.y + exportRoot.plate.hsr_icon1.y,
  308. width: 262,
  309. height: 195,
  310. isClear: false
  311. }
  312. ]
  313. // 红烧肉的位置
  314. var hsr_iconArr = [{
  315. x: exportRoot.plate.x + exportRoot.plate.hsr_icon1.x,
  316. y: exportRoot.plate.y + exportRoot.plate.hsr_icon1.y,
  317. width: 202,
  318. height: 129,
  319. isClear: false
  320. },
  321. {
  322. x: exportRoot.plate.x + exportRoot.plate.hsr_icon2.x,
  323. y: exportRoot.plate.y + exportRoot.plate.hsr_icon2.y,
  324. width: 86,
  325. height: 75,
  326. isClear: false
  327. },
  328. {
  329. x: exportRoot.plate.x + exportRoot.plate.hsr_icon3.x,
  330. y: exportRoot.plate.y + exportRoot.plate.hsr_icon3.y,
  331. width: 371,
  332. height: 144,
  333. isClear: false
  334. },
  335. {
  336. x: exportRoot.plate.x + exportRoot.plate.hsr_icon4.x,
  337. y: exportRoot.plate.y + exportRoot.plate.hsr_icon4.y,
  338. width: 103,
  339. height: 118,
  340. isClear: false
  341. }
  342. ];
  343. // 青菜豆腐的位置
  344. var qcdf_iconArr = [{
  345. x: exportRoot.plate.x + exportRoot.plate.qcdf_icon1.x,
  346. y: exportRoot.plate.y + exportRoot.plate.qcdf_icon1.y,
  347. width: 169,
  348. height: 320,
  349. isClear: false
  350. },
  351. {
  352. x: exportRoot.plate.x + exportRoot.plate.qcdf_icon2.x,
  353. y: exportRoot.plate.y + exportRoot.plate.qcdf_icon2.y,
  354. width: 207,
  355. height: 144,
  356. isClear: false
  357. },
  358. {
  359. x: exportRoot.plate.x + exportRoot.plate.qcdf_icon3.x,
  360. y: exportRoot.plate.y + exportRoot.plate.qcdf_icon3.y,
  361. width: 103,
  362. height: 118,
  363. isClear: false
  364. },
  365. {
  366. x: exportRoot.plate.x + exportRoot.plate.qcdf_icon4.x,
  367. y: exportRoot.plate.y + exportRoot.plate.qcdf_icon4.y,
  368. width: 371,
  369. height: 144,
  370. isClear: false
  371. },
  372. {
  373. x: exportRoot.plate.x + exportRoot.plate.qcdf_icon5.x,
  374. y: exportRoot.plate.y + exportRoot.plate.qcdf_icon5.y,
  375. width: 86,
  376. height: 75,
  377. isClear: false
  378. }
  379. ]
  380. // 画线
  381. var lineArr = [];
  382. var lineTimr = null;
  383. var lineShape = new createjs.Shape();
  384. function drawLine() {
  385. var value = 40;
  386. lineTimr = setInterval(function() {
  387. lineShape.graphics.clear();
  388. lineShape.graphics.setStrokeStyle(8).beginStroke("#787878");
  389. if (lineArr.length) {
  390. lineShape.graphics.moveTo(lineArr[0].x, lineArr[0].y);
  391. }
  392. for (var i = 0; i < lineArr.length; i++) {
  393. var x = lineArr[i].x;
  394. var y = lineArr[i].y;
  395. lineShape.graphics.lineTo(x, y);
  396. for (var p = 0; p < cutDishArr.length; p++) {
  397. if (x-cutDishArr[p].width/3 > cutDishArr[p].x && x < (cutDishArr[p].x + cutDishArr[p].width)) {
  398. if (y-cutDishArr[p].height/3 > cutDishArr[p].y && y < (cutDishArr[p].y + cutDishArr[p].height)) {
  399. if (cutDishArr[p].isClear == false) {
  400. cutDishArr[p].isClear = true;
  401. if(dishIndex == 0){
  402. exportRoot.plate['hsr_icon' + (p + 1)].gotoAndStop(1);
  403. }else if(dishIndex == 1){
  404. exportRoot.plate['qcdf_icon' + (p + 1)].gotoAndStop(1);
  405. }else if(dishIndex == 2){
  406. exportRoot.plate.swy_icon1.gotoAndStop(1);
  407. }else{
  408. exportRoot.plate['ymc_icon' + (p + 1)].gotoAndStop(1);
  409. }
  410. }
  411. }
  412. }
  413. }
  414. }
  415. lineArr.splice(0, 1);
  416. }, 30)
  417. }
  418. // 画线事件
  419. drawLine();
  420. exportRoot.addEventListener("mousedown", function(event) {
  421. lineArr = [];
  422. var obj = {
  423. x: event.stageX,
  424. y: event.stageY,
  425. };
  426. lineArr.push(obj);
  427. createjs.Sound.play("cut");//播放
  428. })
  429. exportRoot.addEventListener("pressmove", function(event) {
  430. if (lineArr.length >= 15) {
  431. lineArr.splice(0, 1);
  432. }
  433. var obj = {
  434. x: event.stageX,
  435. y: event.stageY,
  436. };
  437. lineArr.push(obj);
  438. })
  439. exportRoot.addEventListener("pressup", function(event) {
  440. playbowlAnim();
  441. })
  442. var dishMoveIndex = 0;
  443. // 移动菜品
  444. function dishMove(dom,x,y) {
  445. var startX = 0;
  446. var startY = 0;
  447. var domFirst = $.extend(true, {}, dom);
  448. dom.addEventListener("mousedown", function(event) {
  449. startX = event.stageX;
  450. startY = event.stageY;
  451. })
  452. dom.addEventListener("pressmove", function(event) {
  453. dom.x -= (startX - event.stageX);
  454. dom.y -= (startY - event.stageY);
  455. startX = event.stageX;
  456. startY = event.stageY;
  457. })
  458. dom.addEventListener("pressup", function(event) {
  459. if (dom.x + exportRoot.plate.x > 80 && dom.y + exportRoot.plate.y > 518) {
  460. dom.x = 190 - exportRoot.plate.x + x;
  461. dom.y = 630 - exportRoot.plate.y + y;
  462. dom.removeAllEventListeners();
  463. if(dishIndex == 0){
  464. ++dishMoveIndex;
  465. if (dishMoveIndex >= 4) {
  466. exportRoot.btn1.alpha = 1;
  467. btnAnim(exportRoot.btn1);
  468. isAllInplate();
  469. }
  470. }else if(dishIndex == 1){
  471. ++dishMoveIndex;
  472. if (dishMoveIndex >= 5) {
  473. exportRoot.btn1.alpha = 1;
  474. btnAnim(exportRoot.btn1);
  475. isAllInplate();
  476. }
  477. }else if(dishIndex == 2){
  478. exportRoot.btn1.alpha = 1;
  479. btnAnim(exportRoot.btn1);
  480. isAllInplate();
  481. }else{
  482. ++dishMoveIndex;
  483. if (dishMoveIndex >= 4) {
  484. exportRoot.btn1.alpha = 1;
  485. btnAnim(exportRoot.btn1);
  486. isAllInplate();
  487. }
  488. }
  489. } else {
  490. dom.x = domFirst.x;
  491. dom.y = domFirst.y;
  492. }
  493. })
  494. }
  495. // 菜全部到盘子里
  496. function isAllInplate() {
  497. exportRoot.btn1.addEventListener("mousedown", function() {
  498. exportRoot.btn1.removeAllEventListeners();
  499. exportRoot.btn1.alpha = 0;
  500. exportRoot.pro.alpha = 1;
  501. if(dishIndex != 2){
  502. exportRoot.bowl.alpha = 0;
  503. exportRoot.plate.alpha = 0;
  504. exportRoot.pot.alpha = 1;
  505. }else{
  506. exportRoot.plate.instance.alpha = 0;
  507. exportRoot.plate.swy_icon2.alpha = 0;
  508. }
  509. if(dishIndex == 1){
  510. menuIconInAnim2(exportRoot.pot.qcdf,function(){
  511. oilIconAnim();
  512. proAnim(function() {
  513. exportRoot.btn2.alpha = 1;
  514. btnAnim(exportRoot.btn2);
  515. })
  516. });
  517. }else{
  518. oilIconAnim();
  519. proAnim(function() {
  520. btnAnim(exportRoot.btn2);
  521. if(dishIndex == 0){
  522. menuIconInAnim(exportRoot.pot.hsr);
  523. }else if(dishIndex == 3){
  524. menuIconInAnim(exportRoot.pot.ymc);
  525. }else{
  526. exportRoot.btn2.alpha = 1;
  527. }
  528. });
  529. }
  530. })
  531. exportRoot.btn2.addEventListener("mousedown", function() {
  532. exportRoot.btn2.removeAllEventListeners();
  533. exportRoot.btn2.alpha = 0;
  534. fadeInAnim(exportRoot.blackboard);
  535. materialEnterAnim(exportRoot.blackboard.material1,0.2);
  536. materialEnterAnim(exportRoot.blackboard.material2,0.4);
  537. materialEnterAnim(exportRoot.blackboard.material3,0.6);
  538. ballAnim(exportRoot.ball1);
  539. if(dishIndex == 0){
  540. exportRoot.pot.hsr.play();
  541. }else if(dishIndex == 1){
  542. exportRoot.pot.qcdf.play();
  543. }else{
  544. exportRoot.pot.ymc.play();
  545. }
  546. })
  547. exportRoot.blackboard.material1.addEventListener("mousedown", function() {
  548. exportRoot.blackboard.material1.removeAllEventListeners();
  549. exportRoot.blackboard.material2.removeAllEventListeners();
  550. exportRoot.blackboard.material3.removeAllEventListeners();
  551. chooseType = 3;
  552. $(".poster-mode").addClass("poster-bg3");
  553. exportRoot.ball1.alpha = 1;
  554. if(dishIndex == 0){
  555. $('#poster').attr('src','./img/poster/hsr_lv.png');
  556. }else if(dishIndex == 1){
  557. $('#poster').attr('src','./img/poster/qcdf_lv.png');
  558. }else if(dishIndex == 2){
  559. $('#poster').attr('src','./img/poster/swy_lv.png');
  560. }else{
  561. $('#poster').attr('src','./img/poster/ymc_lv.png');
  562. }
  563. materialAnim(exportRoot.blackboard.material1, 300, 180, function() {
  564. exportRoot.blackboard.material1.x -=300;
  565. exportRoot.blackboard.material1.y -=180;
  566. // $(".shake-mode").show();
  567. setTimeout(function(){ shakeInit(); }, 2000);
  568. if(dishIndex == 0){
  569. exportRoot.pot.hsr.play();
  570. }else if(dishIndex == 1){
  571. exportRoot.pot.qcdf.play();
  572. }else if(dishIndex == 2){
  573. exportRoot.bowl.oil.alpha = 0;
  574. exportRoot.plate['swy_icon1'].play();
  575. }else{
  576. exportRoot.pot.ymc.play();
  577. }
  578. });
  579. })
  580. exportRoot.blackboard.material2.addEventListener("mousedown", function() {
  581. exportRoot.blackboard.material1.removeAllEventListeners();
  582. exportRoot.blackboard.material2.removeAllEventListeners();
  583. exportRoot.blackboard.material3.removeAllEventListeners();
  584. chooseType = 2;
  585. $(".poster-mode").addClass("poster-bg2");
  586. exportRoot.ball1.gotoAndStop(1);
  587. exportRoot.ball1.alpha = 1;
  588. if(dishIndex == 0){
  589. $('#poster').attr('src','./img/poster/hsr_hei.png');
  590. }else if(dishIndex == 1){
  591. $('#poster').attr('src','./img/poster/qcdf_hei.png');
  592. }else if(dishIndex == 2){
  593. $('#poster').attr('src','./img/poster/swy_hei.png');
  594. }else{
  595. $('#poster').attr('src','./img/poster/ymc_hei.png');
  596. }
  597. materialAnim(exportRoot.blackboard.material2, 120, 180, function() {
  598. exportRoot.blackboard.material2.x -=120;
  599. exportRoot.blackboard.material2.y -=180;
  600. // $(".shake-mode").show();
  601. setTimeout(function(){ shakeInit(); }, 2000);
  602. if(dishIndex == 0){
  603. exportRoot.pot.hsr.play();
  604. }else if(dishIndex == 1){
  605. exportRoot.pot.qcdf.play();
  606. }else if(dishIndex == 2){
  607. exportRoot.bowl.oil.alpha = 0;
  608. exportRoot.plate['swy_icon1'].play();
  609. }else{
  610. exportRoot.pot.ymc.play();
  611. }
  612. });
  613. })
  614. exportRoot.blackboard.material3.addEventListener("mousedown", function() {
  615. exportRoot.blackboard.material1.removeAllEventListeners();
  616. exportRoot.blackboard.material2.removeAllEventListeners();
  617. exportRoot.blackboard.material3.removeAllEventListeners();
  618. chooseType = 1;
  619. $(".poster-mode").addClass("poster-bg1");
  620. exportRoot.ball1.gotoAndStop(2);
  621. exportRoot.ball1.alpha = 1;
  622. if(dishIndex == 0){
  623. $('#poster').attr('src','./img/poster/hsr_fen.png');
  624. }else if(dishIndex == 1){
  625. $('#poster').attr('src','./img/poster/qcdf_fen.png');
  626. }else if(dishIndex == 2){
  627. $('#poster').attr('src','./img/poster/swy_fen.png');
  628. }else{
  629. $('#poster').attr('src','./img/poster/ymc_fen.png');
  630. }
  631. materialAnim(exportRoot.blackboard.material3, -30, 180, function() {
  632. exportRoot.blackboard.material3.x +=30;
  633. exportRoot.blackboard.material3.y -=180;
  634. // $(".shake-mode").show();
  635. setTimeout(function(){ shakeInit(); }, 2000);
  636. if(dishIndex == 0){
  637. exportRoot.pot.hsr.play();
  638. }else if(dishIndex == 1){
  639. exportRoot.pot.qcdf.play();
  640. }else if(dishIndex == 2){
  641. exportRoot.bowl.oil.alpha = 0;
  642. exportRoot.plate['swy_icon1'].play();
  643. }else{
  644. exportRoot.pot.ymc.play();
  645. }
  646. });
  647. })
  648. }
  649. // 菜切完盘子上移动
  650. function playbowlAnim() {
  651. for (var i = 0; i < cutDishArr.length; i++) {
  652. if (cutDishArr[i].isClear == false) {
  653. return false;
  654. }
  655. }
  656. stage.removeChild(lineShape);
  657. clearInterval(lineTimr);
  658. exportRoot.removeAllEventListeners();
  659. bowlAnim(function() {
  660. $(".move-mode2").show();
  661. setTimeout(function(){ $(".move-mode2").hide(); }, 1500);
  662. if(dishIndex == 0){
  663. dishMove(exportRoot.plate.hsr_icon1,0,0);
  664. dishMove(exportRoot.plate.hsr_icon2,0,0);
  665. dishMove(exportRoot.plate.hsr_icon3,0,0);
  666. dishMove(exportRoot.plate.hsr_icon4,0,0);
  667. }else if(dishIndex == 1){
  668. dishMove(exportRoot.plate.qcdf_icon1,0,-80);
  669. dishMove(exportRoot.plate.qcdf_icon2,0,0);
  670. dishMove(exportRoot.plate.qcdf_icon3,0,0);
  671. dishMove(exportRoot.plate.qcdf_icon4,0,0);
  672. dishMove(exportRoot.plate.qcdf_icon5,0,0);
  673. }else if(dishIndex == 2){
  674. dishMove(exportRoot.plate.swy_icon1,120,100);
  675. }else{
  676. dishMove(exportRoot.plate.ymc_icon1,0,0);
  677. dishMove(exportRoot.plate.ymc_icon2,0,0);
  678. dishMove(exportRoot.plate.ymc_icon3,0,0);
  679. dishMove(exportRoot.plate.ymc_icon4,0,0);
  680. }
  681. });
  682. }
  683. function shakeInit() {
  684. var shake_cnt = 0;
  685. $(".shake-mode2").show();
  686. if (window.DeviceMotionEvent) {
  687. window.addEventListener('devicemotion', deviceMotionHandler, false);
  688. } else {
  689. alert('您的手机不支持摇一摇功能!');
  690. }
  691. //获取加速度信息
  692. //通过监听上一步获取到的x, y, z 值在一定时间范围内的变化率,进行设备是否有进行晃动的判断。
  693. //而为了防止正常移动的误判,需要给该变化率设置一个合适的临界值。
  694. var SHAKE_THRESHOLD = 10000; //阈值越大,触发摇晃事件时手机摇晃的程度越剧烈
  695. var last_update = 0;
  696. var x, y, z, last_x = 0,
  697. last_y = 0,
  698. last_z = 0;
  699. var createTime = false;
  700. function deviceMotionHandler(eventData) {
  701. var acceleration = eventData.accelerationIncludingGravity;
  702. var curTime = new Date().getTime();
  703. if ((curTime - last_update) > 10) {
  704. var diffTime = curTime - last_update;
  705. last_update = curTime;
  706. x = acceleration.x;
  707. y = acceleration.y;
  708. z = acceleration.z;
  709. var speed = Math.abs(x + y + z - last_x - last_y - last_z) / diffTime * 10000;
  710. if (speed > SHAKE_THRESHOLD) {
  711. if(!createTime) {
  712. createTime = true;
  713. var video = createjs.Sound.play("shake");//播放
  714. setTimeout(function(){ video.paused = true;createTime = false; }, 2500);
  715. }
  716. $(".shake-mode2").hide();
  717. $(".shake-mode").show();
  718. shake_cnt++;
  719. if(shake_cnt>2){
  720. setTimeout(function(){
  721. window.removeEventListener('devicemotion', deviceMotionHandler, false);
  722. exportRoot.pot.hsr.play();
  723. // exportRoot.btn3.alpha = 1;
  724. // btnAnim(exportRoot.btn3);
  725. // exportRoot.btn3.addEventListener("mousedown",function(){
  726. // exportRoot.btn3.removeAllEventListeners();
  727. // $(".poster-mode").fadeIn();
  728. // })
  729. if(document.location.href.indexOf('type') == -1){
  730. var href = document.location.href + (document.location.href.indexOf('?') > -1?'&':'?') + "type=" + chooseType + "&food=" + dishIndex;
  731. history.pushState("", "Title", href);
  732. }
  733. if(dishIndex == 0){
  734. exportRoot.pot.hsr.gotoAndStop(3);
  735. }else if(dishIndex == 1){
  736. exportRoot.pot.qcdf.gotoAndStop(3);
  737. }else if(dishIndex == 2){
  738. exportRoot.bowl.oil.alpha = 0;
  739. exportRoot.plate['swy_icon1'].gotoAndStop(2);
  740. }else{
  741. exportRoot.pot.ymc.gotoAndStop(3);
  742. }
  743. $(".shake-mode").fadeOut();
  744. // exportRoot.btn3.removeAllEventListeners();
  745. $(".poster-mode").fadeIn();
  746. },3000)
  747. }
  748. //dosomething
  749. $("#fire").addClass("anim-time");
  750. }else{
  751. $("#fire").removeClass("anim-time");
  752. }
  753. last_x = x;
  754. last_y = y;
  755. last_z = z;
  756. // 开始火的动画
  757. $("#fire").removeClass("js-an");
  758. }
  759. }
  760. }
  761. //Registers the "tick" event listener.
  762. function fnStartAnimation() {
  763. stage.addChild(exportRoot, lineShape);
  764. createjs.Ticker.timingMode = createjs.Ticker.RAF_SYNCHED;
  765. createjs.Ticker.addEventListener("tick", stage);
  766. }
  767. fnStartAnimation();
  768. stageBreakHandler();
  769. }
  770. function getInfo() {
  771. var ua = navigator.userAgent.toLowerCase();
  772. var isMobile = false;
  773. if (!!navigator.userAgent.match(/AppleWebKit.*Mobile.*/)) {
  774. isMobile = true;
  775. if (ua.match(/MicroMessenger/i) == "micromessenger") {
  776. type = 0;
  777. url = "https://open.weixin.qq.com/connect/oauth2/authorize?"
  778. +"appid=wx749c84daac654e1e&"
  779. +"redirect_uri=https://wx.ttkuaiban.com/minigame&"
  780. +"response_type=code&"
  781. +"scope=snsapi_userinfo&"//snsapi_userinfo
  782. +"state=1#wechat_redirect";
  783. }
  784. if (ua.match(/WeiBo/i) == "weibo") {
  785. type = 1;
  786. url = "https://api.weibo.com/oauth2/authorize?"
  787. +"client_id=2141531565&"
  788. +"response_type=code&"
  789. +"redirect_uri=https://wx.ttkuaiban.com/minigame/index.html"
  790. }
  791. } else {
  792. var ua = navigator.userAgent.toLowerCase();
  793. if (ua.match(/MicroMessenger/i) == "micromessenger") {
  794. type = 0;
  795. url = "https://open.weixin.qq.com/connect/oauth2/authorize?"
  796. +"appid=wx749c84daac654e1e&"
  797. +"redirect_uri=https://wx.ttkuaiban.com/minigame&"
  798. +"response_type=code&"
  799. +"scope=snsapi_userinfo&"//snsapi_userinfo
  800. +"state=1#wechat_redirect";
  801. }
  802. }
  803. if(URLParams['uid']) {
  804. $('#nameInput').hide();
  805. $('#nameText').show();
  806. $('#textInput').hide();
  807. $('#text').show();
  808. $('.replay-btn').hide();
  809. $('.secret-btn').hide();
  810. chooseType = URLParams['type'];
  811. dishType = URLParams['food'];
  812. $(".poster-mode").addClass("poster-bg" + chooseType);
  813. if(chooseType == 3) {
  814. if(dishType == 0){
  815. $('#poster').attr('src','./img/poster/hsr_lv.png');
  816. }else if(dishType == 1){
  817. $('#poster').attr('src','./img/poster/qcdf_lv.png');
  818. }else if(dishType == 2){
  819. $('#poster').attr('src','./img/poster/swy_lv.png');
  820. }else{
  821. $('#poster').attr('src','./img/poster/ymc_lv.png');
  822. }
  823. } else if(chooseType == 2) {
  824. if(dishType == 0){
  825. $('#poster').attr('src','./img/poster/hsr_hei.png');
  826. }else if(dishType == 1){
  827. $('#poster').attr('src','./img/poster/qcdf_hei.png');
  828. }else if(dishType == 2){
  829. $('#poster').attr('src','./img/poster/swy_hei.png');
  830. }else{
  831. $('#poster').attr('src','./img/poster/ymc_hei.png');
  832. }
  833. } else if(chooseType == 1) {
  834. if(dishType == 0){
  835. $('#poster').attr('src','./img/poster/hsr_fen.png');
  836. }else if(dishType == 1){
  837. $('#poster').attr('src','./img/poster/qcdf_fen.png');
  838. }else if(dishType == 2){
  839. $('#poster').attr('src','./img/poster/swy_fen.png');
  840. }else{
  841. $('#poster').attr('src','./img/poster/ymc_fen.png');
  842. }
  843. }
  844. getMsg();
  845. $(".poster-mode").fadeIn();
  846. } else {
  847. $('#nameInput').show();
  848. $('#nameText').hide();
  849. $('#textInput').show();
  850. $('#text').hide();
  851. $('.replay-btn').show();
  852. $('.secret-btn').show();
  853. init();
  854. if (isMobile && !window.ifDebug) {
  855. getMsg();
  856. }
  857. }
  858. }
  859. // 获取登陆信息
  860. function getMsg(){
  861. if(URLParams['uid'] || localStorage.userId){
  862. if(URLParams['uid']) {
  863. var uid = URLParams['uid'];
  864. var xhr=null;
  865. try{
  866. xhr=new XMLHttpRequest();
  867. }catch(e){
  868. xhr=new ActiveXObject("Microsoft.XMLHTTP");
  869. }
  870. xhr.open("post","news/show",true);
  871. xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
  872. xhr.send("id="+uid);
  873. xhr.onreadystatechange=function(){
  874. if(xhr.readyState==4){
  875. if(xhr.status==200){
  876. var msg = JSON.parse(xhr.response);
  877. if(msg.code == "ok") {
  878. window.user_info.uid = msg.data.id;
  879. window.user_info.logo = msg.data.headerPic;
  880. window.user_info.nickname = msg.data.nickName;
  881. window.user_info.namemsg = msg.data.message;
  882. window.user_info.textmsg = msg.data.message;
  883. $('.headimg-box img').attr("src", msg.data.headerPic);
  884. $('.user-info p').html(msg.data.nickName);
  885. $('#nameText').html(msg.data.receiver);
  886. $('#text').html(msg.data.message);
  887. }
  888. }else{
  889. console.log("错误"+xhr.status)
  890. }
  891. }
  892. }
  893. } else {
  894. window.user_info.uid = localStorage.userId;
  895. window.user_info.logo = localStorage.userPic;
  896. window.user_info.nickname = localStorage.userName;
  897. $('.headimg-box img').attr("src", localStorage.userPic);
  898. $('.user-info p').html(localStorage.userName);
  899. }
  900. }else {
  901. if(URLParams['code']){
  902. var code = URLParams['code'];
  903. var xhr=null;
  904. try{
  905. xhr=new XMLHttpRequest();
  906. }catch(e){
  907. xhr=new ActiveXObject("Microsoft.XMLHTTP");
  908. }
  909. xhr.open("post","user/weiXinLogin",true);
  910. xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
  911. xhr.send("code="+code+"&type="+type);
  912. xhr.onreadystatechange=function(){
  913. if(xhr.readyState==4){
  914. if(xhr.status==200){
  915. var msg = JSON.parse(xhr.response);
  916. if(msg.code == "ok") {
  917. window.user_info.uid = msg.data.id;
  918. localStorage.userId = msg.data.id;
  919. localStorage.userPic = msg.data.headerPic;
  920. localStorage.userName = msg.data.nickName;
  921. window.user_info.logo = msg.data.headerPic;
  922. window.user_info.nickname = msg.data.nickName;
  923. $('.headimg-box img').attr("src", msg.data.headerPic);
  924. $('.user-info p').html(msg.data.nickName);
  925. }
  926. }else{
  927. console.log("错误"+xhr.status)
  928. }
  929. }
  930. }
  931. } else {
  932. window.location.href = url;
  933. }
  934. }
  935. }
  936. function saveText() {
  937. var value = $('#textInput').val(),
  938. receiver = $('#nameInput').val();
  939. if(value == '' || receiver == '') {
  940. alert('请填写寄语');
  941. return false;
  942. }
  943. var xhr=null;
  944. try{
  945. xhr=new XMLHttpRequest();
  946. }catch(e){
  947. xhr=new ActiveXObject("Microsoft.XMLHTTP");
  948. }
  949. xhr.open("post","news/addNews",true);
  950. xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
  951. xhr.send("receiver="+receiver+"&message="+value+"&userId="+window.user_info.uid);
  952. xhr.onreadystatechange=function(){
  953. if(xhr.readyState==4){
  954. if(xhr.status==200){
  955. var msg = JSON.parse(xhr.response) , href = document.location.href;
  956. if(msg.code == "ok") {
  957. window.user_info.uid = msg.data.id;
  958. window.user_info.logo = msg.data.headerPic;
  959. window.user_info.nickname = msg.data.nickName;
  960. window.user_info.namemsg = msg.data.receiver;
  961. window.user_info.textmsg = msg.data.message;
  962. $('.headimg-box img').attr("src", msg.data.headerPic);
  963. $('.user-info p').html(msg.data.nickName);
  964. $('#nameInput').val(msg.data.receiver);
  965. $('#textInput').val(msg.data.message);
  966. if(document.location.href.indexOf('?') > -1){
  967. href = document.location.href + "&uid=" + msg.data.id;
  968. } else {
  969. href = document.location.href + "?uid=" + msg.data.id;
  970. }
  971. }
  972. if(href != document.location.href){
  973. history.pushState("", "Title", href);
  974. }
  975. //海报页面的微信分享
  976. shareWeixin(msg.data.message);
  977. }else{
  978. console.log("错误"+xhr.status)
  979. }
  980. }
  981. }
  982. }
  983. $(".replay-btn").on("click",function(){
  984. URLParams = new Array();
  985. window.location.href = "https://wx.ttkuaiban.com/minigame/";
  986. })
  987. function hiddenCover() {
  988. $("#cover").hide();
  989. }
  990. // 自适应
  991. var stageWidth, stageHeight, stageScale;
  992. function stageBreakHandler(event) {
  993. if (stageWidth != $(".warp").width() || stageHeight != $(".warp").height()) {
  994. stageWidth = $(".warp").width();
  995. stageHeight = $(".warp").height();
  996. stageScale = stageWidth / 640;
  997. canvas.style.width = 640 * stageScale + 'px';
  998. canvas.style.height = 1040 * stageScale + 'px';
  999. }
  1000. }