| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
There is now one location for information relating to each GameMode instead of several places, so that info can be easily updated and propagated to, for instance, GameModeSelectionLayer. GameModes can also be specified by an info instance each owns. There's also a way to get an ordered list of game modes.
The three star game mode unlocking system has also been added.
Closes #213
|
|
|
|
| |
Previously, every type of falling object had to have its own class that defined the object type's sprite, weight, and reaction to the cart/floor. This was pretty messy considering how many object types may only be used in one game mode--for instance, the many power ups in Power mode, once it's created, will never be used outside of Power mode. So, to increase customizability and decrease class clutter, game modes now use a FallingObjectFactory to define recipes (basically a sprite filename, a weight and an identifier) that can easily be built throughout the game mode using the identifier. FallingObjectDelegate is now used for all reactions to the cart/floor, rather than defining a standard reaction in the FallingObject subclass and then putting extra stuff in FallingObjectDelegate.
|
|
|
|
| |
Closes #227
|
|
|
|
| |
Closes #226
|
|
|
|
| |
Fixes #224
|
|
|
|
|
|
| |
Also increased the distance between ledges as the game goes on, and changed the sound point multipliers make when you catch them.
Closes #221, #223
|
|
|
|
|
|
| |
There is support for point multipliers for any game mode, but only Jump currently utilizes it.
Closes #222
|
|
|
|
| |
Closes #218
|
|
|
|
| |
Fixes #219
|
|
|
|
|
|
| |
The negative lives glitch was being caused by players being killed by two different things at once--a.k.a. being hit by a rock and falling off a ledge in Jump. The problem was that both game modes would only show the game over screen if the player had zero lives, not for negative lives. This has been fixed.
Fixes #220
|
|
|
|
|
|
| |
While this had no affect on the player, the game would sometimes randomly generate zero-width ledges when spawning ledges, which caused a whole ton of problems with the graphic generation and CCTexture2D and was the reason that the console was spammed with so many error messages when nothing bad seemed to be happening. The game would output the errors, drop the zero-width ledge and continue on as if nothing had happened.
Fixes #217
|
|
|
|
| |
Closes #216
|
|
|
|
|
|
| |
This revision should also hopefully fix the undefined behavior GameOverScene bug--if it, I'll reopen the ticket and continue investigating.
Fixes #215
|
|
|
|
|
|
| |
Previously, in Jump, when the game mode was created, one static ledge would always be generated safely under the player, and then when tick was first called, it would fill in the rest of the screen with ledges. While this did use to work fine, now that the game modes transition in, the player can see the ledges being added in when the transition ends so now there are two default ledges present when the level starts.
Refs #204
|
|
|
|
| |
Refs #207
|
|
|
|
| |
Previously, the game paused when it entered the background. Now, it pauses when the game is about to become inactive, which is the proper thing to do.
|
|
|
|
| |
Refs #204 and fixes #214
|
|
|
|
|
|
| |
The rate of dropped items now increases progressively like the speed of ledge scrolling. The scores at which two rocks and three rocks start appearing have also doubled.
Refs #204
|
|
|
|
| |
Refs #204
|
|
|
|
| |
Refs #204
|
|
|
|
| |
Refs #204
|
|
|
|
| |
Refs #204
|
|
|
|
| |
Refs #204
|
|\ |
|
| |
| |
| |
| |
| |
| | |
This is pretty much the same as the bug that was fixed in r15--CCSprite textures need different cache keys when they change, otherwise they won't change.
Fixes #212
|
| |
| |
| |
| |
| |
| | |
Dear god this is beta. I think I'll release a build for the testers soon so I can see what people think and then hammer out the bugs.
Refs #204
|
| |
| |
| |
| |
| |
| | |
It currently uses a temporary picture and is unlockable after reaching 5000 points in Collect, at which point a little notification appears at the top of the screen telling you that you've unlocked a new game mode. Also fixed a bug in GameMode with the iteration of objects that would cause the rest of tick to not be called because objects were removed from the set while it was being iterated over.
Refs #204
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| | |
Previously, when determining if the player had swiped upward for a jump in the Jump game mode, the game checked that the player had touched and moved upward a certain amount, with less than a certain amount of variance in horizontal position. However, this did not work well with the deeply-ingrained rotation aspect of the game, so the game was programmed to widen this allowed horizontal variance when the device was rotated. This really did not work too well, so now the game calculates an "expected" angle from the bottom of the screen based on rotation that it determines to point upward and also the angle of the player's swipe from the bottom of the screen. If the swipe angle falls within 45 degrees (Ď€/4 radians) of the expected angle, the cart jumps. Really quite awesome if you ask me. :P
Refs #204
|
| |
| |
| |
| |
| |
| | |
So far, Jump exists as a blank world where the player can control the cart (including the ability to jump by swiping upwards) and where the water level rises for a bit and then falls, taking the cart with it.
Refs #204
|
| |
| |
| |
| |
| |
| | |
This revision increments the database version to 2.
Also fixed a small problem with GameModeSelection that aligned the highscore text incorrectly.
|
| |
| |
| |
| |
| |
| | |
Also replaced instances of the term "Cart Collect" in Tutorial with "Cartographic". Also modified level selection screen to remember your position in the list rather than simply the last mode you'd played.
Closes #211
|
| |
| |
| |
| |
| |
| | |
Now GameMode actually checks if it's already paused before pausing.
Fixes #210
|
| |
| |
| |
| | |
Fixes #209
|
| |
| |
| |
| |
| |
| | |
I'm not really sure how, though I suspect it has something to do with the onEnterTransitionDidFinish and onExit methods, but this seems to fix the bug in which tapping on Collect immediately after playing Tutorial would cause Tutorial to play again.
Fixes #208
|
|\ \
| | |
| | |
| | | |
Closes #207
|
| | |
| | |
| | |
| | | |
See https://testflightapp.com/sdk/doc/
|
| | |
| | |
| | |
| | |
| | |
| | | |
The page control updates when you swipe through the levels, but tapping it does nothing. I initially attempted to implement scrolling by tapping on the page control, but for some reason, it worked perfectly in the simulator and only randomly on the iPhone. Very weird.
Refs #207
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Using http://www.xcombinator.com/2010/09/08/a-paging-uiscrollview-in-cocos2d-with-previews/ as a base, I was able to implement a paging scroller for the level selection screen so players can swipe through available levels and choose one to play.
At this point, the level selection screen is practically done--the only other thing I want to add is a UIPageControl to interact with the scrolling and give the player an indication of how many levels there are.
Refs #207
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The image for each level selection now has a tutorial bubble-esque border around it, which was achieved using image masking. The border is included in the graying-out effect when the image is being tapped, and it is also included in the grayscaling when the level is not yet unlocked.
Also rewrote most of the selection drawing code. The titles are now drawn above the image, with Quartz instead of Cocos2D. The highscore label is also drawn with Quartz, though it is still below the image. The unlock condition label no longer appears, and instead, locked levels are now tappable and tapping them shows an alert view containing the unlock condition. Will probably be changed to be more elegant later.
Really, the biggest thing left before the selection screen is done is the ability to scroll through levels. The background also needs changing, but that will come later once I recruit a graphics designer. :P
Refs #207
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Both the Tutorial and Collect game mode selections can now be tapped to start playing the mode. Holding your finger down on a game mode darkens the image, to give the player feedback on the fact that they are touching a button. This only applies to unlocked game modes--not-yet-unlocked game modes are just sprites, not buttons, and do not react to touch. Note that the game mode does not yet transition in with the zoom in/fade in transition combo that is specified in the ticket.
Also fixed a bug that would, if the player hadn't yet unlocked Collect and then played the Tutorial, continue to show the grayscale Collect image even though the button was completely working and tappable.
Also changed Tutorial Mode to bring the player to the game mode selection screen upon completion instead of the main menu.
Refs #207
|
|/ /
| |
| |
| |
| |
| | |
So far, tapping "New Game" shows a screen with two game modes: the tutorial and the classic collect. They both have pictures and Collect's is grayscale if it hasn't been unlocked yet (a.k.a. the tutorial hasn't been completed yet). Also, Collect's title is replaced with question marks and the text "Beat the tutorial!" is shown if it isn't unlocked--if it is unlocked, the player's highscore, if they have one, is shown. A "Back to Main Menu" button is also present. Neither selection is as of yet tappable, and neither picture yet has a border. You cannot scroll through modes yet either.
Refs #207
|
| |
| |
| |
| | |
Closes #206
|
|/
|
|
|
|
| |
Previously, Tutorial Mode decided whether to display the "Game Over" bubble in the setLives method, which is called before the FallingObjectDelegate methods. This caused two bugs: A) showing a tutorial bubble pauses the scheduler and the didMissItem method would under certain circumstances attempt to schedule a delayed action, causing the game to stop processing the tick and jump to showing the tutorial bubble without removing the falling object. When the tutorial bubble got dismissed, tick would be restarted and the player would lose another life. B) didDestroyItem under certain circumstances would attempt to show a tutorial bubble and if the "Game Over" tutorial bubble had already been set, it would be overwritten with the new tutorial bubble, resulting in the "Game Over" tutorial bubble never being shown. Both of these bugs have been fixed by moving the "Game Over" bubble code out of setLives and into didDestroyItem.
Fixes #203, #205
|
|
|
|
| |
Closes #202
|
|
|
|
| |
Fixes #189
|
|
|
|
|
|
|
|
| |
GameLayer was also renamed to ClassicGameMode and its pause functionality and score/lives counters were moved out to GameMode. FallingObjectDelegate was created to allow for custom code to be run when items were caught/missed, something that is used extensively by tutorial mode.
Important: Cart Collect's bundle identifier was changed in this revision from com.fourisland.Cart-Collect to com.apatheticink.Cart-Collect, so ensure that before attempting to compile/run this build, you clear your build directory and remove the old version of Cart Collect from your device.
Closes #193
|
|
|
|
|
|
|
|
| |
In order to prepare for tutorial mode (and eventually, the other game modes), a lot of GameLayer's functionality (reading the accelerometer, moving the cart, moving falling objects, reacting to collisions…) has been abstracted out to FallingObject and subclasses of FallingObject, as well as a new Cart class, and GameMode, a new superclass of GameLayer. The only things that were not abstracted out that probably will be in the future are the pause functionality and the tutorial bubble functionality (which will in fact be moved to the tutorial mode class).
A lot of work was also done to cut down on compiler warnings and a lot of #imports were moved from header files to implementation files because I realized THAT'S HOW YOU'RE SUPPOSED TO DO IT.
Refs #193
|
|
|
|
|
|
| |
Interesting to note is that, for some reason, the code is calling Landscape Left "Landscape Right". This worries me and makes me think that either I'm not quite sure about the names of the orientations, or that my code is doing something weird.
Fixes #194
|
|
|
|
|
|
|
|
| |
GameLayer now has support for pausing game flow and displaying a tutorial bubble that the user can tap to dismiss. No code has been written, however, to make use of this, because I think it may be simpler to abstract GameLayer out somewhat and create a separate game mode for the tutorial. Deliberation required.
PauseLayer has also been removed and the behavior has been brought into GameLayer.
Refs #193
|