And if you don't want to write your own... I have a Planet package or github repo for almost everything...
(old) slow functional physics in Racket --- https://github.com/jeapostrophe/pfp/blob/master/example.ss (old) interface to fast Chipmunk library --- https://github.com/jeapostrophe/chipmunk/ my current system in pure Racket with a broad phase / narrow phase distinction: https://github.com/get-bonus/get-bonus/tree/master/gb/physics Personally, I think you should use this opportunity to teach your kid the Pythagorean Theorem, like the Boostrap curriculum teaches: http://www.bootstrapworld.org/materials/ Jay On Tue, Nov 27, 2012 at 8:37 PM, Stephen Bloch <bl...@adelphi.edu> wrote: > > On Nov 27, 2012, at 8:56 PM, Yaron Minsky wrote: > >> I've been weaning my son off of Scratch in favor of Racket, and trying >> to get him to write interactive games using universe.ss and image.ss. >> I'm wondering if anyone has suggestions for how to do things like >> collision detection. image.ss has these nice first-class images, but >> I don't see a good way of querying two images to see if they overlap. > > Right, and the question doesn't even make sense at the "image" level because > images don't have locations. > > One "purist" answer would be to write your own collision detection, based on > whatever data type you're using for your model. If it has two fields > "player-posn" and "monster-posn", you can do a distance formula calculation > to find out how close those two points are to one another, and decide whether > it's close enough to constitute a "collision". If it has a list of posns (or > structs that contain posns), you can do that for each pair of elements in the > list. > > But that's a pain, however much one might learn from the process. If you > just want to get a game with collision detection up and running, it would be > nice if the image and/or universe libraries provided some support. An easy > example would be rects-intersect?: call it on the bounding rectangles of your > two translated images, and it tells you whether they intersect. (A student > could write that easily enough, and use it henceforth.) Spiffier, in case > you wanted to treat irregularly-shaped objects properly, would be a function > images-intersect? that takes in two translated images and tells whether there > is a pixel location for which both have nonzero alpha channels. > > How do you represent a "translated image"? It could be an image and a posn, > or it could be just an image formed by place-image onto an all-transparent > background. > >> Has anyone else had luck in doing this? universe has a nice >> programming model, but I've found it challenging to find simple ways >> of doing the kinds of things that Scratch makes easy. > > And vice versa, of course: there are lots of things that are easy in > universe, but very difficult in Scratch. > > > Stephen Bloch > sbl...@adelphi.edu > > > ____________________ > Racket Users list: > http://lists.racket-lang.org/users -- Jay McCarthy <j...@cs.byu.edu> Assistant Professor / Brigham Young University http://faculty.cs.byu.edu/~jay "The glory of God is Intelligence" - D&C 93 ____________________ Racket Users list: http://lists.racket-lang.org/users