How to compile Java Applets in Vim/Mac CMD

Started by
0 comments, last by Glass_Knife 10 years, 6 months ago

Hey all. I've been working on my pc lately using eclipse and java applets. I want to switch over to my mac, but using vim and the command line instead of eclipse. Every time I try to compile, it tells me I don't have a main function added, which I didn't need while I was using eclipse. Can someone help me out? I'll post some relevant code. Thanks!




import java.applet.Applet;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;

public class Main extends Applet implements Runnable, KeyListener {
	private Animator animateRight, animateLeft, animateUp, animateDown;
	private ArrayList<BufferedImage> spriteRight, spriteLeft, spriteUp, spriteDown;
	private Image image;
	private Graphics second;
	private URL base;
	private Player player;
	private boolean left, right, down, up;
	private String lastDir;
	private long animateSpeed;
	BufferedImageLoader loader;
	BufferedImage spriteSheet;
	SpriteSheet ss;

	public void init() {
		setSize(1200, 800);
		setBackground(Color.BLACK);
		setFocusable(true);
		addKeyListener(this);
		Frame frame = (Frame) this.getParent().getParent();
		frame.setTitle("RPG v. 0.0.1");
		try {
			base = getDocumentBase();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		setUpAnimations();
		left = down = right = up = false;
		
	}

	public void start() {
		Thread thread = new Thread(this);
		player = new Player();
		thread.start();
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		while (true) {
			player.update();
			repaint();
			try {
				Thread.sleep(17);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
	
	public void update(Graphics g) {
		if (image == null) {
			image = createImage(this.getWidth(), this.getHeight());
			second = image.getGraphics();
		}

		second.setColor(getBackground());
		second.fillRect(0, 0, getWidth(), getHeight());
		second.setColor(getForeground());
		paint(second);
		
		g.drawImage(image, 0, 0, this);
	}
	
	public void paint(Graphics g) {
		if(right){
			animateRight.update(System.currentTimeMillis());
			g.drawImage(animateRight.sprite, player.getPosX(), player.getPosY(), this);
		}
		else if(left){
			animateLeft.update(System.currentTimeMillis());
			g.drawImage(animateLeft.sprite, player.getPosX(), player.getPosY(), this);
		}
		else if(up) {
			animateUp.update(System.currentTimeMillis());
			g.drawImage(animateUp.sprite, player.getPosX(), player.getPosY(), this);
		}
		else if(down) {
			animateDown.update(System.currentTimeMillis());
			g.drawImage(animateDown.sprite, player.getPosX(), player.getPosY(), this);
		}
	}

	public void stop() {

	}

	public void destroy() {

	}

	@Override
	public void keyPressed(KeyEvent e) {
		switch(e.getKeyCode()) {
		case KeyEvent.VK_A:
			player.moveLeft();
			player.setMovingLeft(true);
			left = true;
			lastDir = "left";
			break;
		
		case KeyEvent.VK_D:
			player.moveRight();
			player.setMovingRight(true);
			right = true;
			lastDir = "right";
			break;
		
		case KeyEvent.VK_W:
			player.moveUp();
			player.setMovingUp(true);
			up = true;
			lastDir = "up";
			break;
			
		case KeyEvent.VK_S:
			player.moveDown();
			player.setMovingDown(true);
			down = true;
			lastDir = "down";
			break;
		}
		
	}

	@Override
	public void keyReleased(KeyEvent e) {
		switch (e.getKeyCode()) {
		case KeyEvent.VK_W:
			up = false;
			player.setMovingUp(false);
			break;

		case KeyEvent.VK_S:
			down = false;
			player.setMovingDown(false);
			break;

		case KeyEvent.VK_A:
			left = false;
			player.setMovingLeft(false);
			break;

		case KeyEvent.VK_D:
			right = false;
			player.setMovingRight(false);
			break;

		case KeyEvent.VK_SPACE:
			break;

		case KeyEvent.VK_CONTROL:

			break;

		}

	}

	@Override
	public void keyTyped(KeyEvent arg0) {
		// TODO Auto-generated method stub

	}

	
	
	public void setUpAnimations() {
		animateSpeed = 75;
		loader = new BufferedImageLoader();
		spriteSheet = null;
		try {
			spriteSheet = loader.loadImage("sprites_map_claudius.png");
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		ss = new SpriteSheet(spriteSheet);
		
		spriteDown = new ArrayList<BufferedImage>();
		for (int i = 0; i < 5; i++) {
			if ( i == 0 ) {
				spriteDown.add(ss.grabSprite(0, 0, 32, 62));
			}
			else {
				spriteDown.add(ss.grabSprite(32*i, 0, 32, 62));
			}
		}
		
		animateDown = new Animator(spriteDown);
		animateDown.setSpeed(animateSpeed);
		animateDown.start();
		
		spriteLeft = new ArrayList<BufferedImage>();
		for (int i = 0; i < 5; i++) {
			if ( i == 0 ) {
				spriteLeft.add(ss.grabSprite(0, 62, 32, 62));
			}
			else {
				spriteLeft.add(ss.grabSprite(32*i, 62, 32, 62));
			}
		}
		animateLeft = new Animator(spriteLeft);
		animateLeft.setSpeed(animateSpeed);
		animateLeft.start();
		
		spriteUp = new ArrayList<BufferedImage>();
		for (int i = 0; i < 5; i++) {
			if ( i == 0 ) {
				spriteUp.add(ss.grabSprite(0, 62*2, 32, 62));
			}
			else {
				spriteUp.add(ss.grabSprite(32*i, 62*2, 32, 62));
			}
		}
		animateUp = new Animator(spriteUp);
		animateUp.setSpeed(animateSpeed);
		animateUp.start();
		
		spriteRight = new ArrayList<BufferedImage>();
		for (int i = 0; i < 5; i++) {
			if ( i == 0 ) {
				spriteRight.add(ss.grabSprite(0, 62*3, 32, 62));
			}
			else {
				spriteRight.add(ss.grabSprite(32*i, 62*3, 32, 62));
			}
		}
		animateRight = new Animator(spriteRight);
		animateRight.setSpeed(animateSpeed);
		animateRight.start();
	}

}

Advertisement

It would help if you also post what you're typing at the command line and the exact error message. The class you posted doesn't have a main() method, but that shouldn't matter. I haven't made an Applet in years, so I'm not sure what Eclipse is doing for you behind the scenes (if anything).

I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Twitter: https://twitter.com/indieprogram

My Book: http://amzn.com/1305076532

This topic is closed to new replies.

Advertisement