Optimize line clear animation for smoother gameplay: - Reduce animation duration to 100ms - Improve animation smoothness with better scaling and fade effects - Eliminate initial animation delay - Add subtle glow effects for better visual feedback

This commit is contained in:
cmclark00 2025-03-26 16:09:03 -04:00
parent f4e5a9b651
commit fabb2742da
7 changed files with 344 additions and 263 deletions

View file

@ -5,112 +5,79 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
android:fitsSystemWindows="true"
tools:context=".MainActivity">
<com.mintris.game.GameView
android:id="@+id/gameView"
<!-- Game Container with Glow -->
<FrameLayout
android:id="@+id/gameContainer"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.mintris.game.GameView
android:id="@+id/gameView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- Glowing Border -->
<View
android:id="@+id/glowBorder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/glow_border" />
</FrameLayout>
<!-- HUD Container - Score, Level, Lines -->
<LinearLayout
android:id="@+id/hudContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:orientation="vertical"
android:layout_marginTop="24dp"
android:layout_marginEnd="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/scoreLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/score"
android:textColor="@color/white"
android:textSize="12sp"
android:textStyle="bold" />
<TextView
android:id="@+id/scoreText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
android:textSize="24sp"
android:fontFamily="sans-serif-light"
tools:text="Score: 0" />
<TextView
android:id="@+id/levelLabel"
android:id="@+id/currentLevelText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/level"
android:textColor="@color/white"
android:textSize="12sp"
android:textStyle="bold" />
<TextView
android:id="@+id/levelText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/linesLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/lines"
android:textColor="@color/white"
android:textSize="12sp"
android:textStyle="bold" />
android:textSize="24sp"
android:fontFamily="sans-serif-light"
tools:text="Level: 1" />
<TextView
android:id="@+id/linesText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
android:textSize="24sp"
android:fontFamily="sans-serif-light"
tools:text="Lines: 0" />
</LinearLayout>
<!-- Next Piece Preview -->
<LinearLayout
android:id="@+id/nextPieceContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="24dp"
android:layout_marginStart="16dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/nextLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/next"
android:textColor="@color/white"
android:textSize="12sp"
android:textStyle="bold" />
<com.mintris.game.NextPieceView
android:id="@+id/nextPieceView"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_marginTop="4dp"
android:background="@color/black" />
</LinearLayout>
<com.mintris.game.NextPieceView
android:id="@+id/nextPieceView"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_margin="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/hudContainer" />
<!-- Game Over overlay -->
<LinearLayout
@ -149,7 +116,7 @@
android:textColor="@color/white" />
</LinearLayout>
<!-- Pause overlay -->
<!-- Settings Menu overlay -->
<LinearLayout
android:id="@+id/pauseContainer"
android:layout_width="match_parent"
@ -159,20 +126,49 @@
android:orientation="vertical"
android:visibility="gone">
<Button
android:id="@+id/resumeButton"
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold"
android:layout_marginBottom="32dp" />
<Button
android:id="@+id/pauseStartButton"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:text="@string/start"
android:textColor="@color/white"
android:textSize="18sp" />
<Button
android:id="@+id/resumeButton"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@color/transparent"
android:text="@string/resume"
android:textColor="@color/white"
android:textSize="18sp" />
<Button
android:id="@+id/pauseRestartButton"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@color/transparent"
android:text="@string/restart"
android:textColor="@color/white"
android:textSize="18sp" />
<LinearLayout
android:id="@+id/levelSelectorContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:layout_marginTop="32dp"
android:orientation="vertical"
android:gravity="center">
@ -191,7 +187,7 @@
android:layout_marginTop="8dp">
<Button
android:id="@+id/levelDownButton"
android:id="@+id/pauseLevelDownButton"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@color/transparent"
@ -200,7 +196,7 @@
android:textSize="24sp" />
<TextView
android:id="@+id/selectedLevelText"
android:id="@+id/pauseLevelText"
android:layout_width="48dp"
android:layout_height="48dp"
android:gravity="center"
@ -210,7 +206,7 @@
android:textStyle="bold" />
<Button
android:id="@+id/levelUpButton"
android:id="@+id/pauseLevelUpButton"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@color/transparent"
@ -222,9 +218,9 @@
<Button
android:id="@+id/settingsButton"
android:layout_width="wrap_content"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:layout_marginTop="32dp"
android:background="@color/transparent"
android:text="@string/sound_on"
android:textColor="@color/white"