Simple but Charming_0
动态噪点(要求水平方向无缝的噪点图:w=1024,h=640)
DynamicNoiseLayer.h
//// DynamicNoiseLayer.mm// HungryBear//// Created by Bruce Yang on 12-8-2.// Copyright (c) 2012年 EricGameStudio. All rights reserved.//#import "DynamicNoiseLayer.h"#ifndef PORTRAIT_CENTER #define PORTRAIT_CENTER ccp(160, 240)#endif#ifndef LANDSCAPE_CENTER #define LANDSCAPE_CENTER ccp(240, 160)#endif#define SPEED_FACTOR 8@implementation DynamicNoiseLayer+(CCScene*) scene { CCScene* t_scene = [CCScene node];DynamicNoiseLayer* t_layer = [DynamicNoiseLayer node];[t_scene addChild:t_layer];return t_scene;}-(id) init {if((self = [super init])) { CCTextureCache* tmp_texCache = [CCTextureCache sharedTextureCache]; // 1.背景图片~ m_texGradientBg = [tmp_texCache addImage:@"gbg.png"]; CCSprite* tmp_spBg = [[CCSprite alloc] initWithTexture:m_texGradientBg]; [tmp_spBg setPosition: LANDSCAPE_CENTER]; [self addChild:tmp_spBg]; [tmp_spBg release]; // 2.噪点图片~ m_texNoise = [tmp_texCache addImage:@"noiseTexture.png"]; ccTexParams tmp_texParams = (ccTexParams){GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT}; [m_texNoise setTexParameters:&tmp_texParams]; m_spNoise = [[CCSprite alloc] initWithTexture:m_texNoise]; [m_spNoise setPosition: LANDSCAPE_CENTER]; ccBlendFunc tmp_blendFunc = (ccBlendFunc){GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA}; [m_spNoise setBlendFunc:tmp_blendFunc]; [self addChild:m_spNoise]; [m_spNoise release]; // 3.定时器~ [self schedule:@selector(tick:)];}return self;}-(void) tick:(ccTime)dt { static float offset = 0; offset += dt * SPEED_FACTOR; CGSize tmp_texRect = m_spNoise.textureRect.size; [m_spNoise setTextureRect:CGRectMake(offset, 0, tmp_texRect.width, tmp_texRect.height)];}-(void) dealloc { CCTextureCache* texCache = [CCTextureCache sharedTextureCache]; [texCache removeTexture:m_texGradientBg]; [texCache removeTexture:m_texNoise]; [super dealloc];}@end