Yes, this is all very useful. Thank you. I will probably end up using zazz for animated sprites (unless I end up needing non-looping sprites, or fancy events that report when animations end, and things like that). But it's very useful to be able to understand the subtleties of working with contraptions. Decker is awesome, but a bit overwhelming at the beginning.
tjohnman
Creator of
Recent community posts
Is it possible for a contraption to change its own size? I'm creating an animated sprite contraption that gets the sprite width and height from its attributes, and then shows an animation taken from a sprite sheet card.
I tried to do
me.size:(sprite_width.text,sprite_height.text)
on the view event, but it doesn't do anything when the contraption is running on a card (it does change its size when running inside the prototype view). I'm saving the state in hidden fields inside the prototype. Here's the whole script:
on get_spritesheet do sprite_sheet_card.text end on set_spritesheet x do sprite_sheet_card.text: x end on get_frames do frames.text+0 end on set_frames x do frames.text:x end on get_sprite_width do sprite_width.text+0 end on set_sprite_width x do sprite_width.text:x end on get_sprite_height do sprite_height.text+0 end on set_sprite_height x do sprite_height.text:x end on get_fps do fps.text+0 end on set_fps x do fps.text:x end on get_loop do loop.text+0 end on set_loop x do loop.text:x end on get_current_frame do current_frame.text+0 end on set_current_frame x do current_frame.text:x end on view do me.size:(sprite_width.text,sprite_height.text) c:deck.cards[sprite_sheet_card.text] w:c.image.size[0] h:c.image.size[1] f:current_frame.text i:c.image me.image.paste[i.copy[(w%sprite_width.text*floor f,floor sprite_width.text*floor f / w) (sprite_width.text,sprite_height.text)]] current_frame.text:frames.text%f+fps.text*1/60 end
The only thing I'm missing is for the contraption to resize itself to fit the configured sprite size.
EDIT: I made the prototype resizable, and it's working now. The problem is that the state is shared between different instances of the same prototype, so I'm obviously doing something very wrong here.
I made it past the first level and then the emulator crashed when it tried to speak. I've used text to speech without issues in the past, so the problem might be related to the following.
After I downloaded your stack I found you uploaded it as is, without compressing it or anything. Old Mac programs and documents had a thing called "resource fork" that is unique to the old Macintosh file system and it gets lost whenever you store the file in a different file system, such as essentially any modern one.
Long story short, you should use DropStuff* to package it before uploading it so that the resource fork is preserved. Either that or sharing the disk image (.dsk or .img) containing the stack instead of the stack document directly.
If you don't have the original, you can fix the stack you download from this page by opening it in ResEdit and editting the file's type and creator to STAK and WILD respectively. Just open it in ResEdit and choose "Get info" from the File menu.
It was cool to see people trying out good old HyperCard. Especially people who weren't even born back then!
* You might need this to be able to uncompress the applications you download.
I had some issues trying to play it. I had a controller connected and the camera went nuts as soon as the game started. I had to quit, unplug, and open it again.
Then for the life of me I couldn't figure out the controls. I got as far as taking out my sword and switching weapons. I missed having some prompts to know what to press.
I really like the aesthetics in this. It's unique. And the menu UI is a joy to interact with. The only gripe I have is that the movement lacks a bit of "weight" (for my taste), but the gameplay is solid, the ambience is great, and the enemies and the world feel really interesting. I've wishlisted it as well, but I'm going to keep playing this demo for a while.
That difficulty curve is REAL! I had a lot of fun playing this, but since the two first phases were so easy, I was a bit too unprepared for the real deal in the final one. That's were I had the most fun, however.
I loved the music, too. The only gripe I have is (besides it being too short) that it took me a while to realise I couldn't hurt the little guys.
Thank you very much! To be honest throughout development I was constantly nagged by the feeling that it wasn’t obvious enough that the player was the boss, and I was afraid it would feel like I hadn’t really used the jam limitation. But I was too committed to go back.
Of course feel free to feature the game in your video. I’m honored, really.