|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On November 19 2011 22:22 klo8 wrote:Hi! I'm currently doing a Java 2 Mobile Edition game (an RPG, also, my first real game) for a class and I'm having a bit of trouble with the game loop. Right now, it looks about like this (the game loop class is a Runnable) public void run() { loadResources(); while(!gameOver) { updateScreen(); processKeys(); Thread.sleep(40); } } So, the game loop sleeps for 40 ms at every iteration, which results in 25 fps. When processing the keys, I want to move the player character 1 tile (32x32) each time he hits one of the movement buttons. Now, I can obviously make it so the player can move 32 pixel per step (each method call to player.move() increments or decrements the position in x or y by 32) , therefore 32 * 25 pixel per second, which is way too fast. I'm kind of stumped right now on how to make it so the player character can only move between tiles while also making him move at a reasonable speed.
Hey, Complete noob here that only codes a little in ahk, so ignore me if that doesnt work in java.
I would make a delay variable. Say, you want the player to be able to move every 20 iterations, the delay variable would be set to 0 every time keys are processed. after every iteration, the delay variable gets incremented by 1 and process keys are not executed until the delay variable is above 20.
less abstract, in ahk it would probably look a bit like this:
delay=20
loop, { if(gameOver!=1) { if(delay<20) { delay++ } else { processKeys() delay=0 } } updateScreen() sleep,40 }
|
On November 19 2011 22:22 klo8 wrote:Hi! I'm currently doing a Java 2 Mobile Edition game (an RPG, also, my first real game) for a class and I'm having a bit of trouble with the game loop. Right now, it looks about like this (the game loop class is a Runnable) public void run() { loadResources(); while(!gameOver) { updateScreen(); processKeys(); Thread.sleep(40); } } So, the game loop sleeps for 40 ms at every iteration, which results in 25 fps. When processing the keys, I want to move the player character 1 tile (32x32) each time he hits one of the movement buttons. Now, I can obviously make it so the player can move 32 pixel per step (each method call to player.move() increments or decrements the position in x or y by 32) , therefore 32 * 25 pixel per second, which is way too fast. I'm kind of stumped right now on how to make it so the player character can only move between tiles while also making him move at a reasonable speed.
Why not simply only process arrowkeys, when your character is perfectly aligned on a square? If a key is pressed, set a boolean in your character, that he has to move. As soon as he is aligned with your grid / tiles, switch the boolean off again. You can check for alignment with for example x % 32 == 0 && y % 32 == 0
|
I usually do something along the lines of:
long now = System.nanotime(); if(now-lastmove >= moveInterval) { player.move(); lastmove += moveInterval; }
This way the player will move at most every moveInterval nanoseconds...
Edit: also just always sleeping 40ms is a bad idea... just assume your game logic requires also 40ms... suddenly you are running only half the fps.
My standard java game loop looks something like this:
while(running) { long now = System.nanoTime(); if(now<nextUpdate) { Thread.sleep((nextUpdate-now)/1000000); } else { step(); nextUpdate += 1000000000/FPS; if(now<nextUpdate) { draw(); } } }
This way the game is guaranteed to run the requested FPS if the computer can keep up, And it will automatically start to "undersample" by skipping the drawing to ensure the game logic keeps it's pace (you may want to skip that part...)
|
On November 19 2011 22:22 klo8 wrote:Hi! I'm currently doing a Java 2 Mobile Edition game (an RPG, also, my first real game) for a class and I'm having a bit of trouble with the game loop. Right now, it looks about like this (the game loop class is a Runnable) public void run() { loadResources(); while(!gameOver) { updateScreen(); processKeys(); Thread.sleep(40); } } So, the game loop sleeps for 40 ms at every iteration, which results in 25 fps. When processing the keys, I want to move the player character 1 tile (32x32) each time he hits one of the movement buttons. Now, I can obviously make it so the player can move 32 pixel per step (each method call to player.move() increments or decrements the position in x or y by 32) , therefore 32 * 25 pixel per second, which is way too fast. I'm kind of stumped right now on how to make it so the player character can only move between tiles while also making him move at a reasonable speed.
Well first of all, sleeping for 40ms results in at most 25 fps, and reaches that if and only if your physics and rendering calculations take exactly 0 time. It isn't enough to sleep for 40ms minus elapsedTime either, it consistently overstates the amount of sleep required for properly limiting the rendering to 25 fps. There is an algorithm that calculates it precisely based on previous predictions, but I have no idea what it is called or where to find it.
For the problem of too fast movement in a (non-continuous) tiled game, you need to introduce limitations of user control. Ideally, the user input should trigger a movement action (with optional animation) instead of just teleporting the character to the next tile. This action takes some predefined non-zero time, and the user control is disabled (or queued) until it is finished. You store all information about the action and its progress in some kind of state (which can be different from the game state if you define the game state in terms of tiles, it's up to the implementation), and process it with a constant rate.
Which leads us to another concern. It is never a good idea to run your rendering and game physics (and user control) in the same loop, or even in the same thread. The rendering can take unpredictable amounts of time, and should not influence the speed of the physics. The ideal solution would be to run them in separate threads at separate rates, with proper concurrency management. Say, the physics loop might run at 100fps, but the rendering only at 30 fps tops.
Some related reading material: http://dewitters.koonsolo.com/gameloop.html http://gafferongames.com/game-physics/fix-your-timestep/
|
Are there any Javascript/Canvas/HTML5 hackers out there? I've been working on a framework for Canvas 2D Context for a while now and things are starting to come together (it's about 95% tested and 90% documented but there are some known holes, so be gentle).
The project is hosted at: http://gitorious.org/meta2d/core/trees/master/
If your browser is awesome (tested in FF7, Chrome14 -- Opera won't work right now, I assume IE will fail) you can try a demo of HTMLMouseEvent triggers here: http://mikemp.mit.edu/meta2d/demo/mouse.html
Unlike some other frameworks out there, this one is aimed at scalability of interactive applications without obfuscating the Context2D API. So you can port your existing canvas code over easily and use the extras that this framework provides to improve performance as needed.
It's a powerful utility if you want to write an HTML5 game, among other applications.
I'd appreciate some feedback & if you're interested in getting involved or have any questions feel free to pm me.
|
Just wondering if anyone is familiar with com programming and working with ifilters.
I used the following code to test: http://sites.google.com/site/idisposable/ExtractText.zip
Anyway, I'm trying to make use of ifilter to read the contents of PDF files. The problem occurs when I've recently installed adobe reader 10.1.1. This comes with an ifilter dll for pdf files. It used to work fine with version 9.x and lower ifilters. (I'm testing this on Windows 7 x86.)
This installed ifilter seems to work fine for the built in windows search.
I then downloaded the MS ifilter test suite and tried to test the ifilter usign the filtdump tool, which uses the ILoadFilter::LoadIFilter method to load the Ifilter DLL appropriate for the specified file name extension and prints the results. This works fine and says it's using IPersistStream. (Running Ifilter Explorer suggests that only IPersistFile is implemented and not IPersistStream. However, this seems to contradict the ifiltdump test.) However, in that code, I'm getting an error at the LoadIFilter API, which returns E_NOTIMPL error. I suspect that perhaps this new ifilter did not implement the IPersistFile.load method. However, I'm very curious how filtdump is able to extract the contents.
Thanks for reading and I appreciate any help or ideas on how to fix this.
|
This might be a shot in the dark, but does anyone know where I can get my hands on Access 2000? I need it to view some ancient vba app..
|
Not sure where to start here but is anyone proficient in VBA for excel? I always need input as I'm self taught and I do macros for alot of reporting.
|
On November 22 2011 23:43 Chillton wrote: Not sure where to start here but is anyone proficient in VBA for excel? I always need input as I'm self taught and I do macros for alot of reporting.
I know a bit about VBA and C# interop (i.e. macros for C#). I'm self taught as well though.
|
|
I need a report generation tool that - is free, - runs on both Linux and Windows, - can connect to MS SQL server, - lets me handcraft SQL queries, - has some sort of WYSIWYG editor for eye candy (font, colors, images, and all the things a manager needs to fill his reports with)
do you know of any?
|
So I have a hopefully simple question about a batch file I am trying to make.
@echo off Start "Dwarf Therapist - Caste.exe" /d "C:\Users\Me\Desktop\DF\DwarfTherapist 0.6.10" "Dwarf Therapist - Caste.exe"
This is a piece of the batch I am having issues with. I can't get it to start minimized. I have tried /m practically everywhere in the line but it will either just not run or start normally.
Also is the something like a step up from batch files without getting too confusing for someone who has never done programming before? Batch files seem very very limited.
|
On November 25 2011 15:05 Brambled wrote: So I have a hopefully simple question about a batch file I am trying to make.
@echo off Start "Dwarf Therapist - Caste.exe" /d "C:\Users\Me\Desktop\DF\DwarfTherapist 0.6.10" "Dwarf Therapist - Caste.exe"
This is a piece of the batch I am having issues with. I can't get it to start minimized. I have tried /m practically everywhere in the line but it will either just not run or start normally.
Also is the something like a step up from batch files without getting too confusing for someone who has never done programming before? Batch files seem very very limited. Batch files aren't too limited, you have control structures like if else and looping, subroutines, variables.
Have you tried creating a batch file to run a shortcut, with the shortcut containing the path + /m parameter?
|
On November 25 2011 15:05 Brambled wrote: So I have a hopefully simple question about a batch file I am trying to make.
@echo off Start "Dwarf Therapist - Caste.exe" /d "C:\Users\Me\Desktop\DF\DwarfTherapist 0.6.10" "Dwarf Therapist - Caste.exe"
This is a piece of the batch I am having issues with. I can't get it to start minimized. I have tried /m practically everywhere in the line but it will either just not run or start normally.
Also is the something like a step up from batch files without getting too confusing for someone who has never done programming before? Batch files seem very very limited.
Try /min not /m
What about batch do you find limitted?
|
Does anyone have any suggestions for reading and manipulating PNG files with Python? PyPNG is outdated and PIM won't install on my computer.
|
On November 23 2011 03:19 dementrio wrote: I need a report generation tool that - is free, - runs on both Linux and Windows, - can connect to MS SQL server, - lets me handcraft SQL queries, - has some sort of WYSIWYG editor for eye candy (font, colors, images, and all the things a manager needs to fill his reports with)
do you know of any? Have a look at ireports and BIRT
|
Good day to you guys,
I need help on ASM. Basically how can you store a double value then multiply it to an integer value or another double value?
heres another problem. If somebody can help me with my code. here it is:
INVOKE printf,ADDR msg1fmt,ADDR msg1 .while row<=10
.while column<=10 mov eax,row imul column mov mulTot,eax inc column INVOKE printf,ADDR in1fmt, mulTot .endw
mov column,1 INVOKE printf,ADDR msg1fmt, ADDR a inc row .endw
the problem is that the first printf outside the while loop keeps printing everytime the loop executes. I only want it to print in the start of the program. Thanks in advance
|
Guyabs, what OS and assembler are you using?
|
im using windows vista, visual c++ express. nevermind the code i got it sorted out. my only problem now is the double value.
|
On November 30 2011 08:52 guyabs wrote: im using windows vista, visual c++ express. nevermind the code i got it sorted out. my only problem now is the double value. If you've already got the double value stored, try changing the integer to a double and multiplying them. Typing is really picky (and sometimes weird) in assembly and C++.
|
|
|
|