I want to make a background image in my game I do in class. Can anyone tell me how? Here is the code:
Ignore the swedish comments. The background image I made is 240 x 291 and it's name is back.png. If you could tell me how in a easy way I would be thankful.Code:package dk.koderko.games.pong; // vilket package det tillhör import java.io.IOException; // importerar några klasser för att kunna göra miljön i spelet import javax.microedition.lcdui.game.GameCanvas; import javax.microedition.lcdui.game.Sprite; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; import java.util.Random; public class PongCanvas extends GameCanvas implements Runnable { // gör så att man kan starta spelet public PongCanvas() { super(false); } public void run() { while(true) { updateScreen(getGraphics()); try { Thread.sleep(sleepTime); } catch (Exception e) { } } } public void start() { // vad man ska göra när spelet startat try { ballImg = Image.createImage("/ball.png"); // bilder padImg = Image.createImage("/pad.png"); } catch (IOException ioex) { System.out.println(ioex); } ballSprite = new Sprite(ballImg, 20, 21); // gör spriten ballSprite.defineReferencePixel(2, 2); ballSprite.setRefPixelPosition(ballX, ballY); padSprite = new Sprite(padImg, 3, 20); padSprite.defineReferencePixel(1, 10); padSprite.setRefPixelPosition(padX, padY); AISprite = new Sprite(padImg, 3, 20); AISprite.defineReferencePixel(3, 10); AISprite.setRefPixelPosition(AIX, AIY); Thread runner = new Thread(this); runner.start(); } private void createBackground(Graphics g) { // gör bakgrunden g.setColor(0x000000); //sätter färgen på bakgrunden g.fillRect(0, 0, getWidth(), getHeight()); } private void updateScreen(Graphics g) { createBackground(g); createScoreboard(g); creatWidth(g); // jag vet, felstavning på båda moveBall(); movePad(); moveAI(); ballSprite.setRefPixelPosition(ballX, ballY); ballSprite.paint(g); padSprite.setRefPixelPosition(padX, padY); padSprite.paint(g); AISprite.setRefPixelPosition(AIX, AIY); AISprite.paint(g); flushGraphics(); } private void moveBall() { // flyttar bollen if (ballDirection == 0) { ballX -= ballXVel; ballY -= ballYVel; } else if (ballDirection == 1) { ballX += ballXVel; ballY -= ballYVel; } else if (ballDirection == 2) { ballX += ballXVel; ballY += ballYVel; } else if (ballDirection == 3) { ballX -= ballXVel; ballY += ballYVel; } if (ballDirection == 0 && ballX < 0) { ballDirection = 1; AIScore++; // Added } else if (ballDirection == 0 && ballY < 0) { ballDirection = 3; } else if (ballDirection == 1 && ballY < 0) { ballDirection = 2; } else if (ballDirection == 1 && ballX > getWidth()) { ballDirection = 0; padScore++; // Added if (sleepTime > 5) sleepTime--; } else if (ballDirection == 2 && ballY > getHeight()) { ballDirection = 1; } else if (ballDirection == 2 && ballX > getWidth()) { ballDirection = 3; padScore++; // Added if (sleepTime > 5) sleepTime--; } else if (ballDirection == 3 && ballY > getHeight()) { ballDirection = 0; } else if (ballDirection == 3 && ballX < 0) { ballDirection = 2; AIScore++; // Added } if (ballDirection == 0 && ballSprite.collidesWith(padSprite, false)) { ballDirection = 1; } else if (ballDirection == 3 && ballSprite.collidesWith(padSprite, false)) { ballDirection = 2; } else if (ballDirection == 1 && ballSprite.collidesWith(AISprite, false)) { ballDirection = 0; } else if (ballDirection == 2 && ballSprite.collidesWith(AISprite, false)) { ballDirection = 3; } sleepTime += AIScore - padScore; // Added if (sleepTime < 15) sleepTime = 10; // Added } private void movePad() { // fixar så att man kanm kontrollera paden int keyState = getKeyStates(); if ((keyState & UP_PRESSED) != 0 && padY > padSprite.getHeight() / 2) { padY -= padYVel; } else if ((keyState & DOWN_PRESSED) != 0 && padY <= getHeight() - padSprite.getHeight() / 2) { padY += padYVel; } } private void moveAI() { Random random = new Random(); actX = getWidth() / 3 + Math.abs(random.nextInt() % (getWidth() / 8)); if (ballY < AIY && ballX > actX && AIY > AISprite.getHeight() / 2) AIY -= AIYVel; if (ballY > AIY && ballX > actX && AIY < getHeight() - AISprite.getHeight() / 2) AIY += AIYVel; } private void createScoreboard(Graphics g) { // Added entirely new method g.setColor(0xffffff); g.drawString(padScore + " - " + AIScore, getWidth() / 2, 20, Graphics.HCENTER | Graphics.TOP); } private void creatWidth(Graphics g) { // Added entirely new method g.setColor(0xffffff); g.drawString(getWidth() + " - " + getHeight(), getWidth() / 2, 30, Graphics.HCENTER | Graphics.TOP); } private int sleepTime = 10; private Image ballImg; private Sprite ballSprite; private int ballX = getWidth() / 2; private int ballY = getHeight() / 2; private final static int ballXVel = 3; private final static int ballYVel = 1; private int ballDirection = 1; private Image padImg; private Sprite padSprite; private int padX = 10; private int padY = getHeight() / 2; private final static int padYVel = 2; private Sprite AISprite; private int AIX = getWidth() - 10; private int AIY = getHeight() / 2; private final static int AIYVel = 2; private int actX; private int padScore = 0; // Added private int AIScore = 0; // Added }


LinkBack URL
About LinkBacks







