|
Matt
|
 |
« Reply #10 on: October 26, 2008, 01:18:44 pm » |
|
Whats harder to learn Java ore C++?
Java is the easiest, because C++ doesn't really have a standard compiler, linker or API. For example, downloading a file in Java would mean using a simple method from the API but doing this in C++ would mean writing your own method of downloading a file using sockets. But in the end C++ produces a better application which can be run as an executable file and also doesn't rely on the JVM.
|
|
|
|
CrnJacKer
|
 |
« Reply #11 on: October 26, 2008, 04:09:32 pm » |
|
Thanks for voting, but Batch isn't a PG language?
-CrnJacKer
|
|
|
|
Clzer232
|
 |
« Reply #12 on: October 26, 2008, 04:13:20 pm » |
|
C++
|
|
|
|
Matt
|
 |
« Reply #13 on: October 26, 2008, 04:52:19 pm » |
|
Thanks for voting, but Batch isn't a PG language?
Nope it's just a shell script.
|
|
|
|
MP
|
 |
« Reply #14 on: October 27, 2008, 10:25:57 pm » |
|
Thanks for voting, but Batch isn't a PG language?
Nope it's just a shell script.
Not a shell script either, its a shell script for linux comps but just plain old script. Its also even called some thing like shell in linux too.
|
|
|
|
jensie
|
 |
« Reply #15 on: October 27, 2008, 10:41:51 pm » |
|
I voted batch, but IMO you can't compare batch-coding to programming Java/C++ or W/E. Now that I think of it... JUST BASIC is an easy language to!
|
|
|
|
spankjava
|
 |
« Reply #16 on: October 27, 2008, 11:49:16 pm » |
|
Batch isn't a programming language.
|
|
|
|
©Steven©
|
 |
« Reply #17 on: November 12, 2008, 01:36:24 am » |
|
People that voted for Java are wrong.
Example:
import java.awt.Color; import java.awt.DisplayMode; import java.awt.EventQueue; import java.awt.Font; import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.Image; import java.awt.RenderingHints; import java.awt.Toolkit; import java.awt.Window; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.image.BufferStrategy; import java.awt.image.BufferedImage; import java.lang.reflect.InvocationTargetException; import java.util.LinkedList;
import javax.swing.ImageIcon; import javax.swing.JFrame;
/** * A simple keyboard test. Displays keys pressed and released to the screen. * Useful for debugging key input, too. */ public class KeyTest extends GameCore implements KeyListener {
public static void main(String[] args) { new KeyTest().run(); }
private LinkedList messages = new LinkedList();
public void init() { super.init();
Window window = screen.getFullScreenWindow();
// allow input of the TAB key and other keys normally // used for focus traversal window.setFocusTraversalKeysEnabled(false);
// register this object as a key listener for the window window.addKeyListener(this);
addMessage("KeyInputTest. Press Escape to exit"); }
// a method from the KeyListner interface public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode();
// exit the program if (keyCode == KeyEvent.VK_ESCAPE) { stop(); } else { addMessage("Pressed: " + KeyEvent.getKeyText(keyCode));
// make sure the key isn't processed for anything else e.consume(); } }
// a method from the KeyListner interface public void keyReleased(KeyEvent e) { int keyCode = e.getKeyCode(); addMessage("Released: " + KeyEvent.getKeyText(keyCode));
// make sure the key isn't processed for anything else e.consume(); }
// a method from the KeyListener interface public void keyTyped(KeyEvent e) { // this is called after the key is released - ignore it // make sure the key isn't processed for anything else e.consume(); }
/** * Add a message to the list of messages. */ public synchronized void addMessage(String message) { messages.add(message); if (messages.size() >= screen.getHeight() / FONT_SIZE) { messages.remove(0); } }
/** * Draw the list of messages */ public synchronized void draw(Graphics2D g) {
Window window = screen.getFullScreenWindow();
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
// draw background g.setColor(window.getBackground()); g.fillRect(0, 0, screen.getWidth(), screen.getHeight());
// draw messages g.setColor(window.getForeground()); int y = FONT_SIZE; for (int i = 0; i < messages.size(); i++) { g.drawString((String) messages.get(i), 5, y); y += FONT_SIZE; } } }
/** * Simple abstract class used for testing. Subclasses should implement the * draw() method. */
abstract class GameCore {
protected static final int FONT_SIZE = 24;
private static final DisplayMode POSSIBLE_MODES[] = { new DisplayMode(800, 600, 32, 0), new DisplayMode(800, 600, 24, 0), new DisplayMode(800, 600, 16, 0), new DisplayMode(640, 480, 32, 0), new DisplayMode(640, 480, 24, 0), new DisplayMode(640, 480, 16, 0) };
private boolean isRunning;
protected ScreenManager screen;
/** * Signals the game loop that it's time to quit */ public void stop() { isRunning = false; }
/** * Calls init() and gameLoop() */ public void run() { try { init(); gameLoop(); } finally { screen.restoreScreen(); } }
/** * Sets full screen mode and initiates and objects. */ public void init() { screen = new ScreenManager(); DisplayMode displayMode = screen .findFirstCompatibleMode(POSSIBLE_MODES); screen.setFullScreen(displayMode);
Window window = screen.getFullScreenWindow(); window.setFont(new Font("Dialog", Font.PLAIN, FONT_SIZE)); window.setBackground(Color.blue); window.setForeground(Color.white);
isRunning = true; }
public Image loadImage(String fileName) { return new ImageIcon(fileName).getImage(); }
/** * Runs through the game loop until stop() is called. */ public void gameLoop() { long startTime = System.currentTimeMillis(); long currTime = startTime;
while (isRunning) { long elapsedTime = System.currentTimeMillis() - currTime; currTime += elapsedTime;
// update update(elapsedTime);
// draw the screen Graphics2D g = screen.getGraphics(); draw(g); g.dispose(); screen.update();
// take a nap try { Thread.sleep(20); } catch (InterruptedException ex) { } } }
/** * Updates the state of the game/animation based on the amount of elapsed * time that has passed. */ public void update(long elapsedTime) { // do nothing }
/** * Draws to the screen. Subclasses must override this method. */ public abstract void draw(Graphics2D g); }
/** * The ScreenManager class manages initializing and displaying full screen * graphics modes. */
class ScreenManager {
private GraphicsDevice device;
/** * Creates a new ScreenManager object. */ public ScreenManager() { GraphicsEnvironment environment = GraphicsEnvironment .getLocalGraphicsEnvironment(); device = environment.getDefaultScreenDevice(); }
/** * Returns a list of compatible display modes for the default device on the * system. */ public DisplayMode[] getCompatibleDisplayModes() { return device.getDisplayModes(); }
/** * Returns the first compatible mode in a list of modes. Returns null if no * modes are compatible. */ public DisplayMode findFirstCompatibleMode(DisplayMode modes[]) { DisplayMode goodModes[] = device.getDisplayModes(); for (int i = 0; i < modes.length; i++) { for (int j = 0; j < goodModes.length; j++) { if (displayModesMatch(modes, goodModes[j])) { return modes; } }
}
return null; }
/** * Returns the current display mode. */ public DisplayMode getCurrentDisplayMode() { return device.getDisplayMode(); }
/** * Determines if two display modes "match". Two display modes match if they * have the same resolution, bit depth, and refresh rate. The bit depth is * ignored if one of the modes has a bit depth of * DisplayMode.BIT_DEPTH_MULTI. Likewise, the refresh rate is ignored if one * of the modes has a refresh rate of DisplayMode.REFRESH_RATE_UNKNOWN. */ public boolean displayModesMatch(DisplayMode mode1, DisplayMode mode2)
{ if (mode1.getWidth() != mode2.getWidth() || mode1.getHeight() != mode2.getHeight()) { return false; }
if (mode1.getBitDepth() != DisplayMode.BIT_DEPTH_MULTI && mode2.getBitDepth() != DisplayMode.BIT_DEPTH_MULTI && mode1.getBitDepth() != mode2.getBitDepth()) { return false; }
if (mode1.getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN && mode2.getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN && mode1.getRefreshRate() != mode2.getRefreshRate()) { return false; }
return true; }
/** * Enters full screen mode and changes the display mode. If the specified * display mode is null or not compatible with this device, or if the * display mode cannot be changed on this system, the current display mode * is used. * <p> * The display uses a BufferStrategy with 2 buffers. */ public void setFullScreen(DisplayMode displayMode) { final JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setUndecorated(true); frame.setIgnoreRepaint(true); frame.setResizable(false);
device.setFullScreenWindow(frame);
if (displayMode != null && device.isDisplayChangeSupported()) { try { device.setDisplayMode(displayMode); } catch (IllegalArgumentException ex) { } // fix for mac os x frame.setSize(displayMode.getWidth(), displayMode.getHeight()); } // avoid potential deadlock in 1.4.1_02 try { EventQueue.invokeAndWait(new Runnable() { public void run() { frame.createBufferStrategy(2); } }); } catch (InterruptedException ex) { // ignore } catch (InvocationTargetException ex) { // ignore }
}
/** * Gets the graphics context for the display. The ScreenManager uses double * buffering, so applications must call update() to show any graphics drawn. * <p> * The application must dispose of the graphics object. */ public Graphics2D getGraphics() { Window window = device.getFullScreenWindow(); if (window != null) { BufferStrategy strategy = window.getBufferStrategy(); return (Graphics2D) strategy.getDrawGraphics(); } else { return null; } }
/** * Updates the display. */ public void update() { Window window = device.getFullScreenWindow(); if (window != null) { BufferStrategy strategy = window.getBufferStrategy(); if (!strategy.contentsLost()) { strategy.show(); } } // Sync the display on some systems. // (on Linux, this fixes event queue problems) Toolkit.getDefaultToolkit().sync(); }
/** * Returns the window currently used in full screen mode. Returns null if * the device is not in full screen mode. */ public JFrame getFullScreenWindow() { return (JFrame) device.getFullScreenWindow(); }
/** * Returns the width of the window currently used in full screen mode. * Returns 0 if the device is not in full screen mode. */ public int getWidth() { Window window = device.getFullScreenWindow(); if (window != null) { return window.getWidth(); } else { return 0; } }
/** * Returns the height of the window currently used in full screen mode. * Returns 0 if the device is not in full screen mode. */ public int getHeight() { Window window = device.getFullScreenWindow(); if (window != null) { return window.getHeight(); } else { return 0; } }
/** * Restores the screen's display mode. */ public void restoreScreen() { Window window = device.getFullScreenWindow(); if (window != null) { window.dispose(); } device.setFullScreenWindow(null); }
/** * Creates an image compatible with the current display. */ public BufferedImage createCompatibleImage(int w, int h, int transparancy) { Window window = device.getFullScreenWindow(); if (window != null) { GraphicsConfiguration gc = window.getGraphicsConfiguration(); return gc.createCompatibleImage(w, h, transparancy); } return null; } }
You're saying it's easy ^_^.
|
|
|
|
MP
|
 |
« Reply #18 on: November 12, 2008, 01:57:15 am » |
|
People that voted for Java are wrong.
Example:
import java.awt.Color; import java.awt.DisplayMode; import java.awt.EventQueue; import java.awt.Font; import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.Image; import java.awt.RenderingHints; import java.awt.Toolkit; import java.awt.Window; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.image.BufferStrategy; import java.awt.image.BufferedImage; import java.lang.reflect.InvocationTargetException; import java.util.LinkedList;
import javax.swing.ImageIcon; import javax.swing.JFrame;
/** * A simple keyboard test. Displays keys pressed and released to the screen. * Useful for debugging key input, too. */ public class KeyTest extends GameCore implements KeyListener {
public static void main(String[] args) { new KeyTest().run(); }
private LinkedList messages = new LinkedList();
public void init() { super.init();
Window window = screen.getFullScreenWindow();
// allow input of the TAB key and other keys normally // used for focus traversal window.setFocusTraversalKeysEnabled(false);
// register this object as a key listener for the window window.addKeyListener(this);
addMessage("KeyInputTest. Press Escape to exit"); }
// a method from the KeyListner interface public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode();
// exit the program if (keyCode == KeyEvent.VK_ESCAPE) { stop(); } else { addMessage("Pressed: " + KeyEvent.getKeyText(keyCode));
// make sure the key isn't processed for anything else e.consume(); } }
// a method from the KeyListner interface public void keyReleased(KeyEvent e) { int keyCode = e.getKeyCode(); addMessage("Released: " + KeyEvent.getKeyText(keyCode));
// make sure the key isn't processed for anything else e.consume(); }
// a method from the KeyListener interface public void keyTyped(KeyEvent e) { // this is called after the key is released - ignore it // make sure the key isn't processed for anything else e.consume(); }
/** * Add a message to the list of messages. */ public synchronized void addMessage(String message) { messages.add(message); if (messages.size() >= screen.getHeight() / FONT_SIZE) { messages.remove(0); } }
/** * Draw the list of messages */ public synchronized void draw(Graphics2D g) {
Window window = screen.getFullScreenWindow();
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
// draw background g.setColor(window.getBackground()); g.fillRect(0, 0, screen.getWidth(), screen.getHeight());
// draw messages g.setColor(window.getForeground()); int y = FONT_SIZE; for (int i = 0; i < messages.size(); i++) { g.drawString((String) messages.get(i), 5, y); y += FONT_SIZE; } } }
/** * Simple abstract class used for testing. Subclasses should implement the * draw() method. */
abstract class GameCore {
protected static final int FONT_SIZE = 24;
private static final DisplayMode POSSIBLE_MODES[] = { new DisplayMode(800, 600, 32, 0), new DisplayMode(800, 600, 24, 0), new DisplayMode(800, 600, 16, 0), new DisplayMode(640, 480, 32, 0), new DisplayMode(640, 480, 24, 0), new DisplayMode(640, 480, 16, 0) };
private boolean isRunning;
protected ScreenManager screen;
/** * Signals the game loop that it's time to quit */ public void stop() { isRunning = false; }
/** * Calls init() and gameLoop() */ public void run() { try { init(); gameLoop(); } finally { screen.restoreScreen(); } }
/** * Sets full screen mode and initiates and objects. */ public void init() { screen = new ScreenManager(); DisplayMode displayMode = screen .findFirstCompatibleMode(POSSIBLE_MODES); screen.setFullScreen(displayMode);
Window window = screen.getFullScreenWindow(); window.setFont(new Font("Dialog", Font.PLAIN, FONT_SIZE)); window.setBackground(Color.blue); window.setForeground(Color.white);
isRunning = true; }
public Image loadImage(String fileName) { return new ImageIcon(fileName).getImage(); }
/** * Runs through the game loop until stop() is called. */ public void gameLoop() { long startTime = System.currentTimeMillis(); long currTime = startTime;
while (isRunning) { long elapsedTime = System.currentTimeMillis() - currTime; currTime += elapsedTime;
// update update(elapsedTime);
// draw the screen Graphics2D g = screen.getGraphics(); draw(g); g.dispose(); screen.update();
// take a nap try { Thread.sleep(20); } catch (InterruptedException ex) { } } }
/** * Updates the state of the game/animation based on the amount of elapsed * time that has passed. */ public void update(long elapsedTime) { // do nothing }
/** * Draws to the screen. Subclasses must override this method. */ public abstract void draw(Graphics2D g); }
/** * The ScreenManager class manages initializing and displaying full screen * graphics modes. */
class ScreenManager {
private GraphicsDevice device;
/** * Creates a new ScreenManager object. */ public ScreenManager() { GraphicsEnvironment environment = GraphicsEnvironment .getLocalGraphicsEnvironment(); device = environment.getDefaultScreenDevice(); }
/** * Returns a list of compatible display modes for the default device on the * system. */ public DisplayMode[] getCompatibleDisplayModes() { return device.getDisplayModes(); }
/** * Returns the first compatible mode in a list of modes. Returns null if no * modes are compatible. */ public DisplayMode findFirstCompatibleMode(DisplayMode modes[]) { DisplayMode goodModes[] = device.getDisplayModes(); for (int i = 0; i < modes.length; i++) { for (int j = 0; j < goodModes.length; j++) { if (displayModesMatch(modes, goodModes[j])) { return modes; } }
}
return null; }
/** * Returns the current display mode. */ public DisplayMode getCurrentDisplayMode() { return device.getDisplayMode(); }
/** * Determines if two display modes "match". Two display modes match if they * have the same resolution, bit depth, and refresh rate. The bit depth is * ignored if one of the modes has a bit depth of * DisplayMode.BIT_DEPTH_MULTI. Likewise, the refresh rate is ignored if one * of the modes has a refresh rate of DisplayMode.REFRESH_RATE_UNKNOWN. */ public boolean displayModesMatch(DisplayMode mode1, DisplayMode mode2)
{ if (mode1.getWidth() != mode2.getWidth() || mode1.getHeight() != mode2.getHeight()) { return false; }
if (mode1.getBitDepth() != DisplayMode.BIT_DEPTH_MULTI && mode2.getBitDepth() != DisplayMode.BIT_DEPTH_MULTI && mode1.getBitDepth() != mode2.getBitDepth()) { return false; }
if (mode1.getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN && mode2.getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN && mode1.getRefreshRate() != mode2.getRefreshRate()) { return false; }
return true; }
/** * Enters full screen mode and changes the display mode. If the specified * display mode is null or not compatible with this device, or if the * display mode cannot be changed on this system, the current display mode * is used. * <p> * The display uses a BufferStrategy with 2 buffers. */ public void setFullScreen(DisplayMode displayMode) { final JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setUndecorated(true); frame.setIgnoreRepaint(true); frame.setResizable(false);
device.setFullScreenWindow(frame);
if (displayMode != null && device.isDisplayChangeSupported()) { try { device.setDisplayMode(displayMode); } catch (IllegalArgumentException ex) { } // fix for mac os x frame.setSize(displayMode.getWidth(), displayMode.getHeight()); } // avoid potential deadlock in 1.4.1_02 try { EventQueue.invokeAndWait(new Runnable() { public void run() { frame.createBufferStrategy(2); } }); } catch (InterruptedException ex) { // ignore } catch (InvocationTargetException ex) { // ignore }
}
/** * Gets the graphics context for the display. The ScreenManager uses double * buffering, so applications must call update() to show any graphics drawn. * <p> * The application must dispose of the graphics object. */ public Graphics2D getGraphics() { Window window = device.getFullScreenWindow(); if (window != null) { BufferStrategy strategy = window.getBufferStrategy(); return (Graphics2D) strategy.getDrawGraphics(); } else { return null; } }
/** * Updates the display. */ public void update() { Window window = device.getFullScreenWindow(); if (window != null) { BufferStrategy strategy = window.getBufferStrategy(); if (!strategy.contentsLost()) { strategy.show(); } } // Sync the display on some systems. // (on Linux, this fixes event queue problems) Toolkit.getDefaultToolkit().sync(); }
/** * Returns the window currently used in full screen mode. Returns null if * the device is not in full screen mode. */ public JFrame getFullScreenWindow() { return (JFrame) device.getFullScreenWindow(); }
/** * Returns the width of the window currently used in full screen mode. * Returns 0 if the device is not in full screen mode. */ public int getWidth() { Window window = device.getFullScreenWindow(); if (window != null) { return window.getWidth(); } else { return 0; } }
/** * Returns the height of the window currently used in full screen mode. * Returns 0 if the device is not in full screen mode. */ public int getHeight() { Window window = device.getFullScreenWindow(); if (window != null) { return window.getHeight(); } else { return 0; } }
/** * Restores the screen's display mode. */ public void restoreScreen() { Window window = device.getFullScreenWindow(); if (window != null) { window.dispose(); } device.setFullScreenWindow(null); }
/** * Creates an image compatible with the current display. */ public BufferedImage createCompatibleImage(int w, int h, int transparancy) { Window window = device.getFullScreenWindow(); if (window != null) { GraphicsConfiguration gc = window.getGraphicsConfiguration(); return gc.createCompatibleImage(w, h, transparancy); } return null; } }
You're saying it's easy ^_^.
thats got 3 errors just to let you know
|
|
|
|
©Steven©
|
 |
« Reply #19 on: November 14, 2008, 01:01:21 am » |
|
I didn't write it.
It was a example of that java isn't easy.
|
|
|
|