diff --git a/README.md b/README.md index d61c695..67978a6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Tetris + https://stackoverflow.com/questions/21002224/add-a-background-image-to-shape-in-xml-android + ## Autheur : - Enzo Jolys diff --git a/Tetris/app/src/main/AndroidManifest.xml b/Tetris/app/src/main/AndroidManifest.xml index e9a4d06..c4b2c70 100644 --- a/Tetris/app/src/main/AndroidManifest.xml +++ b/Tetris/app/src/main/AndroidManifest.xml @@ -12,19 +12,10 @@ android:theme="@style/Theme.Tetris" tools:targetApi="31"> + android:name="tetrisGame.activity.Menu" + android:exported="true"/> - - - - - - - diff --git a/Tetris/app/src/main/java/modele/Draw.kt b/Tetris/app/src/main/java/modele/Draw.kt deleted file mode 100644 index d4cfe30..0000000 --- a/Tetris/app/src/main/java/modele/Draw.kt +++ /dev/null @@ -1,10 +0,0 @@ -package modele - -import android.annotation.SuppressLint -import android.content.Context -import android.graphics.Paint -import android.graphics.Path -import android.view.View - -class Draw { -} \ No newline at end of file diff --git a/Tetris/app/src/main/java/activity/Game.kt b/Tetris/app/src/main/java/tetrisGame/activity/Game.kt similarity index 61% rename from Tetris/app/src/main/java/activity/Game.kt rename to Tetris/app/src/main/java/tetrisGame/activity/Game.kt index ff6cd48..a36e80a 100644 --- a/Tetris/app/src/main/java/activity/Game.kt +++ b/Tetris/app/src/main/java/tetrisGame/activity/Game.kt @@ -1,17 +1,26 @@ -package activity +package tetrisGame.activity +import android.graphics.Canvas import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.view.View import android.widget.ImageView import androidx.core.content.ContextCompat import but.androidstudio.tetris.R +import tetrisGame.views.ViewsGame class Game : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + setContentView(R.layout.activity_game) - } + val view = findViewById(R.id.tabGame) + + //Pour nettoyer la vue + view.invalidate() + + } } \ No newline at end of file diff --git a/Tetris/app/src/main/java/activity/Menu.kt b/Tetris/app/src/main/java/tetrisGame/activity/Menu.kt similarity index 85% rename from Tetris/app/src/main/java/activity/Menu.kt rename to Tetris/app/src/main/java/tetrisGame/activity/Menu.kt index 81f3763..89806c4 100644 --- a/Tetris/app/src/main/java/activity/Menu.kt +++ b/Tetris/app/src/main/java/tetrisGame/activity/Menu.kt @@ -1,6 +1,5 @@ -package activity +package tetrisGame.activity -import android.annotation.SuppressLint import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle @@ -18,7 +17,7 @@ class Menu : AppCompatActivity() { val buttonStart:Button = findViewById(R.id.buttonStart) buttonStart.setOnClickListener { - val intent = Intent(this,Game::class.java) + val intent = Intent(this, Game::class.java) startActivity(intent) } } diff --git a/Tetris/app/src/main/java/activity/Option.kt b/Tetris/app/src/main/java/tetrisGame/activity/Option.kt similarity index 91% rename from Tetris/app/src/main/java/activity/Option.kt rename to Tetris/app/src/main/java/tetrisGame/activity/Option.kt index 23a0386..20599a8 100644 --- a/Tetris/app/src/main/java/activity/Option.kt +++ b/Tetris/app/src/main/java/tetrisGame/activity/Option.kt @@ -1,4 +1,4 @@ -package activity +package tetrisGame.activity import androidx.appcompat.app.AppCompatActivity import android.os.Bundle diff --git a/Tetris/app/src/main/java/tetrisGame/views/ViewsGame.kt b/Tetris/app/src/main/java/tetrisGame/views/ViewsGame.kt new file mode 100644 index 0000000..658989e --- /dev/null +++ b/Tetris/app/src/main/java/tetrisGame/views/ViewsGame.kt @@ -0,0 +1,104 @@ +package tetrisGame.views + +import android.annotation.SuppressLint +import android.content.Context +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint +import android.graphics.Rect +import android.util.AttributeSet +import android.view.View + +class ViewsGame(context:Context, attrs: AttributeSet?) : View(context, attrs) { + + val myPaint:Paint = Paint() + + override fun onDraw(canvas: Canvas) { + super.onDraw(canvas) + + val tailleGrille:Float = 5F + val tailleTableauHauteur:Float = measuredHeight.toFloat() + val tailleTableauLargeur:Float = measuredWidth.toFloat() + val nbCaseLargeur:Int = 7 + val nbCaseHauteur:Int = 15 + + // Pour remplir le tableau de zero ( a enlever) + var tableau = arrayOf>() + for (i in 0 until nbCaseHauteur) { + var array = arrayOf() + for (j in 0 until nbCaseLargeur) { + array += 0 + } + tableau += array + } + + // Test + // Droite + tableau[0][0] = 1 + tableau[1][0] = 1 + tableau[2][0] = 1 + tableau[3][0] = 1 + // Carré + tableau[0][2] = 4 + tableau[0][3] = 4 + tableau[1][2] = 4 + tableau[1][3] = 4 + // T + tableau[0][5] = 3 + tableau[1][5] = 3 + tableau[1][4] = 3 + tableau[1][6] = 3 + // L Gauche + tableau[2][2] = 5 + tableau[3][2] = 5 + tableau[2][3] = 5 + tableau[2][4] = 5 + // L Droite + tableau[4][4] = 6 + tableau[4][5] = 6 + tableau[4][6] = 6 + tableau[5][6] = 6 + // Escalier Droite + tableau[4][3] = 2 + tableau[4][2] = 2 + tableau[5][2] = 2 + tableau[5][1] = 2 + // Escalier Gauche + tableau[6][3] = 7 + tableau[6][4] = 7 + tableau[7][4] = 7 + tableau[7][5] = 7 + + myPaint.color = Color.GRAY + canvas.drawRect(0F,0F,tailleTableauLargeur,tailleTableauHauteur,myPaint) + // Color + myPaint.color = Color.BLACK + + //Contour + myPaint.strokeWidth = 15F + canvas.drawLine(0F,0F,0F,tailleTableauHauteur,myPaint) + canvas.drawLine(0F,0F,tailleTableauLargeur,0F,myPaint) + canvas.drawLine(tailleTableauLargeur,0F,tailleTableauLargeur,tailleTableauHauteur,myPaint) + canvas.drawLine(0F,tailleTableauHauteur,tailleTableauLargeur,tailleTableauHauteur,myPaint) + + for( ligne in 0 until nbCaseHauteur){ + for ( value in 0 until nbCaseLargeur){ + myPaint.color = Color.GRAY + when(tableau[ligne][value]){ + 1 -> myPaint.color = Color.CYAN + 2 -> myPaint.color = Color.RED + 3 -> myPaint.color = Color.GREEN + 4 -> myPaint.color = Color.BLUE + 5 -> myPaint.color = Color.WHITE + 6 -> myPaint.color = Color.YELLOW + 7 -> myPaint.color = Color.MAGENTA + } + canvas.drawRect((tailleTableauLargeur/nbCaseLargeur)*value+tailleGrille, + (tailleTableauHauteur/nbCaseHauteur)*ligne+tailleGrille, + (tailleTableauLargeur-((tailleTableauLargeur/nbCaseLargeur)*((nbCaseLargeur-value)-1)))-tailleGrille, + (tailleTableauHauteur-((tailleTableauHauteur/nbCaseHauteur)*((nbCaseHauteur-ligne)-1)))-tailleGrille, + myPaint) + } + } + } +} \ No newline at end of file diff --git a/Tetris/app/src/main/res/drawable/button_left.xml b/Tetris/app/src/main/res/drawable/button_left.xml new file mode 100644 index 0000000..274e591 --- /dev/null +++ b/Tetris/app/src/main/res/drawable/button_left.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Tetris/app/src/main/res/drawable/flechedroite.xml b/Tetris/app/src/main/res/drawable/flechedroite.xml new file mode 100644 index 0000000..8d3848e --- /dev/null +++ b/Tetris/app/src/main/res/drawable/flechedroite.xml @@ -0,0 +1,5 @@ + + + diff --git a/Tetris/app/src/main/res/drawable/flechegauche.xml b/Tetris/app/src/main/res/drawable/flechegauche.xml new file mode 100644 index 0000000..8452791 --- /dev/null +++ b/Tetris/app/src/main/res/drawable/flechegauche.xml @@ -0,0 +1,5 @@ + + + diff --git a/Tetris/app/src/main/res/drawable/rotationdroite.xml b/Tetris/app/src/main/res/drawable/rotationdroite.xml new file mode 100644 index 0000000..434c51d --- /dev/null +++ b/Tetris/app/src/main/res/drawable/rotationdroite.xml @@ -0,0 +1,5 @@ + + + diff --git a/Tetris/app/src/main/res/drawable/rotationgauche.xml b/Tetris/app/src/main/res/drawable/rotationgauche.xml new file mode 100644 index 0000000..0b02b19 --- /dev/null +++ b/Tetris/app/src/main/res/drawable/rotationgauche.xml @@ -0,0 +1,5 @@ + + + diff --git a/Tetris/app/src/main/res/layout/activity_game.xml b/Tetris/app/src/main/res/layout/activity_game.xml index 6c2c868..8f35747 100644 --- a/Tetris/app/src/main/res/layout/activity_game.xml +++ b/Tetris/app/src/main/res/layout/activity_game.xml @@ -1,34 +1,75 @@ - - - - + + + + + + + + + + android:orientation="horizontal" + android:layout_marginTop="50dp"> + +