• Content count

  • Joined

  • Last visited

Community Reputation

103 Neutral

About lthannyl

  • Rank
  1. Java RPG Stats System

    off the top of my head, i would create a class called Effect with an abstract method called perform() then make other classes that define each particular effect, for example, you could create a strengthBuff class or whatever and implement the perform method to give it whatever logic you want. perform could also take parameters if needed, like perform(Actor actor) etc. I did something like this for my Pokemon clone game, each move (like ember for example) not only deals damage to the other pokemon, but it also has a chance of contaminating the other pokemon with a lingering effect (in case of ember, it was damage over time) so each move had an effect attached to it, and i simply implemented the perform method for each individual move, (sand attack lowers accuracy, etc)
  2. Hey guys, i've been making a little super mario clone in Java but I need help, you see, if you download it and play it, you will notice it is quite stutter-y, and that really shouldn't be the case since it's such a small program. So i assume it's 2 things, either my game loop is faulty (i'll provide the code below) or it's simply that Java just sucks at this, so I'm gonna go with the first one cause i love Java. Anyways, here's my game loop.   /** * Contains the main flow of the game. */ private void run() { timer.schedule(new TimerTask() { private final BufferStrategy bf = frame.getBufferStrategy(); private long startTime = System.currentTimeMillis(); private long currTime = startTime; @Override public void run() { elapsedTime = System.currentTimeMillis() - currTime; currTime += elapsedTime; try { //get graphics g = bf.getDrawGraphics(); //get input inputGame(); //update the game updateGame(elapsedTime); //draw the game drawGame(g, elapsedTime); } finally { g.dispose(); } // Shows the contents of the backbuffer on the screen.; Toolkit.getDefaultToolkit().sync(); } //start this loop every 17 milliseconds, which is roughly 58 frames per second }, 10, 17); }the variable timer, is of class Timer in Java.util.Timer, not the swing Timer, which i heard is unreliable, but this one is too clearly. at the moment, I'm not really doing much with elapsedTime, but it's there just in case, i figured i didn't need it since that loop will run every 17 milliseconds, and my update and rendering methods only take 2-5 milliseconds to finish. Do you guys know of very effective game loops that provide very smooth rendering? I can provide more code if necessary, Thanks in advance!