Bläddra i källkod

转盘功能完成

zouyong 5 år sedan
förälder
incheckning
13993d292f

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 159 - 154
assets/resources/module/turnable/turnable.prefab


+ 2 - 2
assets/resources/module/turnable/turnableitem.prefab

@@ -107,7 +107,7 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 128,
+      "width": 74,
       "height": 94
     },
     "_anchorPoint": {
@@ -160,7 +160,7 @@
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
-      "__uuid__": "90285806-551f-49ec-af5b-d8aea2c938b4"
+      "__uuid__": "62ea210d-7b98-4731-8cc9-607c79a69ff9"
     },
     "_type": 0,
     "_sizeMode": 1,

+ 3 - 3
assets/script/game/data/AdData.ts

@@ -27,7 +27,7 @@ export class AdData {
 
 
     public init() {
-        this.datas = [,null, null, null, gData.turnable, gData.sign, gData.luckybag];
+        this.datas = [, null, null, null, gData.turnable, gData.sign, gData.luckybag];
     }
 
 
@@ -60,8 +60,8 @@ export class AdData {
             return;
         }
 
-        if(this.datas[this.ad_subType]){
-            this.datas[this.ad_subType].adData = response.data;
+        if (this.datas[this.ad_subType]) {
+            this.datas[this.ad_subType].setAdData(response.data);
         }
     }
 

+ 3 - 0
assets/script/game/data/GData.ts

@@ -14,6 +14,7 @@ import { LuckyBagData } from "./module/LuckyBagData";
 import { CashNormalData } from "./module/CashNormalData";
 import { CashPigData } from "./module/CashPigData";
 import { AdData } from "./AdData";
+import { RewardData } from "./module/RewardData";
 
 /**
  * 数据集合全局类
@@ -34,6 +35,7 @@ class GData {
     public storageData: StorageData;
 
     //module
+    public reward: RewardData;
     public help: HelpData;
     public push: PushData;
     public turnable: TurnableData;
@@ -53,6 +55,7 @@ class GData {
         this.adData = new AdData();
         this.storageData = new StorageData();
 
+        this.reward = new RewardData();
         this.help = new HelpData();
         this.pigbank = new PigBankData();
         this.push = new PushData();

+ 3 - 2
assets/script/game/data/GameData.ts

@@ -82,9 +82,10 @@ export class GameData {
     /** 获取属性 */
     public getProp(key: GameProp): number {
         if (this.props == null) {
-            return null;
+            return 0;
         }
-        return this.props.get(key);
+        let value = this.props.get(key);
+        return value == null ? 0 : value;
     }
 
     /**

+ 10 - 0
assets/script/game/data/module/RewardData.ts

@@ -0,0 +1,10 @@
+import { Data } from "../../../mk/data/Data";
+
+/**
+ * @description 奖励数据
+ * @author 邹勇
+ */
+ export class RewardData extends Data{
+
+    data:any;
+}

+ 9 - 0
assets/script/game/data/module/RewardData.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.8",
+  "uuid": "28b82b9c-d65c-4cfe-b41f-72ca68630c83",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 11 - 5
assets/script/game/data/module/TurnableData.ts

@@ -1,19 +1,25 @@
 import { Data } from "../../../mk/data/Data";
+import { GameProp } from "../GameData";
 
 /**
  * @description 转盘数据
  * @author 邹勇
  */
- export class TurnableData extends Data{
+export class TurnableData extends Data {
 
 
-    public leftTimes:number = 2;
+    public leftTimes: number = 2;
 
 
-    
+    public setAdData(data) {
+        super.setAdData(data);
 
-    
-    public async draw(){
+        this.leftTimes = this.leftTimes < 1 ? 0 : this.leftTimes - 1;
+        gData.gameData.setProp(GameProp.turnable_leftTimes, this.leftTimes);
+    }
+
+
+    public async draw() {
         let data = {};
         let response = await mk.http.sendRequest('turnable', 'POST', JSON.stringify(data));
         if (response.errcode != 0) {

+ 25 - 12
assets/script/game/module/module/turntable/Turnable.ts

@@ -1,4 +1,6 @@
+import { PanelType } from "../../../../mk/system/UISystem";
 import { AdFun } from "../../../data/AdData";
+import { GameProp } from "../../../data/GameData";
 import TurnableItem from "./TurnableItem";
 
 const { ccclass, property } = cc._decorator;
@@ -28,36 +30,47 @@ export default class Turnable extends cc.Component {
     private initData() {
         for (let i = 0; i < this.node_items.length; i++) {
             let sc = this.node_items[i].getComponent(TurnableItem);
-            sc.initData(i + "");
+            sc.initData((i % 3 + 1) + "");
         }
         this.updateLeftTimes();
     }
 
     /** 点击抽奖 */
     clickDraw() {
-        if (gData.turnable.leftTimes > 0 && !this.isPlaying) {
-            this.isPlaying = true;
+        if (gData.turnable.leftTimes > 0) {
             gData.adData.watchVideo(AdFun.turntable);
         }
     }
 
-    private draw() {
-        gData.turnable.leftTimes--;
-        this.node_turn.rotation = 1800;
+    private play() {
+        this.isPlaying = true;
+        this.node_turn.angle = 1800;
         let index = 2;
         let tar = index * 60;
         cc.tween(this.node_turn)
-            .to(3, { rotation: tar }, { easing: 'expoInOut' })
-            .call(() => {
-                this.updateLeftTimes();
-            }, this).start();
+            .to(3, { angle: tar }, { easing: 'expoInOut' })
+            .call(this.playOver, this).start();
     }
 
-    updateLeftTimes(){
+    private playOver(){
+        this.isPlaying = false;
+        this.updateLeftTimes();
+        mk.ui.openPanel("reward",PanelType.module);
+    }
+
+    updateLeftTimes() {
         this.lbl_left.string = `剩余:<color=#FFED99>${gData.turnable.leftTimes}</color>次`;
     }
 
     update() {
-        
+        if (gData.turnable.adData) {
+            this.play();
+            gData.reward.data = gData.turnable.adData;
+            gData.turnable.adData = null;
+        }
+    }
+
+    onDestroy() {
+
     }
 }

+ 4 - 0
assets/script/mk/data/Data.ts

@@ -6,4 +6,8 @@ export class Data {
     
     /** 视频广告后的奖励数据 */
     public adData:any;
+
+    public setAdData(data){
+        this.adData = data;
+    }
 }

Vissa filer visades inte eftersom för många filer har ändrats