diff options
author | Starla Insigna <starla4444@gmail.com> | 2011-08-09 21:36:09 -0400 |
---|---|---|
committer | Starla Insigna <starla4444@gmail.com> | 2011-08-09 21:36:09 -0400 |
commit | 002dc99a071a4a8f7d2afc15d1fdf2ae0312faed (patch) | |
tree | 82808d85a131ed0f970b374828a3e80ee1fb8d35 /Classes/Cart.m | |
parent | 1ed37fda409479769c8d110aa22d5dadc9d2cb85 (diff) | |
download | cartcollect-002dc99a071a4a8f7d2afc15d1fdf2ae0312faed.tar.gz cartcollect-002dc99a071a4a8f7d2afc15d1fdf2ae0312faed.tar.bz2 cartcollect-002dc99a071a4a8f7d2afc15d1fdf2ae0312faed.zip |
Abstracted a lot of GameLayer's functionality out
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
Diffstat (limited to 'Classes/Cart.m')
-rw-r--r-- | Classes/Cart.m | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Classes/Cart.m b/Classes/Cart.m new file mode 100644 index 0000000..3046be3 --- /dev/null +++ b/Classes/Cart.m | |||
@@ -0,0 +1,45 @@ | |||
1 | // | ||
2 | // Cart.m | ||
3 | // Cart Collect | ||
4 | // | ||
5 | // Created by Starla Insigna on 8/9/11. | ||
6 | // Copyright 2011 Four Island. All rights reserved. | ||
7 | // | ||
8 | |||
9 | #import "Cart.h" | ||
10 | |||
11 | @implementation Cart | ||
12 | |||
13 | @synthesize sprite; | ||
14 | |||
15 | - (id)initWithSprite:(CCSprite*)m_sprite | ||
16 | { | ||
17 | self = [super init]; | ||
18 | |||
19 | if (nil != self) | ||
20 | { | ||
21 | sprite = m_sprite; | ||
22 | } | ||
23 | |||
24 | return self; | ||
25 | } | ||
26 | |||
27 | - (void)tick | ||
28 | { | ||
29 | // Move the cart based on acceleration gathered from accelerometer | ||
30 | sprite.position = ccp(MIN(MAX(sprite.position.x+accelX, 16),464), sprite.position.y); | ||
31 | } | ||
32 | |||
33 | - (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration | ||
34 | { | ||
35 | static float prevY=0; | ||
36 | |||
37 | #define kFilterFactor 0.05f | ||
38 | |||
39 | float accelY = -((float) acceleration.y * kFilterFactor + (1- kFilterFactor)*prevY); | ||
40 | |||
41 | prevY = accelY; | ||
42 | accelX = accelY * 750; | ||
43 | } | ||
44 | |||
45 | @end | ||