mise des classe pour les moles, et implémentation de la secousse qui changes les états, mais probleme de listener

MenuNav
Pierre FERREIRA 2 years ago
parent 67648c82e4
commit e762642017

@ -1,4 +1,4 @@
#Fri Mar 31 16:41:03 CEST 2023 #Fri Mar 31 17:27:07 CEST 2023
base.0=/home/UCA/piferreira/2A/Android/ProjetAndroid/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex base.0=/home/UCA/piferreira/2A/Android/ProjetAndroid/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex
renamed.0=classes.dex renamed.0=classes.dex
path.0=classes.dex path.0=classes.dex

@ -2,7 +2,7 @@ package iut.android.pierrepierre
public class Mole (var dead : Boolean){ public class Mole (var dead : Boolean){
var nbPoint = 0 var nbPoint = 0 //recompter tout les points avec cette attribut ?
var pdp = R.drawable.limule var pdp = R.drawable.limule

@ -30,9 +30,6 @@ class MoleGridActivity : AppCompatActivity() {
private val sensorManager by lazy { getSystemService(Context.SENSOR_SERVICE) as SensorManager } private val sensorManager by lazy { getSystemService(Context.SENSOR_SERVICE) as SensorManager }
private lateinit var sensorEventListener: SensorEventListener private lateinit var sensorEventListener: SensorEventListener
//private var value = 0
//Countdown //Countdown
private lateinit var countDownTimer: CountDownTimer private lateinit var countDownTimer: CountDownTimer
private lateinit var DisplaycountDownTimer: TextView private lateinit var DisplaycountDownTimer: TextView
@ -51,27 +48,21 @@ class MoleGridActivity : AppCompatActivity() {
super.onResume() super.onResume()
val MoleName = arrayOf( val MoleList = arrayOf( //12 taupes
"Mole1", "Mole2", "Mole3", "Mole4", Mole(false),
"Mole5", "Mole6", "Mole7", "Mole8", "Mole9", "Mole10", "Mole11", "Mole12" Mole(false),
) Mole(false),
val MoleImages = intArrayOf( // au cas ou on change les images de chaque taupes Mole(false),
R.drawable.limule, Mole(false),
R.drawable.limule, Mole(false),
R.drawable.limule, Mole(false),
R.drawable.limule, Mole(false),
R.drawable.limule, Mole(false),
R.drawable.limule, Mole(false),
R.drawable.limule, Mole(false),
R.drawable.limule, Mole(false)
R.drawable.limule,
R.drawable.limule,
R.drawable.limule,
R.drawable.limule
) )
val shakeSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) val shakeSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
sensorManager.registerListener(object : SensorEventListener { sensorManager.registerListener(object : SensorEventListener {
@ -86,13 +77,17 @@ class MoleGridActivity : AppCompatActivity() {
// Si l'accélération est supérieure à 12, et que la progresse bar est au maximum, la progressBar est réinitialisée à 0 // Si l'accélération est supérieure à 12, et que la progresse bar est au maximum, la progressBar est réinitialisée à 0
if (acceleration > 12 && progressBar.progress == 100) { if (acceleration > 12 && progressBar.progress == 100) {
progressBar.progress = 0 progressBar.progress = 0
for (i in MoleList){
//FIXME pas d'actualisation de l'état des taupes sur la vue
if (!i.isDead()) i.changeState()
}
} }
} }
override fun onAccuracyChanged(sensor: Sensor, accuracy: Int) {} override fun onAccuracyChanged(sensor: Sensor, accuracy: Int) {}
}, shakeSensor, SensorManager.SENSOR_DELAY_GAME) }, shakeSensor, SensorManager.SENSOR_DELAY_GAME)
// utilisation d'un objet anno // utilisation d'un objet anno
countDownTimer = object : CountDownTimer(90000, 1000) { countDownTimer = object : CountDownTimer(90000, 1000) {
@ -105,13 +100,13 @@ class MoleGridActivity : AppCompatActivity() {
override fun onFinish() { override fun onFinish() {
//mettre la fin de parti ici => appel de l'interface de fin //mettre la fin de parti ici => appel de l'interface de fin
//TODO affichage du menu de fin de partie
DisplaycountDownTimer.text = "STOP!" DisplaycountDownTimer.text = "STOP!"
} }
}.start() }.start()
gridViewMole.layoutManager = GridLayoutManager(this, 4) gridViewMole.layoutManager = GridLayoutManager(this, 4)
gridViewMole.adapter = MyGridAdapter(user, MoleName, MoleImages, progressBar, scoreDisplay) gridViewMole.adapter = MyGridAdapter(user, MoleList, progressBar, scoreDisplay)
} }
override fun onPause() { override fun onPause() {

@ -12,46 +12,30 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder
import iut.android.pierrepierre.model.User import iut.android.pierrepierre.model.User
class MyGridAdapter(var user : User, var MoleName: Array<String>, var images: IntArray, var progressBar : ProgressBar, var scoreDisplay : TextView) : RecyclerView.Adapter<MyViewHolder>(){ class MyGridAdapter(var user : User, var MoleList: Array<Mole>, var progressBar : ProgressBar, var scoreDisplay : TextView) : RecyclerView.Adapter<MyViewHolder>(){
val MoleImagesClicked = intArrayOf( //array si les têtes des taupes changes
R.drawable.limule_dead,
R.drawable.limule_dead,
R.drawable.limule_dead,
R.drawable.limule_dead,
R.drawable.limule_dead,
R.drawable.limule_dead,
R.drawable.limule_dead,
R.drawable.limule_dead,
R.drawable.limule_dead,
R.drawable.limule_dead,
R.drawable.limule_dead,
R.drawable.limule_dead
)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
return MyViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.moleitem, parent, false)) return MyViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.moleitem, parent, false))
} }
override fun onBindViewHolder(holder: MyViewHolder, position: Int) { override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.img.setImageResource(images[position]) //TODO Implémenter une coroutine pour actualiser l'état des pdp des taupes ?
//holder.label.setOnClickListener{ Toast.makeText(this@MyGridAdapter, "clicked !!!", Toast.LENGTH_SHORT)} holder.img.setImageResource(MoleList[position].pdp)
holder.img.setOnClickListener { holder.img.setOnClickListener { // Action à exécuter lors du clic sur l'image
// Action à exécuter lors du clic sur l'image if (!MoleList[position].isDead()){
MoleList[position].takeHit()
//TODO verifier si l'objet cliqué et de type "vivant"
holder.img.setImageResource(MoleImagesClicked[position])
progressBar.progress = progressBar.progress + 10 //Augmentation de la progresse bar progressBar.progress = progressBar.progress + 10 //Augmentation de la progresse bar
user.score += 100 user.score += 100
//TODO Coroutine ici : (?) ==>listener avec les moles observable
scoreDisplay.text = user.score.toString() scoreDisplay.text = user.score.toString()
holder.img.setImageResource(MoleList[position].pdp)
}
} }
} }
override fun getItemCount() = MoleName.size override fun getItemCount() = MoleList.size
fun updateScoreDisplay(){ fun updateScoreDisplay(){

Loading…
Cancel
Save