summary refs log tree commit diff stats
path: root/Classes/FallingObject.m
blob: 515948ee31eed468c670c5a0660b7da37ab07b37 (plain) (blame)
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
//
//  GameObject.m
//  Cart Collect
//
//  Created by iD Student Account on 7/19/11.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

#import "FallingObject.h"
#import "GameMode.h"

@implementation FallingObject

@synthesize sprite, weight;

- (id)init
{
	self = [super init];
	
	if (nil != self)
	{

	}
	
	return self;
}

- (BOOL)tick
{
    GameMode* gameLayer = ((GameMode*) sprite.parent);
    
    // Move objects down
    sprite.position = ccp(sprite.position.x, sprite.position.y-weight);
	
    // Cart collision detection
    CGSize first = [gameLayer.cart.sprite boundingBox].size;
    CGSize second = [sprite boundingBox].size;
    
    if (gameLayer.cart.sprite.position.x > (sprite.position.x - second.width/2 - first.width/2))
    {
        if (gameLayer.cart.sprite.position.x < (sprite.position.x + second.width/2 + first.width/2))
        {
            if (gameLayer.cart.sprite.position.y > (sprite.position.y - second.height/2 - first.height/2))
            {
                if (gameLayer.cart.sprite.position.y < (sprite.position.y + second.height/2 + first.height/2))
                {
                    [self collideWithCart];
                    
                    return YES;
                }
            }
        }
    }
    
    // Collision detection with floor
    if (sprite.position.y - (sprite.contentSize.height/2) < 0)
    {
        [self collideWithFloor];
        
        return YES;
    }
    
    return NO;
}

- (void)collideWithCart
{

}

- (void)collideWithFloor
{

}

- (void)dealloc
{
    [sprite release];
    [super dealloc];
}

@end