bool HeroSkillLayer::init(){ if ( !CCLayer::init() ) { return false; } this->setTouchEnabled(true); this->setTouchPriority(-128); this->setTouchMode(kCCTouchesAllAtOnce); //加载cocosbuilder CCNodeLoaderLibrary::sharedCCNodeLoaderLibrary()->registerCCNodeLoader("HeroSkillccbi",HeroSkillccbiLoder::loader()); /* Create an autorelease CCBReader. */ CCBReader * ccbReader = new cocos2d::extension::CCBReader(CCNodeLoaderLibrary::sharedCCNodeLoaderLibrary()); ccbReader->autorelease(); /* Read a ccbi file. */ node2 = ccbReader->readNodeGraphFromFile("ccbi/HeroSkillccbi.ccbi", this); if(node2 != NULL) { this->addChild(node2); } this->setVisible(false); isSkillLayer = true; layervisable = false; curPage = 0;//当前页 addsprite(); changeData(); scheduleUpdate(); return true; }
void setupworld ( world_t *world ) { int i; entity_t *e; vector2d_t angle,dir,verts[2]; world->time = SDL_GetTicks(); if(!world->playerentity) { if(!spawnplayer( world )) return; } for(i=0;i<world->numentities;i++) { e = &world->entities[i]; if(e->think && world->time > e->nextthink) { void (*think)(world_t *w, struct entity_s *e); think = e->think; e->think = NULL; think(world,e); } /* don't need to add transparent stuff to the world */ if(!e->texture) continue; if(e->follow) setfollowangle(world,e,&angle); else vectorcopy(&angle,&e->angle); vectorrot90( &angle, &dir ); vectorscale( &dir, e->texture->width/2, &dir ); vectorsubtract( &e->pos, &dir, &verts[0]); vectoradd( &e->pos, &dir, &verts[1]); addsprite(world->raycaster,verts,e->texture->height,e->vpos, SURFACE_NONE,e->texture); } /* copy over player view pos to raycaster */ world->raycaster->currentplatform = world->playerentity->currentplatform; vectorcopy(&world->raycaster->viewpos,&world->playerentity->pos); vectorcopy(&world->raycaster->viewdir,&world->playerentity->angle); world->raycaster->eyelevel = world->playerentity->vpos+VIEW_HEIGHT; }