package com.mygdx.game; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Screen; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import java.io.DataInputStream; import java.io.IOException; import java.io.PrintStream; import java.net.DatagramSocket; import java.net.ServerSocket; import java.net.Socket; import java.net.SocketException; public class SelectionScreen implements Screen{ SpriteBatch batch; private BitmapFont artist; private BitmapFont name; private BitmapFont album; private Texture album_art; private String songName = ""; private String songArtist = ""; private String songAlbum = ""; private String songAlbumArt = "test_cover.jpg"; private String background = "background.jpg"; Game g; String msg_received = "1000"; String temp = "1000"; public SelectionScreen(Game g){ this.g = g; create(); } private void getSongDetails(String songId){ boolean found = false; for (int i=0; i<10 && !found; i++){ if (songId.equals(MyGdxGame.tracks[i].getIdentifier()+ "")){ songName = MyGdxGame.tracks[i].getSongName(); songAlbumArt = MyGdxGame.tracks[i].getAlbum_art(); songArtist = MyGdxGame.tracks[i].getArtist(); songAlbum = MyGdxGame.tracks[i].getAlbum(); background = MyGdxGame.tracks[i].getBackground(); System.out.println("found"); found = true; } } } private void create(){ batch = new SpriteBatch(); album_art = new Texture("test_cover.jpg"); artist = new BitmapFont(); name = new BitmapFont(); album = new BitmapFont(); Thread thread = new Thread(new Runnable() { @Override public void run() { receiver(); } }); thread.start(); } private void receiver(){ while (!temp.equals("00")) { try { ServerSocket socket = new ServerSocket(5000); Socket clientSocket = socket.accept(); //This is blocking. It will wait. DataInputStream DIS = new DataInputStream(clientSocket.getInputStream()); //msg_received = DIS.readUTF(); temp = DIS.readUTF(); if (!temp.trim().equals("00")) msg_received = temp; System.out.println(msg_received); if (!msg_received.equals("1000") && !msg_received.equals("00")) getSongDetails(msg_received.trim()); clientSocket.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } @Override public void render(float delta){ Gdx.gl.glClearColor(0.2f, 0.2f, 0.2f, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.begin(); batch.draw(new Texture(background), 0, 0); //batch.draw(album_art, 600, 400, 300, 300); batch.draw(new Texture(songAlbumArt), 533, 400, 300, 300); name.draw(batch, songName, 600, 370); artist.draw(batch, songArtist, 600, 350); album.draw(batch, songAlbum, 600, 330); album.draw(batch, "Please Connect Using Code " + MyGdxGame.RoomID, 300, 100); batch.end(); if (temp.equals("00")){ System.out.println("I am here motherfucker"); g.setScreen(new PlayerScreen(g, msg_received.trim())); } } @Override public void resize(int width, int height){ } @Override public void show(){ } @Override public void hide(){ } @Override public void dispose(){ } @Override public void pause(){ } @Override public void resume(){ } }