Create a gist now

Instantly share code, notes, and snippets.

Really cruddy iOS particle system to demo emissionLongitude
//
// SFSViewController.m
// AmazingParticleSpinner
//
// Created by Thomas Dimson on 9/15/12.
// Copyright (c) 2012 Thomas Dimson. All rights reserved.
//
#import "SFSViewController.h"
#import <QuartzCore/QuartzCore.h>
@implementation SFSViewController {
__weak UILabel *_angleLabel;
__weak CAEmitterLayer *_emitterLayer;
}
- (void)viewDidLoad
{
[super viewDidLoad];
CAEmitterLayer *emitterLayer = [CAEmitterLayer layer];
emitterLayer.emitterPosition = self.view.center;
_emitterLayer = emitterLayer;
[self.view.layer addSublayer:emitterLayer];
CAEmitterCell *funnyEmitterCell = [CAEmitterCell emitterCell];
funnyEmitterCell.contents = (id)[UIImage imageNamed:@"funny.jpg"].CGImage;
funnyEmitterCell.birthRate = 10.0;
funnyEmitterCell.velocity = 200.0;
funnyEmitterCell.lifetime = 5.0;
funnyEmitterCell.scale = 0.1;
funnyEmitterCell.name = @"funny";
emitterLayer.emitterCells = [NSArray arrayWithObject:funnyEmitterCell];
[self bumpAngle];
UILabel *angleLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 100, 30)];
angleLabel.backgroundColor = [UIColor clearColor];
[self.view addSubview:angleLabel];
_angleLabel = angleLabel;
}
- (void) bumpAngle {
NSNumber *emissionLongitude = [_emitterLayer valueForKeyPath:@"emitterCells.funny.emissionLongitude"];
NSNumber *nextLongitude = [NSNumber numberWithFloat:[emissionLongitude floatValue] + 0.02];
[_emitterLayer setValue:nextLongitude forKeyPath:@"emitterCells.funny.emissionLongitude"];
_angleLabel.text = [NSString stringWithFormat:@"%.0f degrees", [nextLongitude floatValue] * 180 / M_PI];
[self performSelector:@selector(bumpAngle) withObject:nil afterDelay:0.1];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment