ios - ccDraw. Fill screen everywhere except on sprite -
so trying basic "flashlight"-style thing going in 1 of games.
the way getting work, having layer on top of game screen, , layer draw black rectangle ~ 80% opacity, creating of darkness on top of game scene.
ccdrawsolidrect(ccp(0,0), ccp(480,320), ccc4f(0, 0, 0, 0.8)); what want draw rectangle everywhere on screen, except around cone of vision represent "light source".
what create dark overlay on top of except light, giving illusion of torch/light/flashlight.
the way can foresee happening using ccdrawsolidpoly(), since position of light source changes, vertices poly.
any suggestions on how achieve great.
you can use ccdrawsolidpoly() , avoid having manually update vertices. can create new subclass of ccnode representing light object, , custom shape drawing in -(void)draw method.
the ccdraw...() functions draw relative local sprite coordinates, can move , rotate new sprite suit needs , cocos2d vertices transformations you.
update: found out might better off subclassing ccdrawnode instead of ccnode, has facilities raw opengl drawing (opengl's vertexarraybuffer , vertexbufferobject internal variables , buffer vertices, colors , texcoords). if stuff simple, maybe subclassing plain ccnode enough.
Comments
Post a Comment