nettoyage changestate pour regler les problemes d'affichage, et changement de la couleur de la progressbar quand elle est a 100%

MenuNav
Pierre FERREIRA 2 years ago
parent ebb7e57ef4
commit 5360409526

@ -1,4 +1,4 @@
#Sat Apr 08 15:09:46 CEST 2023
#Sat Apr 08 15:31:37 CEST 2023
base.0=/home/UCA/piferreira/2A/Android/testsansgradle/ProjetAndroid/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex
renamed.0=classes.dex
path.0=classes.dex

@ -90,7 +90,7 @@ class MoleGridActivity : AppCompatActivity() {
//FIXME pas d'actualisation de l'état des taupes sur la vue
if (i.isDead()) {
i.changeState()
i.makeAlive()
i.onMoleStateChanged(i)
}
}
@ -178,7 +178,7 @@ class MoleGridActivity : AppCompatActivity() {
var deadMoles = moleList.filter { it.isDead() } // filtrer les taupes mortes uniquement
if (deadMoles.isNotEmpty()) {
var index = Random.nextInt(0, deadMoles.size)
moleList[moleList.indexOf(deadMoles[index])].changeState()
moleList[moleList.indexOf(deadMoles[index])].makeAlive() //ravive une taupe
moleList[moleList.indexOf(deadMoles[index])].onMoleStateChanged(moleList[moleList.indexOf(deadMoles[index])])
atLeastOneDead = false // réinitialiser la variable atLeastOneDead à false
launchMoleDisappearCoroutine(moleList[moleList.indexOf(deadMoles[index])])
@ -203,7 +203,7 @@ class MoleGridActivity : AppCompatActivity() {
delay(5000L) // attendre 5 secondes
if (!mole.isDead()){
mole.changeState() // mettre la taupe morte
mole.makeDead() // mettre la taupe morte
mole.onMoleStateChanged(mole) // notifier la vue
user.score -= 50
user.nbMiss += 1

@ -1,17 +1,21 @@
package iut.android.pierrepierre.model.Adapter
import MyViewHolder
import android.content.res.ColorStateList
import android.graphics.Color
import android.os.Build
import android.util.Log
import android.view.LayoutInflater
import android.view.ViewGroup
import android.widget.*
import androidx.annotation.RequiresApi
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import iut.android.pierrepierre.model.Class.Mole
import iut.android.pierrepierre.R
import iut.android.pierrepierre.model.Class.MoleObserver
import iut.android.pierrepierre.model.Class.User
class MyGridAdapter(var user: User, var MoleList: MutableList<Mole>, var progressBar: ProgressBar, var scoreDisplay: TextView) : RecyclerView.Adapter<MyViewHolder>(),
MoleObserver
{
@ -23,6 +27,7 @@ class MyGridAdapter(var user: User, var MoleList: MutableList<Mole>, var progres
return MyViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.moleitem, parent, false))
}
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.img.setImageResource(MoleList[position].pdp)
@ -32,6 +37,7 @@ class MyGridAdapter(var user: User, var MoleList: MutableList<Mole>, var progres
Log.d("passed", "if passed")
MoleList[position].takeHit() //kill + attribut les points
progressBar.progress = progressBar.progress + 10 //Augmentation de la progress bar
if (progressBar.progress == 100) progressBar.progressTintList = ColorStateList.valueOf(Color.WHITE)
user.score += 100
scoreDisplay.text = user.score.toString() //optimiser avec un observable ou bind ?
holder.img.setImageResource(MoleList[position].pdp)

@ -31,15 +31,38 @@ public class Mole (var dead : Boolean) : MoleObserver{
}
fun takeHit(){
this.dead = true
makeDead()
nbPoint += 100
changeState()
//changeState()
}
//FIXME dangereux
fun changeState(){
if(pdp == R.drawable.limule) pdp = R.drawable.limule_dead
else pdp = R.drawable.limule;
// fun changeState(){
// if(pdp == R.drawable.limule) pdp = R.drawable.limule_dead
// else pdp = R.drawable.limule;
// }
fun makeDead(){
if (!dead) {
this.dead = true
this.pdp = R.drawable.limule_dead
}
else{
System.out.print("cant kill a dead mole")
//throw ?
}
}
fun makeAlive(){
if(dead){
this.dead = false
this.pdp = R.drawable.limule
}
else{
System.out.print("cant revive a living mole")
//throw ?
}
}
}
Loading…
Cancel
Save