Game Development Reference
In-Depth Information
return params;
} else{
return [NSKeyedUnarchiver unarchiveObjectWithData: data];
}
}
-(void)writeToDefaults{
NSData* data = [NSKeyedArchiver archivedDataWithRootObject:self];
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:data forKey:GAME_PARAM_KEY];
[defaults synchronize];
}
readFromDefaults and writeToDefaults . These two tasks are
readFromDefaults will return a GameParameter for the key GAME_PARAM_KEY as stored in
writeToDefaults writes a GameParameter to the user defaults for the key
. The key idea to both of these tasks is that we store a GameParameter in the user
purchases . The
GameParameters can be stored in an NSUserDefaults , because it implements the tasks from the
NSCoder . See Chapter 2 for a description of that process.
10-1 . This is handled in the task setGameParameters: , as shown in Listing 10-6.
-(void)setGameParams:(GameParameters*)params{
gameParams = params;
NSSet* purchases = [gameParams purchases];
if ([params includeAsteroids]){
[asteroidButton setImage:[UIImage imageNamed:@"asteroid_active"] forState:UIControlStateNormal];
} else {
[asteroidButton setImage:[UIImage imageNamed:@"asteroid_inactive"] forState:UIControlStateNormal];
}
if ([purchases containsObject:PURCHASE_INGAME_SAUCERS]){
if ([params includeSaucers]){
[saucerButton setImage:[UIImage imageNamed:@"saucer_active"] forState:UIControlStateNormal];
} else {
[saucerButton setImage:[UIImage imageNamed:@"saucer_inactive"] forState:UIControlStateNormal];
}
} else {
[saucerButton setImage:[UIImage imageNamed:@"saucer_purchase"] forState:UIControlStateNormal];
}
if ([purchases containsObject:PURCHASE_INGAME_POWERUPS]){
if ([params includePowerups]){
[powerupButton setImage:[UIImage imageNamed:@"powerup_active"] forState:UIControlStateNormal];
} else {
[powerupButton setImage:[UIImage imageNamed:@"powerup_inactive"] forState:UIControlStateNormal];
 
Search WWH ::




Custom Search