app.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. var HelloWorldLayer = cc.Layer.extend({
  2. ctor:function () {
  3. this._super();
  4. var self = this;
  5. var txt = cc.createSprite('@第1小时', {
  6. anchor: [0.5, 1.0],
  7. xy: [140, 1200],
  8. color: 'black',
  9. fontSize: 34
  10. });
  11. this.addChild(txt);
  12. this.hour = 1;
  13. var layer = cc.LayerColor.create(cc.color('rgba(255,255,255,255)'));
  14. layer.attr({
  15. 'zOrder': 10,
  16. 'xy' : [300, 1005]
  17. });
  18. this.addChild(layer);
  19. var fishman = cc.createSprite('fishman.png', {
  20. xy: [240, 1000],
  21. });
  22. this.addChild(fishman);
  23. var rope = cc.createSprite('rope.png', {
  24. anchor: [0.5, 1.0],
  25. xy: [370, 1000]
  26. });
  27. this.addChild(rope);
  28. var hook = cc.createSprite('hook.png', {
  29. xy: [0, 0]
  30. });
  31. rope.addChild(hook);
  32. this.hook = hook;
  33. this.bornFish(5);
  34. this.delegate(this, 'click', function(){
  35. //console.log('aaa');
  36. self.undelegate(self);
  37. //rope.scaleTo(7.5, 1.0, 0.2).act();
  38. rope.moveBy(7.5, cc.p(0, 850)).then(function(){
  39. self.gameOver();
  40. }).act();
  41. });
  42. var max = 5,t = 0;
  43. setInterval(function(){
  44. self.bornFish(cc.random(1, max));
  45. if(++t%10 == 0){
  46. max = (++max - 3) % 10 + 3;
  47. if(t%2 == 0){
  48. self.hour++;
  49. txt.setString('第'+self.hour+'小时');
  50. }
  51. }
  52. }, 1500);
  53. this.score = 0;
  54. // 微信分享的数据
  55. self.wxData = {
  56. "appId": "", // 服务号可以填写appId
  57. "imgUrl" : 'http://game.ikongzhong.cn/games/diaoyu/logo.png',
  58. "link" : 'http://game.ikongzhong.cn/games/diaoyu/',
  59. "desc" : '史上最寂寞的游戏:我钓的不是鱼,是寂寞',
  60. "title" : '钓鱼'
  61. };
  62. WeixinApi.ready(function(Api) {
  63. // 隐藏
  64. // Api.hideOptionMenu();
  65. // 显示
  66. // Api.showOptionMenu();
  67. // 分享的回调
  68. var wxCallbacks = {
  69. // 分享操作开始之前
  70. ready : function() {
  71. // 你可以在这里对分享的数据进行重组
  72. // alert("准备分享");
  73. },
  74. // 分享被用户自动取消
  75. cancel : function(resp) {
  76. // 你可以在你的页面上给用户一个小Tip,为什么要取消呢?
  77. // alert("分享被取消");
  78. },
  79. // 分享失败了
  80. fail : function(resp) {
  81. // 分享失败了,是不是可以告诉用户:不要紧,可能是网络问题,一会儿再试试?
  82. // alert("分享失败");
  83. },
  84. // 分享成功
  85. confirm : function(resp) {
  86. // 分享成功了,我们是不是可以做一些分享统计呢?
  87. //window.location.href='http://game.ikongzhong.cn/';
  88. // alert("分享成功");
  89. },
  90. // 整个分享过程结束
  91. all : function(resp) {
  92. // 如果你做的是一个鼓励用户进行分享的产品,在这里是不是可以给用户一些反馈了?
  93. // alert("分享结束");
  94. if(self.isGameOver){
  95. if(window.location) window.location.href = "http://game.ikongzhong.cn/games/diaoyu/";
  96. }
  97. }
  98. };
  99. // 用户点开右上角popup菜单后,点击分享给好友,会执行下面这个代码
  100. Api.shareToFriend(self.wxData, wxCallbacks);
  101. // 点击分享到朋友圈,会执行下面这个代码
  102. Api.shareToTimeline(self.wxData, wxCallbacks);
  103. // 点击分享到腾讯微博,会执行下面这个代码
  104. Api.shareToWeibo(self.wxData, wxCallbacks);
  105. });
  106. return true;
  107. },
  108. gameOver: function(){
  109. var self = this;
  110. this.isGameOver = true;
  111. var layerMask = cc.LayerColor.create(cc.color('rgba(0,0,0,128)'));
  112. layerMask.attr({
  113. zOrder: 88,
  114. opacity: 0
  115. });
  116. self.addChild(layerMask);
  117. if(self.score <= 0){
  118. self.wxData.desc = '蹲了'+self.hour+'个多小时,腿都麻了,我连半条鱼都木有调到';
  119. }else{
  120. self.wxData.desc = '经过'+self.hour+'个多小时的蹲点,我成功的钓到了'+self.score+'条小鱼儿';
  121. }
  122. var text = self.wxData.desc;
  123. layerMask.delay(0.5).then(function(){
  124. layerMask.attr('opacity', 128);
  125. var share = cc.createSprite('http://game.ikongzhong.cn/games/diaoyu/share.png', {
  126. anchor: [1.0, 1.0],
  127. xy: [720, 1280],
  128. opacity: 0,
  129. scale: 0.5
  130. });
  131. layerMask.addChild(share);
  132. share.fadeIn(0.5).act();
  133. self.delegate(layerMask, 'click', function(){
  134. layerMask.fadeOut(0.5).then(function(){
  135. self.getParent().reload();
  136. }).act();
  137. });
  138. var result = cc.createSprite('@'+text, {
  139. xy: [360, 720],
  140. fontSize: 46,
  141. size: [700, 300],
  142. textAlign: 'center'
  143. });
  144. layerMask.addChild(result);
  145. var again = cc.createSprite('@再玩一次', {
  146. xy: [360, 420],
  147. fontSize: 46,
  148. size: [700, 300],
  149. textAlign: 'center'
  150. });
  151. layerMask.addChild(again);
  152. }).act();
  153. },
  154. bornFish: function(n){
  155. var self = this;
  156. for(var i = 0; i < n; i++){
  157. var flippedX = cc.random([0, 180]);
  158. var speedX = flippedX == 180 ? -cc.random(20, 100) : cc.random(20, 100);
  159. var fish = cc.createSprite('fish.png', {
  160. xy: [flippedX == 180 ? -40 : 760, cc.random(150, 850)],
  161. flippedX: [flippedX]
  162. });
  163. this.addChild(fish);
  164. (function(fish){
  165. var fishTimer = setInterval(function(){
  166. var box = self.hook.getBoundingBoxToWorld();
  167. var fbox = fish.getBoundingBoxToWorld();
  168. if(cc.rectIntersectsRect(box, fbox)){
  169. clearInterval(fishTimer);
  170. fish.stopAllActions();
  171. fish.removeFromParent(false);
  172. self.hook.addChild(fish);
  173. fish.attr({
  174. 'xy': [0, 0],
  175. rotationX: 90,
  176. flippedX: 0
  177. });
  178. self.score++;
  179. }
  180. }, 20);
  181. fish.moveBy(860 / Math.abs(speedX), cc.p(flippedX == 180 ? 860 : -860, 0)).then(function(){
  182. clearInterval(fishTimer);
  183. fish.removeFromParent(true);
  184. }).act();
  185. })(fish);
  186. }
  187. },
  188. backClicked: function(){
  189. //cc.log('end');
  190. cc.director.end();
  191. }
  192. });
  193. var HelloWorldScene = cc.Scene.extend({
  194. onEnter:function () {
  195. this._super();
  196. var layer = new HelloWorldLayer();
  197. this.addChild(layer);
  198. }
  199. });