Not logged inGosu Forums
Forum back to libgosu.org Help Search Register Login
Up Forum
1 2 3 4 5 6 Previous Next  
Search
Topic Gosu::Graphics::flush() / Gosu::Window#flush By erisdiscord Date 2010-08-01 16:10
Precisely. The way it is now, Gosu actually maintains a priority queue of drawing operations, and when you call a drawing method, it's inserted into the queue sorted by Z order. After your Window#draw method returns, then all the drawing is done from back to front. flush goes ahead and draws everything so that you can draw, say, a second layer on top of your game without worrying about making sure your Z indices are higher than anything else that you've drawn.

This is good news. Now I can get rid of the Z option for my ring menu and just make it flush the draw op queue after drawing the previous state. :)
Topic Ruby Packaging on Windows By erisdiscord Date 2010-07-29 23:32
Short answer: put that code at the very beginning of your file. GAMEROOT is something you will have to calculate yourself, and it is the folder where all your game's stuff is. The more in-depth answer follows.

GAMEROOT: To get the folder your game lives in, I believe File.dirname($PROGRAM_NAME) will do what you want—it does on Mac and Linux, but I don't have experience with Ruby on Windows.

ENV['PATH']: ENV is a Hash-like object that grants access to your program's environment variables—basically information about the environment the program is running in that it passes on to its children. These variables can be modified by any process, but changes only apply to that process and any child processes it spawns after the change. These values can only be strings.

PATH in particular is a colon-separated (Unix) or semicolon-separated (Windows) list of directories that tells the operating system where to search for an executable when it's called. Apparently, on Windows, it's also used to find dynamic libraries.

Putting it all together: ENV['PATH'] = File.join(GAMEROOT, 'lib') + ';' + ENV['PATH'] is essentially prepending your own search path to the list of search paths. File.join(GAMEROOT, 'lib') can be seen as a fancy way of saying "#{GAMEROOT}/lib", but it will use the platform's native directory separator instead of a hard-coded one. The semicolon is, of course, to separate your path from the rest.

If your lib folder is going to be in the same folder as your executable, the code you'll actually want to put at the top of your main file would look something like this:

game_root = File.dirname $PROGRAM_NAME
ENV['PATH'] = File.join(game_root, 'lib') + ';' + ENV['PATH']


If you intend to distribute the same code for other platforms, then you'll want to put this in a conditional that only runs if the game is running under Windows.

I'll delegate solving "quitting in an unusual way" to someone else, because I'm afraid I'd have no idea without poking at it myself. Otherwise, if you'd like any clarification, I'll be glad to provide.
Topic Chipmunk Collision Handlers in Ruby By erisdiscord Date 2010-07-27 01:46
I don't have access to Windows so I can't say for sure, but Ruby FFI officially supports Windows, so chipmunk-ffi should work there.
Topic Chipmunk Collision Handlers in Ruby By erisdiscord Date 2010-07-25 18:52
Strictly speaking, Method and Proc objects are distinct, but you can convert a method to a proc easily. :) The nice thing is that the method stays bound to the object it belongs to, so you can pass it around and call it just like a proc and self will still be the  original "owner" object.

Good luck with your Ruby learning, and computer science in general. Don't forget to dabble with other languages too!
Topic Chipmunk Collision Handlers in Ruby By erisdiscord Date 2010-07-24 06:26
Arity is the number of arguments a method takes—sorry, I took for granted that it is pretty standard terminology. :) You'll know its arity because you declared its argument list yourself, of course.

The collision handlers are probably there just because Chipmunk itself uses a roughly equivalent data structure. If you want to use one of those, the methods should have the short names of begin, pre, post and sep. Only the ones you've defined will be called.

You can pass a block (or lambda, or method, or anything that can be converted to a Proc object) to the other method I mentioned, add_collision_func.
Topic Chipmunk Collision Handlers in Ruby By erisdiscord Date 2010-07-24 00:29
I believe it's outdated—see my response about chipmunk-ffi for more info. :)
Topic Chipmunk Collision Handlers in Ruby By erisdiscord Date 2010-07-24 00:28
I'd recommend looking at chipmunk-ffi for your Chipmunk needs, although I'm not a neutral party since I've contributed to it. ;) You can call Space#add_collision_handler(a, b, handler) and pass any object that responds to begin, pre, post and/or sep. You don't need to use a particular class and you don't need to implement all the methods.

If you just want to have a particular method called, you could call Space#add_collision_func(a, b, type, &block) and pass, say, &your_object.method(:handle_collision) as the last parameter instead of a block.

Your collision callback will get different arguments depending on its arity. It will either receive a single Arbiter or the two colliding Shape objects. The single argument form is preferred since the arbiter holds the two shapes plus additional collision information. Have a look at chipmunk-ffi/arbiter.rb to see what exactly it offers.

Any further questions? :)
Topic Useful tools for game development By erisdiscord Date 2010-07-19 21:44
Git seems to be gaining ground with the Rails community over SVN (especially since the Rails project itself uses it), so if you're already using it then you should probably stick with it. :) I developed a Rails application with Mercurial and it became kind of a pain installing plugins because I ended up with a bunch of git repositories in my mercurial repository. Yuck. I'm thinking of switching over to git next time I update the application.

Also, yeah, we're veering off topic. Oops!
Topic Useful tools for game development By erisdiscord Date 2010-07-19 18:43
I tried SVN and it was kind of a pain to use; more so with multiple contributors, I gather. I'm curious what the draw is. :)
Topic Useful tools for game development By erisdiscord Date 2010-07-19 18:41
Yessir. I'm not on there for the community; I sign on like once or twice a month with a couple of friends because there's something we want to build. :)

I do know someone who runs a private island sim and makes enough money renting virtual land to pay for the costs plus a little extra spending money, so it's pretty cool if you've got some cash to invest and you're good at running a business. I'm no such entrepreneur, myself.
Topic Useful tools for game development By erisdiscord Date 2010-07-19 04:40
I second Blender. It's pretty daunting at first glance, but get a tutorial and I think you'll find that it's a lot easier than it seems. I went from knowing nothing to having a decent Second Life sculpt in less than a day. It's also pretty compact! The installed size is under 50 MB on OS X. Compare this with a beast like Maya or DAZ Studio that requires hundreds.

I used to like Wings3D too, until I learned Blender. I recommend this one if you just can't get the hang of the other. :)

Oh yeah, and I love GitHub. When it came time to decide on a VCS, I chose git so I could use GitHub. Another one of those things that seems daunting at first glance but turns out to be pretty easy to use.
Topic Font Doesn't Draw As Expected By erisdiscord Date 2010-07-17 23:31
I assume the OP is using Ruby based on the screen shot. Ruby Gosu's font constructor only accepts the font name and size.
Topic Font Doesn't Draw As Expected By erisdiscord Date 2010-07-17 21:13
Gosu draws bold by default; there's a topic about text formatting on the forum that should help you out.

Short answer: start your strings with </b> to turn off bold.
Topic Fade-in Fade-out, How Would You Do It? By erisdiscord Date 2010-06-19 15:44
I'm not terribly familiar with RGSS (being n a Mac and all), but what Julian said is exactly what I'm talking about. It's a pretty straightforward design pattern once you get the hang of it and it makes for much cleaner code.

Chingu actually keeps an array of game states so that you can push another state onto the end of the array instead of replacing the current one for when you want to open a menu or a pause screen but then return to the map after. It also lets you do stuff like this (roughly; not guaranteed to be a working example :) ):

  def draw
    previous_game_state.draw
    fill_screen 0x80000000
    # draw menu
  end
Topic Fade-in Fade-out, How Would You Do It? By erisdiscord Date 2010-06-17 22:50
You could stop updating your game objects and keep drawing them as they are, with a black quad over the screen that gets darker each frame. This is done more easily with some sort of game state object that will handle that sort of stuff for you.

Are you using Ruby or C++? I definitely recommend looking at Chingu if you're using Ruby; it will do this fade in and out for you automagically.
Topic Gosu text consistency By erisdiscord Date 2010-06-17 22:47
Looks like Monaco; I'm not sure if it's available for Windows since it's an Apple typeface.
Topic No Place Like Homeless (UPDATED 6.22.2014) By erisdiscord Date 2010-06-17 18:00
Background's definitely better now. I'd still tone it down just a wee bit since it kinda swallows the railing, but everything is much more visible now. I like the art direction overall and I'm pretty psyched up to try the game. :)
Topic Gosu 0.7.22 released By erisdiscord Date 2010-06-16 18:39
Awesome, thanks. :D
Topic Gosu VS SDL By erisdiscord Date 2010-06-14 19:05
I think it's a pretty straightforward comparison for me really. I mean, the libraries have different goals in mind, but Gosu takes "easy" hands down—and  this from someone who's better with C than C++. SDL gives you a lot more flexibility, but Gosu does a lot of things for you automagically: your run loop, input handling (to a degree), z ordering and all are handled by Gosu so you just tell it what to update and what to draw.
Topic Gosu 0.7.21 released By erisdiscord Date 2010-06-14 19:00
Yeah, it's kind of backwards from OpenGL's way of doing it; I was imagining rotate and translate to be something akin to this:

glPushMatrix();
  glTranslate(x, y);
  glPushMatrix();
    glRotate(theta);
    /* draw code here */
  glPopMatrix();
glPopMatrix();


Except with drawing order handled automagically, of course. You're right that the nested transformations aren't terribly useful the way they are, at least not for any use case I can contrive. Nested translations or rotations should still be fine, but mixing the two will only end in tears.

No worries for now; translation was the most important thing to me, because there's a lot more of that in the kind of game I want to make. If you change the order for 0.7.22 I'll consider it a bonus. Maybe I can make big bosses. :)
Topic Gosu 0.7.21 released By erisdiscord Date 2010-06-14 06:32
In fact, it appears that the behavior is precisely the opposite of what I am expecting. Take this hypothetical but totally pointless window class:

class Window < Gosu::Window
  def initialize
    super 320, 240, false
   
    @x, @y = 0.0, 0.0
    @theta = 0.0
   
    @vx, @vy = 0.0, 0.0
    @omega   = 0.0
   
  end
 
  def button_down id
    case id
    when Gosu::KbLeft     then @vx    -= 1
    when Gosu::KbRight    then @vx    += 1
    when Gosu::KbUp       then @vy    -= 1
    when Gosu::KbDown     then @vy    += 1
    when Gosu::KbPageUp   then @omega -= 1
    when Gosu::KbPageDown then @omega += 1
    end
  end
 
  def button_up id
    case id
    when Gosu::KbLeft     then @vx    += 1
    when Gosu::KbRight    then @vx    -= 1
    when Gosu::KbUp       then @vy    += 1
    when Gosu::KbDown     then @vy    -= 1
    when Gosu::KbPageUp   then @omega += 1
    when Gosu::KbPageDown then @omega -= 1
    end
  end
 
  def update
    @x     += @vx
    @y     += @vy
    @theta += @omega
  end
 
  def draw
    translate @x, @y do
      rotate @theta do
        draw_quad \
          -8, -8, Gosu::Color::WHITE,
          +8, -8, Gosu::Color::WHITE,
          +8, +8, Gosu::Color::WHITE,
          -8, +8, Gosu::Color::WHITE, 0
      end # rotate
    end # translate
  end
end


To me, coming from OpenGL, pressing page up and page down should cause the square to rotate in place; what happens is that it rotates about the origin. I assume the transformations are being applied in reverse order? It's kind of weird.
Topic Gosu 0.7.21 released By erisdiscord Date 2010-06-13 21:47
It looks like it's something like HTML entities, to go with the HTML-like formatting. For instance: font.register_entity('smile', smile_image) might draw a smiley face (one assumes) wherever it sees &smile; in your string.
Topic Gosu 0.7.21 released By erisdiscord Date 2010-06-13 19:34
Excellent; now I can use these lovely transformations for composite sprites and such. Thanks for the credit in the source file. :)
Topic Built-in scrolling and transformations in general By erisdiscord Date 2010-06-10 17:14
Julian, you, sir, are a god among men. This will make my life a lot easier when I want to make composite objects too. Thanks for adding it. :)
Topic How to use multiply drawing mode in Gosu? By erisdiscord Date 2010-06-09 00:42
You can't really define a color as 0xGGGGGG though—how would you do superwhite with Gosu? :)

I think a spotlight effect could also be achieved using shaders—sorry, I think they're cool! I might play with the shader library from this forum and try just that, for science.
Topic Built-in scrolling and transformations in general By erisdiscord Date 2010-06-08 15:50
Oh crap, see, I forgot to even add it to the git repository. Here it is, but it's nothing spectacular. I resorted to using friend class ugliness to restrict the begin and end methods from the user. I can't say C++ is my strong point. :)

As for Ruby, I'm pretty sure there are Matrix and Vector classes in the standard library, and both of them can be had by a simple require 'matrix'. Ruby matrices are row-major and OpenGL matrices are column-major, so this will have to be accounted for either in your code or ours.

Meanwhile, If you're going to offer dedicated rotate, translate &c operations on the Ruby side, you should still offer a generic transform method that accepts arbitrary transformation matrices also; I'm sure someone will find something awesome to do with that. :)
Attachment: Transform.hpp - Gosu/Transform.hpp (1k)
Attachment: Transform-1.cpp - GosuImpl/Graphics/Transform.cpp (1k)
Topic Built-in scrolling and transformations in general By erisdiscord Date 2010-06-08 08:44
I dug into Gosu's source again and added a rudimentary sort of transformations system to the C++ side. Graphics has two new functions: beginTransform(Gosu::Transform) and endTransform. The Transform class basically wraps an arbitrary OpenGL matrix and provides helper methods to generate rotation, translation and scaling in two dimensions.

As it's implemented, DrawOpQueue maintains a list of transformations and each DrawOp gets a snapshot of that list when it goes into the queue. It's copy-heavy and does glPushMatrix and glPopMatrix for each transformation, so it could probably be optimised a lot. I probably should also have named the class Matrix and made it act like one.

I have made no attempt at Ruby bindings. Or rather, I attempted and got frustrated with Swig and gave up. :)

Here's a patch that I made against the GitHub repository at revision 7ab7a0cc7a1442a88c259448c491d5ba2c738545. I did this all while I should have been sleeping (it's 4:43 here now), so please go easy on me!

Oh yeah, and the patch doesn't include changes to the Xcode project file or anything else really. I'll get on that after I've caught up on lost sleep.
Attachment: gosu-transform.diff - Gosu transformations patch (4k)
Topic Gosu and Rubinius By erisdiscord Date 2010-06-02 16:29
Rubinius compiles Ruby to LLVM bytecode, and I believe this bytecode can be written out to a file similar to Java class files. It's pretty cool if you ask me—maybe I ought to check it out myself.
Topic Color & Tone By erisdiscord Date 2010-05-15 02:52
I like this idea. Does anyone know whether shaders can be applied per-texture? I'm not too well versed in OpenGL beyond the basic drawing primitives. It would be cool to see an API in place for per-draw and fullscreen shaders instead of having a ton of different parameters or calls for operations that could be done using that one shader call.

Of course, I'm also not sure how backwards-compatible Julian wants to be nor how widely available shaders are.
Topic Draw on another window By erisdiscord Date 2010-05-11 05:59
Well, MacRuby has a more sensible threading model (no GIL), and now they are working on support for C extensions, so there's a chance Gosu would work there—but that won't help you on any other platform, sadly.

I think jruby supports proper threading also, but I don't know about C extensions. I think it doesn't support them—can anybody confirm? There's Ruby FFI for that, of course, but that won't help with Gosu. I bet somebody clever could do it, but I'm not that clever. Wouldn't it be nice if FFI could speak C++? :)
Topic Secret of Mana-style radial menu for Chingu By erisdiscord Date 2010-05-07 03:59
Hmm. I love the idea of "rotating" the array contents, although I don't feel comfortable with monkey patching Array to add functionality that just one other class is using. Perhaps a subclass would be more appropriate in this case. Mind if I steal that idea, anyway? What's the license on your code? :)
Topic Secret of Mana-style radial menu for Chingu By erisdiscord Date 2010-05-03 01:58
Aaahhh right away, boss. As soon as I can say applying_matrix(…) { … }, that is. ;D

It really is a dream of an interface for a small menu, isn't it?
Topic Secret of Mana-style radial menu for Chingu By erisdiscord Date 2010-05-02 19:50
For those not familiar with Secret of Mana, the menu system looked something like this. I always thought it was the best thing since fried dough, and I recently half-remembered an old implementation I made years ago with Perl and SDL. I figured I could do it again, this time in Ruby, and make it better than before—and here it is.

gosu-ring on github

Probably needs some cleanup and a little refactoring because it was written between 2:00 and 5:00 this morning before I went to bed. It's there, though, and you're free to use it as you see fit. Same license as Gosu for simplicity's sake. Please submit any improvements back to me. :)

I might be renaming it "Chingu Ringu" because I thought of it this morning and it made me laugh.
Topic Built-in scrolling and transformations in general By erisdiscord Date 2010-04-30 18:11
Aha, thank you. I will try disablng that step as soon as I get a chance to try it. I'll whine at you some more if I hi another snag. :) I may yet come to fully appreciate Xcode!

UPDATE: Yes, I've managed to get it to build. Had to add /usr/local/include/ruby-1.9.1 and a subdirectory to the include paths and turn off i386 and ppc (since I don't have a universal Ruby 1.9). Builds cleanly now that I've done all that and disabled the SWIG step, though.

As for me, I have been using Homebrew for a package manager lately and it seems to keep out of my business pretty well. Linking to system libraries where available (unlike, say, MacPorts) is a kindness unheard of in the world of package management.
Topic Built-in scrolling and transformations in general By erisdiscord Date 2010-04-30 14:51
Ouch, yeah, the GNU build system is a horrible monster that needs to die. We need a new cross-platform build system that isn't and I haven't found one yet. :( I'll spare the rant about where Xcode has burned me because it is an adorable kitten with a nice UI in comparison.

Now that I have the 10.4 SDK, I've traced my build problems to SWIG. Mine is generating different (but still wrong!) code from yours so the patch is failing and I'm getting a bunch of crazy errors (including "void pointer used in arithmetic") where the patch corrections have missed. I can't apply the patch by hand because the code looks so different that I can't really tell where the fixes should go and what I should erase. My SWIG is version 1.3.31 and it's in /usr/bin so I think it came with the system. I don't install things there.
Topic Built-in scrolling and transformations in general By erisdiscord Date 2010-04-29 12:05
I agree with the global state philosophy in general, but I couldn't think of a clean way to implement it. I haven't delved too far into the code, but it's my understanding that Gosu sorts drawing operations by Z order and draws back to front, correct? I'm not an expert on OpenGL, but I seem to recall that this has to be done for the scene to look right.

Given that, how would the translation effect be pulled off? I suppose you could add a translation parameter to the drawing ops, but then that would add unneeded complexity and you'd still be doing the translation math (albeit hardware accelerated matrix math) for each draw, and then that wouldn't take into account arbitrary translations. Flush the drawing cache after each block? Then you'd have Z ordering issues. Of course, this stuff is why I prefer to use your framework rather than using SDL or OpenGL directly. :D

I'm definitely aware of people's problems building the library. I blame Xcode on the Mac side—it's a decent tool but the level of complexity available for project configurations is problematic. I think I've traced my problem to not having the 10.4 SDK installed, but we'll see!
Topic Built-in scrolling and transformations in general By erisdiscord Date 2010-04-28 20:59
It would be nice and convenient and probably faster for games that require screen scrolling if Gosu's drawing code did something like this:

glPushMatrix();
glTranslatef(pimpl->scrollX, pimpl->scrollY, 0.0);
/* Gosu's drawing magic here */
glPopMatrix();


The Graphics object (or Window in Ruby) would present functions for getting and setting the X and Y scroll offsets and drawing code built on top of Gosu would not need to concern itself with additional arithmetic to handle screen scrolling. Of course, monkey patching on the Ruby side could do this for me, but it seems like a glTranslatef-based approach would be faster. Comments?

[ I tried implementing it myself, but I can't for the life of me get Gosu to build cleanly on my system. After unpacking Ruby 1.9's source into the appropriate location and running rake mac:gem, it still fails spectacularly during the xcode build. I'll ask for help with this problem later. :) ]

(Took the liberty to rename this topic as it evolved—jlnr)
Topic Image Wont Draw! By erisdiscord Date 2010-04-19 03:35
Hey, that async_new actually sounds pretty genius. Consider this a formal request? :)

It would be useful for loading non-vital network resources—say, custom character graphics that could be represented by a placeholder until they are loaded. In fact, I have tried to implement something similar using a proxy object.
Topic TexPlay, drawing and hit-testing for Gosu::Image [from wiki] By erisdiscord Date 2010-04-02 16:29
If you need a tilemap class in Ruby, do have a look at my gosu-tmx. It's not complete, but contributors are welcome and encouraged.

Right now it loads TMX maps, of course, which can be made with the open source and cross platform Tiled. If I remember correctly, it doesn't handle maps where different layers have different tile sizes, but this could be added. It also only supports orthogonal maps, but these are probably what you want.

If you do make any changes, please let me know and send them back my way. :)

</shameless-self-promotion>
Topic The Shinobi Chef Gosu Game/App Competition 2009/2010 By erisdiscord Date 2010-03-31 21:06
Using a lower pixel test would also allow you to implement floor-hugging if that's your thing. Sonic the Hedgehog (the original Genesis/MegaDrive game) uses two floor sensors that extend, I believe, nine pixels below Sonic's feet. The engine snaps his feet to ground level if his vertical speed is zero or downward when a sensor detects a solid tile.
Topic The Shinobi Chef Gosu Game/App Competition 2009/2010 By erisdiscord Date 2010-03-31 16:50
Looks good, but I can't jump while running down slopes. :) More than I could do in four days though!
Topic The Shinobi Chef Gosu Game/App Competition 2009/2010 By erisdiscord Date 2010-03-10 03:13
Don't hold your breath for a wrapper either—I'm a master procrastinator. :D

We could start a project over on github or something if you're cool with that. Im pretty fond of it myself and I hate to have forgotten code bit-rotting away on my notebook when other people might find it useful. There is a distinct lack of good tile-based collision engines out there.
Topic The Shinobi Chef Gosu Game/App Competition 2009/2010 By erisdiscord Date 2010-03-10 03:04
Ah yes, I forget that Gosu is bilingual! I'd love to try my hand at a ruby wrapper for it (a port would probably be slow like my deal was) if it can be isolated from the rest of the game code—and if I can find time for it, although I really ought to be looking for a job right now.
Topic The Shinobi Chef Gosu Game/App Competition 2009/2010 By erisdiscord Date 2010-03-10 01:57
You got my interest. Can you do arbitrary ray tests across the map or are they constrained to a tile? Is this done in pure ruby or is there some C magic in there too? Am I asking too many questions? :)
Topic The Shinobi Chef Gosu Game/App Competition 2009/2010 By erisdiscord Date 2010-03-10 01:37
Guess I was wrong actually! Sonic the Hedgehog uses two floor sensors that return, I believe, the amount of overlap between the sensor and the tile and uses those to determine whether the character is on a slope or ledge. :)
Topic Workaround to use Custom Fonts in LINUX By erisdiscord Date 2010-03-10 01:10
Mm, true, but web safe fonts means the likes of Arial (gag). :)

Any chance of exposing some of SDL_ttf's rendering options through Gosu?
Topic The Shinobi Chef Gosu Game/App Competition 2009/2010 By erisdiscord Date 2010-03-09 23:10
Without knowing anything about your game, I bet it's similar to the slope implementation in Sonic the Hedgehog. Maybe not. Can the character also walk up low ledges? :)

I'd like to get my hands on your collision and movement code. I've been poking around with some documentation about the Sonic collision engine but I haven't managed to turn out anything that works nicely at a reasonable speed.
Topic Workaround to use Custom Fonts in LINUX By erisdiscord Date 2010-03-09 23:02
I think that the ability to load a font by file name is more useful than loading a preinstalled system font since you are never guaranteed the presence of a font on any given system—especially working with cross-platform development.

There is always the option for Gosu to use a platform-appropriate method to find the file name of an installed font as well.
Topic [Texplay] Ruby GC make the game freeze when using Texplay By erisdiscord Date 2010-02-28 17:14
I don't know if you've caught this yet, but I clicked on the status bar on the right and the game crashed with this:

window.rb:102:in button_down': undefined method []' for nil:NilClass (NoMethodError)
  from PetriWars.rb:88:in show'
  from PetriWars.rb:88:in
<main>'


I suspect a test to make sure the pointer is over the playfield might be in order. :)
Topic [ruby/optim] How to update the modified sprites only? By erisdiscord Date 2010-02-26 03:21
Gosu doesn't provide a way to update only part of the screen as far as I know—you draw everything each turn. I'm pretty sure this is the nature of OpenGL, which is ultimately what you're using behind the scenes.

You could try looking at TexPlay to dynamically modify a single WidthTab by HeightTab texture after each update, paint the pixels corresponding to the changed cells, then draw that single texture to the screen on every draw. I haven't used TexPlay myself, but it should be fast enough to do what you want provided that you do all your texture painting in the same Image#paint block.

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill