Selaa lähdekoodia

1.优化代码

王鹏鹏 2 vuotta sitten
vanhempi
commit
cd25e28e80

+ 14 - 0
baselib/src/main/java/com/yingyangfly/baselib/utils/RxBusCodes.kt

@@ -30,9 +30,23 @@ object RxBusCodes {
     //加载语音
     const val EVALUATE_ORDER = 9007
 
+    /**
+     * 游戏计时
+     */
     const val SETTIME = "setTime"
 
+    /**
+     * 游戏分数
+     */
     const val SETSCORE = "setScore"
 
+    /**
+     * 游戏关卡
+     */
     const val SETLEVEL = "setLevel"
+
+    /**
+     * 保存游戏进度
+     */
+    const val SAVEDATA = "saveData"
 }

+ 7 - 0
game/src/main/java/com/yingyangfly/game/entity/GameBean.java

@@ -1,5 +1,7 @@
 package com.yingyangfly.game.entity;
 
+import android.text.TextUtils;
+
 import java.io.Serializable;
 
 /**
@@ -76,6 +78,11 @@ public class GameBean implements Serializable {
     }
 
     public String getGameDuration() {
+        if (!TextUtils.isEmpty(gameDuration)) {
+            long date = Long.parseLong(gameDuration);
+            Long time = date / 1000;
+            return String.valueOf(time);
+        }
         return gameDuration;
     }
 

+ 43 - 0
game/src/main/java/com/yingyangfly/game/entity/GameDataBean.java

@@ -0,0 +1,43 @@
+package com.yingyangfly.game.entity;
+
+/**
+ * 保存游戏进度
+ */
+public class GameDataBean {
+    private String curLevel;//当前关卡
+    private String curLevelScore;//当前关卡分数
+    private String curLevelTime;//当前关卡时间
+    private String isPass;//0成功 1失败
+
+    public String getCurLevel() {
+        return curLevel;
+    }
+
+    public void setCurLevel(String curLevel) {
+        this.curLevel = curLevel;
+    }
+
+    public String getCurLevelScore() {
+        return curLevelScore;
+    }
+
+    public void setCurLevelScore(String curLevelScore) {
+        this.curLevelScore = curLevelScore;
+    }
+
+    public String getCurLevelTime() {
+        return curLevelTime;
+    }
+
+    public void setCurLevelTime(String curLevelTime) {
+        this.curLevelTime = curLevelTime;
+    }
+
+    public String getIsPass() {
+        return isPass;
+    }
+
+    public void setIsPass(String isPass) {
+        this.isPass = isPass;
+    }
+}

+ 13 - 0
game/src/main/java/com/yingyangfly/game/entity/GetSaveGameRecordBean.kt

@@ -0,0 +1,13 @@
+package com.yingyangfly.game.entity
+
+/**
+ * 保存游戏进度bean
+ */
+class GetSaveGameRecordBean {
+    var duration: String = ""
+    var gameCode: String = ""
+    var gameLevel: String = ""
+    var gameScore: String = ""
+    var isPass: String = ""
+    var playClass: String = ""
+}

+ 6 - 0
game/src/main/java/com/yingyangfly/game/net/GameApiService.kt

@@ -13,4 +13,10 @@ interface GameApiService {
      */
     @POST("app/game/detailByCode")
     suspend fun getGameDetailByCode(@Body requestBody: RequestBody): BaseResp<GameBean>
+
+    /**
+     * 保存游戏进度
+     */
+    @POST("game/play/record/save")
+    suspend fun saveGameRecord(@Body requestBody: RequestBody): BaseResp<GameBean>
 }

+ 26 - 5
game/src/main/java/com/yingyangfly/game/play/PlayGameActivity.kt

@@ -3,6 +3,7 @@ package com.yingyangfly.game.play
 import android.annotation.SuppressLint
 import android.os.Build
 import android.os.Bundle
+import android.util.Log
 import android.webkit.WebResourceRequest
 import android.webkit.WebSettings
 import android.webkit.WebView
@@ -13,10 +14,12 @@ import com.yingyangfly.baselib.R
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
+import com.yingyangfly.baselib.utils.GsonUtil
 import com.yingyangfly.baselib.utils.LiveEventBusUtil
 import com.yingyangfly.baselib.utils.RxBusCodes
 import com.yingyangfly.game.databinding.ActivityPlayGameBinding
 import com.yingyangfly.game.entity.GameBean
+import com.yingyangfly.game.entity.GameDataBean
 import com.yingyangfly.game.utils.AndroidToJs
 
 /**
@@ -35,10 +38,11 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
 
     override fun initViews() {
         if (gameBean != null) {
-            val url =
-                gameBean!!.gameUrl + "?startLv=" + gameBean!!.gameLevel + "&maxLv=" + gameBean!!.totalNum +
-                        "&gameSetTime=" + gameBean!!.gameDuration + "&difficultyRate=" + gameBean!!.gameDifficultyRate +
-                        "&totalTime=" + gameBean!!.gameTotalTime + "&totalScore=" + gameBean!!.gameTotalScore
+            val url = gameBean!!.gameUrl + "?startLv=" + gameBean!!.gameLevel + "&maxLv=" +
+                    gameBean!!.totalNum + "&gameSetTime=" + gameBean!!.gameDuration + "&difficultyRate=" +
+                    gameBean!!.gameDifficultyRate + "&totalTime=" + gameBean!!.gameTotalTime +
+                    "&totalScore=" + gameBean!!.gameTotalScore
+            Log.e("wpp", url)
             initWebView(url)
         } else {
             "数据错误".toast()
@@ -54,21 +58,38 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
             .asGif()
             .load(R.drawable.fish)
             .into(binding.loadingImage)
-
         //游戏时间
         LiveEventBusUtil.observer<String>(this, RxBusCodes.SETTIME) {
             binding.tvTime.post {
+                val data = it.split("setTime:")
+                Log.e("wpp", "setTime:"+data)
                 binding.tvTime.text = it
             }
         }
         //分数
         LiveEventBusUtil.observer<String>(this, RxBusCodes.SETSCORE) {
             binding.tvScore.post {
+                val data = it.split("setScore:")
+                Log.e("wpp", "setScore:"+data)
                 binding.tvScore.text = it
             }
         }
+        //游戏进度
+        LiveEventBusUtil.observer<String>(this, RxBusCodes.SAVEDATA) {
+            binding.tvScore.post {
+                Log.e("wpp", it)
+                val data = it.split("saveData:")
+                if (data.isNullOrEmpty().not()) {
+                    if (data[1].isNullOrEmpty().not()) {
+                        Log.e("wpp", data[1])
+//                        var gameDataBean = GsonUtil.GsonToBean(data[1], GameDataBean::class.java)
 
 
+                    }
+                }
+
+            }
+        }
     }
 
     @SuppressLint("JavascriptInterface", "SetJavaScriptEnabled")

+ 6 - 9
game/src/main/java/com/yingyangfly/game/play/PlayGameViewModel.kt

@@ -4,7 +4,8 @@ import com.yingyangfly.baselib.mvvm.BaseViewModel
 import com.yingyangfly.baselib.net.XUtils
 import com.yingyangfly.baselib.utils.GsonUtil
 import com.yingyangfly.game.entity.GameBean
-import com.yingyangfly.game.entity.GetGameDetailByCodeBean
+import com.yingyangfly.game.entity.GameDataBean
+import com.yingyangfly.game.entity.GetSaveGameRecordBean
 import com.yingyangfly.game.net.GAME_API
 
 /**
@@ -14,18 +15,14 @@ class PlayGameViewModel : BaseViewModel() {
     /**
      * 获取游戏详情
      */
-    fun getGameDetailByCode(
-        code: String,
-        playClasses: String,
+    fun saveGameRecord(
+        bean: GameDataBean,
         fail: ((msg: String) -> Unit)? = null,
         success: ((success: GameBean?) -> Unit)? = null,
     ) = launchFlow(false) {
-        val requestBean = GetGameDetailByCodeBean().apply {
-            gameCode = code
-            playClass = playClasses
-        }
+        val requestBean = GetSaveGameRecordBean()
         val body = XUtils.createJson(GsonUtil.GsonString(requestBean))
-        GAME_API.getGameDetailByCode(body)
+        GAME_API.saveGameRecord(body)
     }.runUI(
         success,
         fail

+ 2 - 0
game/src/main/java/com/yingyangfly/game/utils/AndroidToJs.kt

@@ -21,6 +21,8 @@ class AndroidToJs() : Any() {
                 LiveEventBusUtil.send(RxBusCodes.SETSCORE, msg)
             } else if (msg?.contains("setLevel") == true) {
                 LiveEventBusUtil.send(RxBusCodes.SETLEVEL, msg)
+            }else if (msg?.contains("saveData") == true) {
+                LiveEventBusUtil.send(RxBusCodes.SAVEDATA, msg)
             }
         }
     }