Alright, I'm wanting to make a simple Zelda-esque combat system, but I'll be frank and say that I do not understand BYOND's built in pixel movement very well; despite reading LummoxJR's Pixel Perfect article.
Essentially, I just want to make it so that when a player uses an attack verb their character will pause for a moment, and a sword icon will be displayed in front of them for a during the pause. Any mob that is under the sword on creation is considered hit, and takes damage yada yada.
Thanks for your time
ID:273990
Nov 8 2011, 2:12 pm (Edited on Nov 13 2011, 7:13 pm)
|
|
Nov 13 2011, 7:13 pm
|
|
Bumping with edits to clarify what I was looking for.
|
Forum_account's Pixel Movement library actually includes a Zelda demonstration. Once downloaded, expand the zelda-demo folder and check both demo.dm and map.dmm.
|
In response to XaKING
|
|
Thanks, I tried working with Forum_Account's library in the past, but it's above my level of comprehension at the moment. Personally, I just want something a bit more simplistic. I'm wanting to do this for learning how to use BYOND's native pixel movement better, rather than to get something out.
Thanks for the reply, though. |
In response to Gravity Sandwich
|
|
BYOND's native pixel movement isn't really all that different than the tile movement you're used to. If you have a clear understanding of tile movement it shouldn't take much to wrap your head around pixel movement. Density, Bump(), step(), all that stuff pretty much works exactly the same with pixel movement as it does with tile movement.
The first variable you should get accustomed to using is step_size. It's a variable used to determine how many pixels an atom moves per step. The default is 32, basically moving one full tile per step. Lowering it to 16 for example will cause the atom to step 16 pixels rather than 32, a half tile rather than a full tile. Lowering it even further will allow smoother pixel movement, but with the default tick_lag the atoms will move around quite slow. With the fps variable you can set the frames per second, increasing it from 10 to 30 will dramatically increase the speed of your game but keep in mind that will also increase the required processing power of the computer running it. The variables bound_width and bound_height are used to determine the size of an atom. By default everything is 32x32 (bound_width=32,bound_height=32), that's one full tile. If you wanted an atom to only take up a half tile you would set it to 16x16 (bound_width=16,bound_height=16). If an atom is smaller than a full tile that means it can collide with other small atoms occupying the same tile. That small bit should be enough to set you in the right direction. You can read more about pixel movement here. |
In response to SuperAntx
|
|
Thanks for the reply, SuperAntx. I think I was overthinking everything about pixel movement. After reading your post I just sat down, thought about it, and checked out a few libraries for inspiration. In the end I was able to get exactly what I wanted, with it working perfectly. Thank you for steering in the right direction.
Once I'm finished everything, I may release the engine as a library in the resource section; just in case someone gets as confused as I did :). |