Skip to content

Commit 59ef72a

Browse files
committed
Minor game changes
1 parent f19f936 commit 59ef72a

File tree

2 files changed

+32
-26
lines changed

2 files changed

+32
-26
lines changed

templates/cocos2d iOS demo.xctemplate/Classes/gameScene.m

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919

2020
@implementation GameScene
2121
{
22-
Paddle *_paddleA;
23-
Paddle *_paddleB;
22+
Paddle *_paddleLeft;
23+
Paddle *_paddleRight;
2424
CCSprite *_ball;
2525
CGSize _gameSize;
2626
CGPoint _ballVector;
@@ -35,11 +35,11 @@ - (instancetype)init
3535
_gameSize = [CCDirector sharedDirector].viewSize;
3636

3737
// create paddles
38-
_paddleA = [Paddle paddleWithSide:PaddleSideLeft];
39-
[self addChild:_paddleA];
38+
_paddleLeft = [Paddle paddleWithSide:PaddleSideLeft];
39+
[self addChild:_paddleLeft];
4040

41-
_paddleB = [Paddle paddleWithSide:PaddleSideRight];
42-
[self addChild:_paddleB];
41+
_paddleRight = [Paddle paddleWithSide:PaddleSideRight];
42+
[self addChild:_paddleRight];
4343

4444
_ball = [CCSprite spriteWithImageNamed:@"ball.png"];
4545
[self addChild:_ball];
@@ -106,8 +106,8 @@ - (void)touchBegan:(CCTouch *)touch withEvent:(CCTouchEvent *)event
106106
{
107107
// find out what paddle is being touched
108108
Paddle *paddle = nil;
109-
if ([_paddleA validTouchPosition:touch.locationInWorld]) paddle = _paddleA;
110-
else if ([_paddleB validTouchPosition:touch.locationInWorld]) paddle = _paddleB;
109+
if ([_paddleLeft validTouchPosition:touch.locationInWorld]) paddle = _paddleLeft;
110+
else if ([_paddleRight validTouchPosition:touch.locationInWorld]) paddle = _paddleRight;
111111

112112
// if the touch is not for a paddle, just pass the touch on, and exit
113113
if (paddle == nil)
@@ -134,13 +134,13 @@ - (void)touchMoved:(CCTouch *)touch withEvent:(CCTouchEvent *)event
134134
Paddle *paddle;
135135

136136
// find out where the touch belogs
137-
if (touch.uiTouch == _paddleA.touch)
137+
if (touch.uiTouch == _paddleLeft.touch)
138138
{
139-
paddle = _paddleA;
139+
paddle = _paddleLeft;
140140
}
141-
else if (touch.uiTouch == _paddleB.touch)
141+
else if (touch.uiTouch == _paddleRight.touch)
142142
{
143-
paddle = _paddleB;
143+
paddle = _paddleRight;
144144
}
145145

146146
// check for valid position
@@ -158,13 +158,13 @@ - (void)touchMoved:(CCTouch *)touch withEvent:(CCTouchEvent *)event
158158

159159
- (void)touchEnded:(CCTouch *)touch withEvent:(CCTouchEvent *)event
160160
{
161-
if (touch.uiTouch == _paddleA.touch)
161+
if (touch.uiTouch == _paddleLeft.touch)
162162
{
163-
_paddleA.touch = nil;
163+
_paddleLeft.touch = nil;
164164
}
165-
else if (touch.uiTouch == _paddleB.touch)
165+
else if (touch.uiTouch == _paddleRight.touch)
166166
{
167-
_paddleB.touch = nil;
167+
_paddleRight.touch = nil;
168168
}
169169
}
170170

@@ -176,34 +176,38 @@ - (void)update:(CCTime)delta
176176
// move ball
177177
_ball.position = ccpAdd(_ball.position, ccpMult(_ballVector, delta));
178178

179+
// *************************
180+
// Game Logic
181+
// *************************
182+
179183
// check for paddle-ball collisions
180-
if (CGRectIntersectsRect(_paddleA.boundingBox, _ball.boundingBox))
184+
if (CGRectIntersectsRect(_paddleLeft.boundingBox, _ball.boundingBox))
181185
{
182186
// da beep
183187
[[OALSimpleAudio sharedInstance] playEffect:@"beep.wav"];
184188
// adjust ball position
185-
_ball.position = (CGPoint){_paddleA.position.x + ((_paddleA.contentSize.width + _ball.contentSize.width) * 0.5), _ball.position.y};
189+
_ball.position = (CGPoint){_paddleLeft.position.x + ((_paddleLeft.contentSize.width + _ball.contentSize.width) * 0.5), _ball.position.y};
186190
// change direction
187191
_ballVector.x = -_ballVector.x;
188192

189193
// add some angle
190194
// if ball is hit in upper half, spin the ball upwards, and downwards if hit in lower half
191-
float spin = (_ball.position.y - _paddleA.position.y) / _gameSize.height * kGameSpinFactor;
195+
float spin = (_ball.position.y - _paddleLeft.position.y) / _gameSize.height * kGameSpinFactor;
192196
// add some randomness
193197
spin += (CCRANDOM_MINUS1_1() * kGameSpinRandomFactor);
194198
// adjust vector
195199
_ballVector = ccpRotateByAngle(_ballVector, CGPointZero, spin * M_PI / 180);
196200
}
197-
else if (CGRectIntersectsRect(_paddleB.boundingBox, _ball.boundingBox))
201+
else if (CGRectIntersectsRect(_paddleRight.boundingBox, _ball.boundingBox))
198202
{
199203
// da beep
200204
[[OALSimpleAudio sharedInstance] playEffect:@"beep.wav"];
201205
// adjust ball position
202-
_ball.position = (CGPoint){_paddleB.position.x -((_paddleB.contentSize.width + _ball.contentSize.width) * 0.5), _ball.position.y};
206+
_ball.position = (CGPoint){_paddleRight.position.x -((_paddleRight.contentSize.width + _ball.contentSize.width) * 0.5), _ball.position.y};
203207
// change direction
204208
_ballVector.x = -_ballVector.x;
205209
// add some angle (see above)
206-
float spin = (_paddleB.position.y - _ball.position.y) / _gameSize.height * kGameSpinFactor;
210+
float spin = (_paddleRight.position.y - _ball.position.y) / _gameSize.height * kGameSpinFactor;
207211
spin += (CCRANDOM_MINUS1_1() * kGameSpinRandomFactor);
208212
_ballVector = ccpRotateByAngle(_ballVector, CGPointZero, spin * M_PI / 180);
209213
}
@@ -233,7 +237,7 @@ - (void)update:(CCTime)delta
233237
{
234238
// da beep
235239
[[OALSimpleAudio sharedInstance] playEffect:@"game.wav"];
236-
// paddle B scored
240+
// paddle right scored
237241

238242

239243

@@ -244,7 +248,7 @@ - (void)update:(CCTime)delta
244248
{
245249
// da beep
246250
[[OALSimpleAudio sharedInstance] playEffect:@"game.wav"];
247-
// paddle A scored
251+
// paddle left scored
248252

249253

250254

@@ -261,14 +265,16 @@ - (void)serveFromSide:(PaddleSide)side
261265
// if invalid side, serve random
262266
if (side == PaddleSideInvalid) side = (CCRANDOM_0_1() > 0.5) ? PaddleSideLeft : PaddleSideRight;
263267

268+
CGPoint offset = (CGPoint){(_paddleLeft.contentSize.width + _ball.contentSize.width) * 0.5, 0};
269+
264270
if (side == PaddleSideLeft)
265271
{
266-
_ball.position = (CGPoint){_paddleA.position.x + ((_paddleA.contentSize.width + _ball.contentSize.width) * 0.5), _paddleA.position.y};
272+
_ball.position = ccpAdd(_paddleLeft.position, offset);
267273
_ballVector = (CGPoint){kGameBallSpeed * _gameSize.width, 0};
268274
}
269275
else
270276
{
271-
_ball.position = (CGPoint){_paddleB.position.x - ((_paddleB.contentSize.width + _ball.contentSize.width) * 0.5), _paddleB.position.y};
277+
_ball.position = ccpSub(_paddleRight.position, offset);
272278
_ballVector = (CGPoint){-kGameBallSpeed * _gameSize.width, 0};
273279
}
274280
}

0 commit comments

Comments
 (0)