Hello! This is a bit of a Java question + a Codename One question. I'm 
migrating a project from another library that uses C to Codename One's API. 
Here is an example of how I do it currently, starting with the function 
prototype:

void Draw(_Texture *tex,    // Source texture
          _Rect *src,       // Which pixels in the texture will we be 
copying?
          _Rect *dst        // At what x/y will we be placing these pixels 
on the screen?
         );

Then, let's say I have an optimized sprite sheet with a _Rect array that 
specifies where every sprite on the sprite sheet is:

_Rect sprite[]={
    { 0, 0, 46, 49 },    // Stand Right
    { 46, 0, 15, 15 },   // Walk Right 1
    { 46, 15, 15, 15 },  // Walk Right 2
    { 46, 30, 15, 17 },  // Stand Left
    { 102, 20, 15, 17 }, // Walk Left 1
    { 117, 20, 15, 17 }  // Walk Left 2
};

And the player is at a position that is always changing:

_Rect playerRect={Player.x,Player.y};

The final function call would look like:

Draw(Player.tex,&sprite[Player.sprite],&playerRect);

This has proven to be an incredibly fast and portable solution for me, 
which I have used for some Wii homebrew apps for fun. It's sort of a 
write-once, compile anywhere solution. With some #ifdefs, the contents of 
"Draw" change based on the target platform, but the function always takes 
the same arguments and handles them in a multi-platform way. However, 
extending my API (if you can even call it that) to work on Android and 
iOS... no need for that when projects like Codename One exist. :)

Can I please get a simple runnable example that does something like this? I 
have been digging through the documentation for a couple of days now and 
none of the Frankenstein code I'm writing so far works. I'm trying to make 
it so it has this redraw loop going 30 or 60 frames per second where 
objects get evaluated and can move every frame, that way, it can be more 
familiar to the workflow I'm adjusted to than putting animation frames in 
form labels and the like.

I also think an example like this would make Codename One more accessible 
for newcomers who want to use it to make simple 2D games, where manually 
handling on-screen objects in this way is preferable and offers more 
control over the end result. :)

Anyone care to help a CN1 n00b out? :)

-- 
You received this message because you are subscribed to the Google Groups 
"CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at https://groups.google.com/group/codenameone-discussions.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/codenameone-discussions/d91cba10-2ff0-4d4d-96bb-1e9dc247d23f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to