Patrick,
What is likely causing your problems on other machines is that your build style was “Debug”. You need to build in “Release” mode when you are going to distribute the app. Aside from that, I’m having all sorts of errors with your sound files. For some reason, it’s not loading the sounds properly, and every time it tries to play or delete a sound, it errors that the variable is not defined. You may be having a conflict with trying to delete the sound before it’s actually played. I’m unclear why you are even loading and then deleting the sounds every time they are played. They are resources that should be loaded once into memory and reused, not loaded every time they are played. Create a property for each sound, and in the awake from nib or launched handler for the application object, load the sound only once into the persistent variable.
You’ve also got a file (error2.aif) in your project Groups&Files list that has been deleted from the project’s resources folder, so the app won’t compile until I delete the reference, and then delete all lines referencing the file from the script.
As far as your image cascading effect when loading them all at once, you’re running into the same problem as with the sound files. You can’t expect to load dozens of images dynamically into memory without some overhead. Depending on the format and compression of the images being used, you’re loading a lot of data (something applescript’s already poor at), just to flash them on the screen and then delete them all a second later. It’s probably best to load them all into memory when the game begins, and then show and hide the images as necessary. That way the loading part is done before the game ever begins. Also, instead of deleting the image from the image views when the reveal is complete, preload an additional placeholder image instead, and set the image of all of the image views to that image. Deleting the images is unnecessary, and probably has some processing overhead, too.
I think the real message I’d convey to you is that you’re trying too hard to manage all of the data… both the sounds and the images… dynamically. Loading and deleting data like that on the fly is a waste of resources. Simply load all of your images and sounds once into the applications memory, and then come up with code that manages those resources from memory… not from disk. It takes a lot less time to simply display an image or play a file from memory than it does to load it and then display it.
As a note about distribution of development projects, ALWAYS MANUALLY clean your projects before posting them for download. By “manual”, I mean manually go into your project directory, grab the entire contents of the “Build” folder, and trash it. Your project went from 66mb to 17mb by simply throwing away the unnecessary build files. We all have Xcode, and can build it ourselves. Not only is this better for downloading, you should always look at fresh builds of an app when troubleshooting, because problems can often be solved by simply cleaning and rebuilding. If you were to .dmg.zip the resulting folder, it would be significantly smaller still. Another thing I noticed, is that there are seemingly dozens of extra sound and image files in the distribution. Only a small percent of the sound files are actually in use, so why make us download the rest?
Hope this leads you in the right direction to solving some of your issues…
j