Jump to content

  • Log In with Google      Sign In   
  • Create Account

Awesome job so far everyone! Please give us your feedback on how our article efforts are going. We still need more finished articles for our May contest theme: Remake the Classics

warnexus

Member Since 07 Jun 2012
Online Last Active Today, 08:57 AM
-----

Topics I've Started

Where should this code go?

Today, 07:39 AM

The code inside the if statement is in the Game class. Is the code generally allowed to be in the Game class or should it be in the GameMenuArt class? The idea behind the code was to have the game window display the game menu art and then when the user presses s, the game menu art disappears from the game window.
 
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(e.getKeyCode() == KeyEvent.VK_S)
{
gamePanel.remove(gameMenuArt);
gamePanel.updateUI();
}
 
}
 
or should I just rewrite like this:
the code implementation of the code inside the if statement is similar to code above with a minimal adjustment of using a getter method to get the reference of the gamePanel object.

if(e.getKeyCode() == KeyEvent.VK_S)
{
gameMenuSystem.removeGameMenuSystem();
}


SetPreferredSize for a Frame in Java

Today, 12:56 AM

The following code is in Java. I decided to create the dimensions for my frame object relative to the dimensions of an image I want displayed on the frame object which would mean I want the frame to scale with the image. However the frame could not show some of the bottom part of the image. So I needed to give the frame a bit more height by hard-coding 32 to it. While hard-coding works, it does not seem the right way to go about it in terms of efficiency. 
 
How come the setPreferredSize method does not scale with the image's dimensions?
 
Before: 
frame.setPreferredSize(new Dimension(gameMenuArt.getWidth(),gameMenuArt.getHeight()));
 
After:

frame.setPreferredSize(new Dimension(gameMenuArt.getWidth(),gameMenuArt.getHeight()+32));

Question about animation code

Yesterday, 07:59 PM

This animation code draws a specific animation frame depending on which y coordinate the monster is on.
My bulky animation code was condensed into the code below by a forum user on the gamedev forum.
I never understood why the break statement is needed. I decided to comment the break statement out and notice it will only draw the last animation frame. If I have the break statement, it will instead animate all frames.
 
I know a break statement breaks out of the closest loop it is close to. But it does not give me an insight on why the break statement is needed had I not run the code experimentally.
 

// animating the image frames of the ghost 
for(int i = 0; i < 3;i++)
{
if(position.getY() < positionLimits[i])
{
g.drawImage(ghostMovementAnimation.get(i), (int)position.getX(), (int)position.getY(), null);
break;
}
}

Coming up with a class name for an object that holds things

Yesterday, 06:29 PM

Suppose you had to write a class that holds a health system and item system for a game. What would you call the class? I am writing the code in Java. I came up with a name called TopGUI because the GUI is going to be placed on top of the game that holds these two systems. But I figure the name is going to raise a lot of red flags for any people looking at my own code in the future. I need suggestions. rolleyes.gif  


Drawing every frame causes slow down in other drawings

17 May 2013 - 05:38 PM

I have a ghost that moves in big increments of 2 pixels

Example:

If ghost moves in position x: You see the x coordinates of ghost like this: 18, 20, 22

 

Ghost causes no slowdown when drawing it.

 

However I have an alien that moves smaller increments of .05 pixels - .15 pixels

Example:

If alien moves in position x: You see the x coordinates of alien like this: around 30 drawings in 13.34 which is 30 drawings in the same spot of the screen. Then increment the position by .15 pixels and redraw the alien in that same spot.

 

The idea was to make the alien moves so slow with the alien theme music to add character to the alien. This was done by moving the alien in smaller increments. 

 

While this redrawing technique work for the alien, my suspicion it is this technique that is causing redrawing slowdown to all other projectiles and loot drops from my ghost monsters.

 

Is my suspicion correct? I am really sure if drawing in small increments of pixel for an object really have a slowdown effect on another object that also needs to be redrawn. Let me know.

 

 
 
private static final double zeroPositionLimit = 15;
 
private static final double firstPositionLimit = 16;
 
private static final double secondPositionLimit = 18;
 
private static final double thirdPositionLimit = 20;
 
private static final double fourthPositionLimit = 21;
 

public void draw(Graphics g) {
// Draw the monster image at our position
 
if(position.getX() < zeroPositionLimit)
{
g.drawImage(alienMovementAnimation.get(0), (int)position.getX(), (int)position.getY(), null);
}
else if(position.getX() < firstPositionLimit )
{
g.drawImage(alienMovementAnimation.get(1), (int)position.getX(), (int)position.getY(), null);
} 
else if(position.getX() < secondPositionLimit)
{
g.drawImage(alienMovementAnimation.get(2), (int)position.getX(), (int)position.getY(), null);
 
}
else if(position.getX() < thirdPositionLimit)
{
g.drawImage(alienMovementAnimation.get(3), (int)position.getX(), (int)position.getY(), null);
 
}
 
else if(position.getX() < fourthPositionLimit)
{
g.drawImage(alienMovementAnimation.get(4), (int)position.getX(), (int)position.getY(), null);
}
else
{
 
Game.setGameWon(true);
}
 
 
}
 
@Override
public void update(long milliseconds) {
// Handle all of the alien logic
 
// Update player position base on velocity
 
long time = System.currentTimeMillis();
 
float deltaTime = (time - startTime)/1000.f;
 
startTime = time;
 
position = position.add(velocity.multiply((deltaTime)));
 
 
// object state logic
if(position.getX() < fourthPositionLimit)
{
 
direction = "right";
 
}
 
int speed = 1;
 
if(direction.equals("right"))
{
 
position.setX(position.getX() + speed * deltaTime);
}
 
 
 
}
 

PARTNERS