diff --git a/core/src/com/wordbattle/game/view/GamePlayView.java b/core/src/com/wordbattle/game/view/GamePlayView.java index 0e16be9616f8e33e2675a1289327fc9756522ff7..0a8d7ba2d457c1a47ea7ad2f50a5335ed095d7a5 100644 --- a/core/src/com/wordbattle/game/view/GamePlayView.java +++ b/core/src/com/wordbattle/game/view/GamePlayView.java @@ -16,6 +16,7 @@ import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.TextField; import com.badlogic.gdx.utils.viewport.ScreenViewport; import com.sun.org.apache.xerces.internal.util.SynchronizedSymbolTable; +import com.sun.tools.sjavac.Log; import com.wordbattle.game.WordBattle; import com.wordbattle.game.model.LetterPool; import com.wordbattle.game.network.FirebaseInterface; @@ -23,6 +24,7 @@ import com.wordbattle.game.network.FirebaseInterface; import org.w3c.dom.ranges.Range; import java.util.ArrayList; +import java.util.Random; import java.util.Stack; import jdk.internal.org.jline.terminal.Size; @@ -48,6 +50,8 @@ public class GamePlayView { private boolean isTimerRunning; private Rectangle settingsBounds; + private ArrayList<Integer> YOffsets;//used to make letters look scattered + @@ -59,6 +63,11 @@ public class GamePlayView { Gdx.input.setInputProcessor(stage); + System.out.println("message from constructor"); + + + + settingsBounds = new Rectangle( WordBattle.WIDTH - 100, WordBattle.HEIGHT - 100, @@ -92,6 +101,10 @@ public class GamePlayView { + + + + } public Rectangle getSettingsBounds() { return settingsBounds; } @@ -105,6 +118,7 @@ public class GamePlayView { isTimerRunning = false; // Stop the timer when it reaches 0 // Handle time out logic + } } } @@ -114,8 +128,17 @@ public class GamePlayView { letterPool = new LetterPool(currentWord, 5, pin); // Or however you decide the number of extra letters letterBoxBounds = new Rectangle[currentWord.length()]; filledBoxes = new Character[currentWord.length()]; + Random rand = new Random(); + YOffsets= new ArrayList<>(letterPool.getLetters().size()); + for (int i=0; i<letterPool.getLetters().size();i++){ + YOffsets.add(rand.nextInt(200)-100); + } + + } + + public void render(SpriteBatch sb) { if (shapeRenderer == null) { shapeRenderer = new ShapeRenderer(); @@ -125,39 +148,79 @@ public class GamePlayView { + letters = letterPool.getLetters(); letterBounds = new Rectangle[letters.size()]; + + float letterSpacing = 100; float totalWidthLetter = ((((float) letters.size() * letterSpacing)) / 2); - float letterStartX = ((cam.viewportWidth - totalWidthLetter) - 2*letterSpacing) / 2; + //float letterStartX = ((cam.viewportWidth - totalWidthLetter) - 2*letterSpacing) / 2; + float letterStartX=100; float letterStartY = cam.viewportHeight / 2; sb.setProjectionMatrix(cam.combined); sb.begin(); // Begin the SpriteBatch for other rendering sb.draw(backgroundTexture, 0, 0, cam.viewportWidth, cam.viewportHeight); + + + float letterStartYBaseEven = 700; // Midpoint for range 500 to 900 float letterStartYBaseOdd = -550; // Midpoint for range 300 to 800 + + + + + int num=0; + + float yPos=0; + for (int i = 0; i < letters.size(); i++) { + // Calculate the position for each letter - float x = letterStartX + i * letterSpacing; - float y; - if (i % 2 == 0) { + float xPos = (float) (letterStartX + i *letterSpacing/2); + + if (num == 0) { // For even indices, use the range 500 to 900 - y = letterStartY + 700; // Alternate within the range - } else { + yPos = letterStartY + 750 + YOffsets.get(i); // Alternate within the range + + + } + if(num==1) { // For odd indices, use the range 300 to 800 - y = letterStartY - 400;// Alternate within the range - x -= letterSpacing; + yPos = letterStartY +400 + YOffsets.get(i);// Alternate within the range + + + + } + if(num==2){ + + yPos = letterStartY -350 + YOffsets.get(i);// Alternate within the range + + + + + } + if(num==3){ + + yPos = letterStartY -750 + YOffsets.get(i);// Alternate within the range + + num=-1; + } // Draw each letter, here you might want to draw a background texture for the letter font.setColor(Color.GREEN); - font.draw(sb, letters.get(i).toString(), x, y); - letterBounds[i] = new Rectangle(x, y-120, 120, 120); + font.draw(sb, letters.get(i).toString(), xPos, yPos); + letterBounds[i] = new Rectangle(xPos, yPos - 120, 120, 120); + System.out.println("printed "+ i); + + num++; } + // Draw time font.draw(sb, "Time: " + String.format("%o", Math.round(timeLeft)), cam.viewportWidth / 2 - 200, cam.viewportHeight - 200); @@ -193,6 +256,7 @@ public class GamePlayView { } + shapeRenderer.end(); sb.begin(); // Begin SpriteBatch again @@ -244,6 +308,8 @@ public class GamePlayView { this.filledBoxes = filledBoxes; } + + public void dispose() { shapeRenderer.dispose(); } @@ -271,3 +337,6 @@ public class GamePlayView { return maxTime; } } + + +