forked from monoclestudios/simplegame
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GridAction.h
156 lines (120 loc) · 4.18 KB
/
GridAction.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/* cocos2d for iPhone
*
* http://code.google.com/p/cocos2d-iphone
*
* Copyright (C) 2009 On-Core
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the 'cocos2d for iPhone' license.
*
* You will find a copy of this license within the cocos2d for iPhone
* distribution inside the "LICENSE" file.
*
*/
#import <UIKit/UIKit.h>
#import "IntervalAction.h"
#import "InstantAction.h"
#import "Grid.h"
@class GridBase;
/** Base class for Grid actions */
@interface GridAction : IntervalAction
{
ccGridSize gridSize;
}
@property ccGridSize gridSize;
/** creates the action with size and duration */
+(id) actionWithSize:(ccGridSize)size duration:(ccTime)d;
/** initializes the action with size and duration */
-(id) initWithSize:(ccGridSize)gridSize duration:(ccTime)d;
/** returns the grid */
-(GridBase *)grid;
@end
////////////////////////////////////////////////////////////
/** Base class for Grid3D actions.
Grid3D actions can modify a non-tiled grid.
*/
@interface Grid3DAction : GridAction
{
}
/** returns the vertex than belongs to certain position in the grid */
-(ccVertex3D)vertex:(ccGridSize)pos;
/** returns the non-transformed vertex than belongs to certain position in the grid */
-(ccVertex3D)originalVertex:(ccGridSize)pos;
/** sets a new vertex to a certain position of the grid */
-(void)setVertex:(ccGridSize)pos vertex:(ccVertex3D)vertex;
@end
////////////////////////////////////////////////////////////
/** Base class for TiledGrid3D actions */
@interface TiledGrid3DAction : GridAction
{
}
/** returns the tile that belongs to a certain position of the grid */
-(ccQuad3)tile:(ccGridSize)pos;
/** returns the non-transformed tile that belongs to a certain position of the grid */
-(ccQuad3)originalTile:(ccGridSize)pos;
/** sets a new tile to a certain position of the grid */
-(void)setTile:(ccGridSize)pos coords:(ccQuad3)coords;
@end
////////////////////////////////////////////////////////////
/** AccelDeccelAmplitude action */
@interface AccelDeccelAmplitude : IntervalAction
{
float rate;
IntervalAction *other;
}
/** amplitude rate */
@property float rate;
/** creates the action with an inner action that has the amplitude property, and a duration time */
+(id)actionWithAction:(Action*)action duration:(ccTime)d;
/** initializes the action with an inner action that has the amplitude property, and a duration time */
-(id)initWithAction:(Action*)action duration:(ccTime)d;
@end
////////////////////////////////////////////////////////////
/** AccelAmplitude action */
@interface AccelAmplitude : IntervalAction
{
float rate;
IntervalAction *other;
}
/** amplitude rate */
@property float rate;
/** creates the action with an inner action that has the amplitude property, and a duration time */
+(id)actionWithAction:(Action*)action duration:(ccTime)d;
/** initializes the action with an inner action that has the amplitude property, and a duration time */
-(id)initWithAction:(Action*)action duration:(ccTime)d;
@end
////////////////////////////////////////////////////////////
/** DeccelAmplitude action */
@interface DeccelAmplitude : IntervalAction
{
float rate;
IntervalAction *other;
}
/** amplitude rate */
@property float rate;
/** creates the action with an inner action that has the amplitude property, and a duration time */
+(id)actionWithAction:(Action*)action duration:(ccTime)d;
/** initializes the action with an inner action that has the amplitude property, and a duration time */
-(id)initWithAction:(Action*)action duration:(ccTime)d;
@end
////////////////////////////////////////////////////////////
/** StopGrid action.
Don't call this action if another grid action is active.
Call if you want to remove the the grid effect. Example:
[Sequence actions:[Lens ...], [StopGrid action], nil];
*/
@interface StopGrid : InstantAction
{
}
@end
////////////////////////////////////////////////////////////
/** ReuseGrid action */
@interface ReuseGrid : InstantAction
{
int t;
}
/** creates an action with the number of times that the current grid will be reused */
+(id) actionWithTimes: (int) times;
/** initializes an action with the number of times that the current grid will be reused */
-(id) initWithTimes: (int) times;
@end