Note that there are some explanatory texts on larger screens.

plurals
  1. POObjective C, how to use classes.
    primarykey
    data
    text
    <p>I've just started working with Objective C, and either my design is wrong, or my implementation is wrong, or both, I don't even know. </p> <p>I've given relevant information below, but my expectations are this:</p> <p><em><strong>Create PlayerBullet class, so that I can just allocate data pre-defined in the class file, such as, sprite file, speed, sound when fired, etc.</em></strong></p> <p>I assume that'd be better than setting that data in the playerShoot function every time a bullet is made. However, I'm getting errors that suggest insertObject:atIndex:] object cannot be nil. </p> <pre><code>//PlayerBullet.h #import "cocos2d.h" @interface PlayerBullet: CCSprite{ CCSprite *projectile; } property (nonatomic, assign) CCSprite *projectile; @end </code></pre> <hr> <pre><code>//PlayerBullet.m #import "PlayerBullet.h" @implementation PlayerBullet -(id)init{ projectile = [CCSprite spriteWithFile:@"projectile.png"]; return self; } @end </code></pre> <hr> <pre><code> //HelloWorldLayer.h ... @interface HellowWorldLayer: CCLayerColor{ PlayerBullet *playerBullet; } ... </code></pre> <hr> <pre><code> //HelloWorldLayer.m ... -(void)playerShoot:(ccTime)dt{ CGSize winSize = [[CCDirector sharedDirector] winSize]; playerBullet = [[PlayerBullet alloc] init]; playerBullet.projectile.tag = 2; [_projectiles addObject:playerBullet.projectile]; playerBullet.projectile.position = ccp(player.position.x,player.position.y); [self addChild:playerBullet.projectile]; [playerBullet.projectile runAction: [CCSequence actions: [CCMoveTo actionWithDuration:1.5 position:ccp(player.position.x,winSize.height)], [CCCallBlockN actionWithBlock:^(CCNode *node){ [node removeFromParentAndCleanup:YES]; [_projectiles removeObject:node]; }], nil]]; } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload