Browse Source

1.添加游戏结果弹窗

王鹏鹏 2 years ago
parent
commit
2d65c025c7

+ 5 - 5
game/src/main/java/com/yingyangfly/game/dialog/GameResultDialog.kt

@@ -7,8 +7,8 @@ import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.appcompat.widget.AppCompatButton
+import androidx.appcompat.widget.AppCompatImageView
 import androidx.appcompat.widget.AppCompatTextView
-import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.fragment.app.DialogFragment
 import com.gyf.immersionbar.BarHide
 import com.gyf.immersionbar.ktx.immersionBar
@@ -20,7 +20,7 @@ import com.yingyangfly.game.R
  */
 class GameResultDialog : DialogFragment() {
 
-    private var gameLayout: ConstraintLayout? = null
+    private var imageBackground: AppCompatImageView? = null
     private var tvGameLevel: AppCompatTextView? = null
     private var tvTotalGameScore: AppCompatTextView? = null
     private var tvGameScore: AppCompatTextView? = null
@@ -71,7 +71,7 @@ class GameResultDialog : DialogFragment() {
     }
 
     private fun findId(rootView: View) {
-        gameLayout = rootView.findViewById(R.id.gameLayout)
+        imageBackground = rootView.findViewById(R.id.imageBackground)
         tvGameLevel = rootView.findViewById(R.id.tvGameLevel)
         tvTotalGameScore = rootView.findViewById(R.id.tvTotalGameScore)
         tvGameScore = rootView.findViewById(R.id.tvGameScore)
@@ -82,9 +82,9 @@ class GameResultDialog : DialogFragment() {
     @SuppressLint("SetTextI18n")
     private fun initData() {
         if (TextUtils.equals("1", isPass)) {
-            gameLayout?.setBackgroundResource(R.mipmap.icon_game_fail)
+            imageBackground?.setBackgroundResource(R.mipmap.icon_game_fail)
         } else {
-            gameLayout?.setBackgroundResource(R.mipmap.icon_game_success)
+            imageBackground?.setBackgroundResource(R.mipmap.icon_game_success)
         }
         tvGameLevel?.text = "当前关卡:$curLevel"
         tvTotalGameScore?.text = "总得分:" + totalScore + "分"

+ 23 - 20
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.text.TextUtils
 import android.util.Log
 import android.view.MotionEvent
 import android.view.View
@@ -72,39 +73,32 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
         //游戏时间
         LiveEventBusUtil.observer<String>(this, RxBusCodes.SETTIME) {
             binding.tvTime.post {
-                val data = it.split("setTime:")
-                Log.e("wpp", "setTime:" + data)
-                binding.tvTime.text = it
+                if (TextUtils.isEmpty(it).not()) {
+                    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
+                if (TextUtils.isEmpty(it).not()) {
+                    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])
-                        val gameDataBean = GsonUtil.GsonToBean(data[1], GameDataBean::class.java)
-                        if (gameDataBean != null) {
-                            saveData(gameDataBean)
-                        }
+                if (TextUtils.isEmpty(it).not()) {
+                    Log.e("wpp", it)
+                    val gameDataBean = GsonUtil.GsonToBean(it, GameDataBean::class.java)
+                    if (gameDataBean != null) {
+                        saveData(gameDataBean)
                     }
                 }
 
             }
         }
-        gameResultDialog = GameResultDialog()
-        gameResultDialog?.setData("2", "120", "50", "1")
-        gameResultDialog?.show(supportFragmentManager, "gameResultDialog")
     }
 
     /**
@@ -112,9 +106,18 @@ class PlayGameActivity : BaseMVVMActivity<ActivityPlayGameBinding, PlayGameViewM
      */
     private fun saveData(gameDataBean: GameDataBean) {
         viewModel.saveGameRecord(gameBean!!.gameCode, gameBean!!.playClass, gameDataBean, fail = {
-
+            it.toast()
         }, success = {
-
+            runOnUiThread {
+                gameResultDialog = GameResultDialog()
+                gameResultDialog?.setData(
+                    gameDataBean.curLevel,
+                    gameBean!!.gameTotalScore,
+                    gameDataBean.curLevelScore,
+                    gameDataBean.isPass
+                )
+                gameResultDialog?.show(supportFragmentManager, "gameResultDialog")
+            }
         })
     }
 

+ 9 - 5
game/src/main/java/com/yingyangfly/game/utils/AndroidToJs.kt

@@ -16,13 +16,17 @@ class AndroidToJs() : Any() {
     fun performAndroidMethod(msg: String?) {
         if (msg.isNullOrEmpty().not()) {
             if (msg?.contains("setTime") == true) {
-                LiveEventBusUtil.send(RxBusCodes.SETTIME, msg)
+                val data = msg.split("setTime:")
+                LiveEventBusUtil.send(RxBusCodes.SETTIME, data[1])
             } else if (msg?.contains("setScore") == true) {
-                LiveEventBusUtil.send(RxBusCodes.SETSCORE, msg)
+                val data = msg.split("setScore:")
+                LiveEventBusUtil.send(RxBusCodes.SETSCORE, data[1])
             } else if (msg?.contains("setLevel") == true) {
-                LiveEventBusUtil.send(RxBusCodes.SETLEVEL, msg)
-            }else if (msg?.contains("saveData") == true) {
-                LiveEventBusUtil.send(RxBusCodes.SAVEDATA, msg)
+                val data = msg.split("setLevel:")
+                LiveEventBusUtil.send(RxBusCodes.SETLEVEL, data[1])
+            } else if (msg?.contains("saveData") == true) {
+                val data = msg.split("saveData:")
+                LiveEventBusUtil.send(RxBusCodes.SAVEDATA, data[1])
             }
         }
     }

+ 1 - 0
game/src/main/res/layout/activity_play_game.xml

@@ -79,6 +79,7 @@
             android:layout_marginTop="@dimen/divider_154px"
             android:layout_marginEnd="@dimen/divider_51px"
             android:background="@drawable/bg_game_score"
+            android:gravity="center"
             android:textColor="@color/color_FFFFA413"
             android:textSize="@dimen/divider_48px"
             app:layout_constraintEnd_toEndOf="parent"

+ 79 - 66
game/src/main/res/layout/dialog_game_result.xml

@@ -6,7 +6,7 @@
     android:layout_height="match_parent"
     tools:ignore="ResourceName">
 
-    <androidx.constraintlayout.widget.ConstraintLayout
+    <FrameLayout
         android:id="@+id/gameLayout"
         android:layout_width="@dimen/divider_656px"
         android:layout_height="@dimen/divider_464px"
@@ -15,73 +15,86 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent">
 
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tvGameLevel"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="@dimen/divider_139px"
-            android:textColor="@color/color_FF5F3100"
-            android:textSize="@dimen/divider_42px"
-            android:textStyle="bold"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            tools:text="当前关卡:第二关" />
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/imageBackground"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
 
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tvTotalGameScore"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="@dimen/divider_92px"
-            android:layout_marginTop="@dimen/divider_19px"
-            android:textColor="@color/color_FF5F3100"
-            android:textSize="@dimen/divider_32px"
-            android:textStyle="bold"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/tvGameLevel"
-            tools:text="总得分:80分" />
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
 
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tvGameScore"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="@dimen/divider_19px"
-            android:layout_marginEnd="@dimen/divider_93px"
-            android:textColor="@color/color_FF5F3100"
-            android:textSize="@dimen/divider_32px"
-            android:textStyle="bold"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/tvGameLevel"
-            tools:text="本关得分:80分" />
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/tvGameLevel"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/divider_139px"
+                android:textColor="@color/color_FF5F3100"
+                android:textSize="@dimen/divider_42px"
+                android:textStyle="bold"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent"
+                tools:text="当前关卡:第二关" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/tvTotalGameScore"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/divider_92px"
+                android:layout_marginTop="@dimen/divider_19px"
+                android:textColor="@color/color_FF5F3100"
+                android:textSize="@dimen/divider_32px"
+                android:textStyle="bold"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/tvGameLevel"
+                tools:text="总得分:80分" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/tvGameScore"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/divider_19px"
+                android:layout_marginEnd="@dimen/divider_93px"
+                android:textColor="@color/color_FF5F3100"
+                android:textSize="@dimen/divider_32px"
+                android:textStyle="bold"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/tvGameLevel"
+                tools:text="本关得分:80分" />
+
+            <androidx.appcompat.widget.AppCompatButton
+                android:id="@+id/btnHome"
+                android:layout_width="@dimen/divider_274px"
+                android:layout_height="@dimen/divider_96px"
+                android:layout_marginStart="@dimen/divider_44px"
+                android:layout_marginTop="@dimen/divider_39px"
+                android:background="@mipmap/icon_back_home"
+                android:gravity="center"
+                android:text="@string/homepage"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_38px"
+                android:textStyle="bold"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/tvTotalGameScore" />
+
+            <androidx.appcompat.widget.AppCompatButton
+                android:id="@+id/btnContinueThisLevel"
+                android:layout_width="@dimen/divider_274px"
+                android:layout_height="@dimen/divider_96px"
+                android:layout_marginStart="@dimen/divider_19px"
+                android:layout_marginTop="@dimen/divider_39px"
+                android:background="@mipmap/icon_continue_this_level"
+                android:gravity="center"
+                android:text="@string/continue_this_level"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_38px"
+                android:textStyle="bold"
+                app:layout_constraintStart_toEndOf="@+id/btnHome"
+                app:layout_constraintTop_toBottomOf="@+id/tvTotalGameScore" />
+        </androidx.constraintlayout.widget.ConstraintLayout>
+
+    </FrameLayout>
 
-        <androidx.appcompat.widget.AppCompatButton
-            android:id="@+id/btnHome"
-            android:layout_width="@dimen/divider_274px"
-            android:layout_height="@dimen/divider_96px"
-            android:layout_marginStart="@dimen/divider_44px"
-            android:layout_marginTop="@dimen/divider_39px"
-            android:background="@mipmap/icon_back_home"
-            android:gravity="center"
-            android:text="@string/homepage"
-            android:textColor="@android:color/white"
-            android:textSize="@dimen/divider_38px"
-            android:textStyle="bold"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/tvTotalGameScore" />
 
-        <androidx.appcompat.widget.AppCompatButton
-            android:id="@+id/btnContinueThisLevel"
-            android:layout_width="@dimen/divider_274px"
-            android:layout_height="@dimen/divider_96px"
-            android:layout_marginStart="@dimen/divider_19px"
-            android:layout_marginTop="@dimen/divider_39px"
-            android:background="@mipmap/icon_continue_this_level"
-            android:gravity="center"
-            android:text="@string/continue_this_level"
-            android:textColor="@android:color/white"
-            android:textSize="@dimen/divider_38px"
-            android:textStyle="bold"
-            app:layout_constraintStart_toEndOf="@+id/btnHome"
-            app:layout_constraintTop_toBottomOf="@+id/tvTotalGameScore" />
-    </androidx.constraintlayout.widget.ConstraintLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>