Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package States;
- import java.awt.Color;
- import java.awt.Graphics2D;
- import java.io.EOFException;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.net.ServerSocket;
- import java.net.Socket;
- import com.sun.glass.events.KeyEvent;
- import Main.AbstractState;
- import Main.MainPanel;
- import Main.StateManager;
- public class Pong extends AbstractState {
- private int width;
- private int height;
- private int paddleWidth;
- private int paddleHeight;
- private int paddleSpeed;
- private ObjectOutputStream output;
- private ObjectInputStream input;
- private ServerSocket server;
- private Socket connection;
- private int serverXPos;
- private int serverYPos;
- private int clientXPos;
- private int clientYPos;
- private boolean up = false;
- private boolean down = false;
- public Pong(StateManager sm) {
- this.sm = sm;
- init();
- try {
- //image loading
- }
- catch(Exception exception) {
- exception.printStackTrace();
- }
- new Thread(networkingThread).start();
- }
- Runnable networkingThread = new Runnable() {
- public void run() {
- startServer();
- }
- };
- public void init() {
- width = MainPanel.WIDTH;
- height = MainPanel.HEIGHT;
- paddleWidth = 20;
- paddleHeight = 80;
- paddleSpeed = 3;
- clientXPos = width - paddleWidth - 20;
- clientYPos = 30;
- serverXPos = 20;
- serverYPos = height / 2 - paddleHeight / 2;
- }
- public void update() {
- if(up) {
- serverYPos -= paddleSpeed;
- }
- if(down) {
- serverYPos += paddleSpeed;
- }
- if(serverYPos < 0) {
- serverYPos = 0;
- }
- if(serverYPos + paddleHeight > height) {
- serverYPos = height - paddleHeight;
- }
- }
- public void draw(Graphics2D g) {
- g.setColor(Color.BLACK);
- g.fillRect(0, 0, width, height);
- g.setColor(Color.WHITE);
- g.fillRect(serverXPos, serverYPos, paddleWidth, paddleHeight);
- g.fillRect(clientXPos, clientYPos, paddleWidth, paddleHeight);
- }
- public void keyPressed(int k) {
- if(k == KeyEvent.VK_UP) {
- up = true;
- down = false;
- }
- if(k == KeyEvent.VK_DOWN) {
- up = false;
- down = true;
- }
- }
- public void keyReleased(int k) {
- if(k == KeyEvent.VK_UP) {
- up = false;
- }
- if(k == KeyEvent.VK_DOWN) {
- down = false;
- }
- }
- //Server Setup
- public void startServer() {
- try {
- server = new ServerSocket(2199, 1000);
- while(true) {
- try {
- waitForConnection();
- setupStreams();
- while(true) {
- sendingData();
- receivingData();
- }
- }
- catch(EOFException e) {
- //Disconnected Unexpectedly
- e.printStackTrace();
- }
- finally {
- //Close Connection
- closeConnection();
- }
- }
- }
- catch(IOException e) {
- e.printStackTrace();
- }
- }
- //Wait for Connection
- private void waitForConnection() throws IOException {
- System.out.println("Waiting for a connection...");
- connection = server.accept();
- System.out.println("Now connected to " + connection.getInetAddress().getHostName());
- }
- //Send and Receive Data
- private void setupStreams() throws IOException {
- output = new ObjectOutputStream(connection.getOutputStream());
- output.flush();
- input = new ObjectInputStream(connection.getInputStream());
- }
- //Sending Data
- public void sendingData() {
- try {
- output.writeObject(serverYPos);
- output.flush();
- }
- catch(IOException e) {
- e.printStackTrace();
- }
- }
- //Receiving Data
- public void receivingData() throws IOException {
- try {
- clientYPos = (int) input.readObject();
- }
- catch(ClassNotFoundException e) {
- e.printStackTrace();
- }
- }
- //Close Connection
- private void closeConnection() {
- try {
- output.close();
- input.close();
- connection.close();
- }
- catch(IOException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement