// Called when the game starts void UInventoryComponent::BeginPlay() { Super::BeginPlay(); equipment = NewObject<UCharacterEquipment>(this, equipment->GetClass()); for (int i = 0; i < beginPlayEquipment.Num(); i++) { if (beginPlayEquipment[i].item) { UItemBase* x = NewObject<UItemBase>(this, beginPlayEquipment[i].item); if (x) { x->ammount = beginPlayEquipment[i].ammount; x->initialize(GetOwner()->GetWorld()); addItem(x); } } } equipment->attachedInventory = this; if (requiresUI) loadUI(); showInventory(); hideInventory(); // ... }
//Returns -1 on failure, 0 on success, sets up the module int setupGraphicModule(int fd, GraphicModule * module){ //Zero the buffered array memset(buffered,0,sizeof(buffered)); module->memShareAddr = mmap(NULL, MEMSHARESIZE, PROT_READ, MAP_SHARED, fd, 0); if(module->memShareAddr == MAP_FAILED){ perror("memsharegraphic"); puts("Failed to map memory share to network module"); return -1; } module->memShareFD = fd; msync(module->memShareAddr,sizeof(int),MS_SYNC|MS_INVALIDATE); //Set up the graphics if (SDL_Init(SDL_INIT_VIDEO) < 0 ){ puts("Failed to initalize video"); return -1; } module->screen = SDL_SetVideoMode(SCREENWIDTH, SCREENHEIGHT, SCREENDEPTH, SDL_HWSURFACE); if(module->screen == NULL){ puts("Failed to set video mode"); SDL_Quit(); return -1; } //Create the drawing and document surfaces module->drawing = createSurface(SDL_SWSURFACE, SCREENWIDTH,SCREENHEIGHT,module->screen); if(module->drawing == NULL){ puts("failed to create drawing surface"); SDL_Quit(); return -1; } //Load the bitmap engine within the module module->font = malloc(sizeof(BitFont*)); if(setupBitFont(module->font) < 0){ puts("Failed to create the bitmap engine"); SDL_Quit(); return -1; } if(loadUI(module) < 0){ puts("Failed to load User Interface"); SDL_Quit(); return -1; } //Set the stop flag module->stopFlag = 0; SDL_WM_SetCaption( "Smart Desk | Interactive Learning Software", NULL); return 0; }
AddTulpaWidget::AddTulpaWidget(QString name, QWidget *parent): QWidget(parent) { this->path = path; loadUI(); if(!name.isEmpty()) { loadTulpa(name); } }
void ObjectBrowserWidget::loadData() { const CCopasiContainer * root = CCopasiRootContainer::getRoot(); ObjectBrowserItem * itemRoot = new ObjectBrowserItem(ObjectListView, NULL, root, objectItemList); itemRoot->attachKey(); itemRoot->setObjectType(CONTAINERATTR); // itemRoot->setText(0, FROM_UTF8(root->getObjectName())); itemRoot->setText(0, QString("COPASI")); itemRoot->setOpen(true); loadChild(itemRoot, root, true); removeDuplicate(objectItemList); loadUI(); }
// on "init" you need to initialize your instance bool GameLayer::init() { ////////////////////////////// // 1. super init first if ( !Layer::init()) { return false; } addTouch(); loadUI(); addPig(); objManager = ObjManager::getInstance(); test(); addTopLayer(); this->schedule( schedule_selector(GameLayer::generateUpdate), speep ); return true; }
bool TollgateScene::init(){ if (!Layer::init()){ return false; } m_iScore = 0; Size visibleSize = Director::getInstance()->getVisibleSize(); Sprite* titleSprite = Sprite::create("title.png"); titleSprite->setPosition(Point(visibleSize.width / 2, visibleSize.height - 50)); this->addChild(titleSprite, 2); m_player = Player::create(); m_player->bindSprite(Sprite::create("sprite.png")); m_player->setPosition(Point(200, visibleSize.height / 4)); this->addChild(m_player, 3); initBG(); loadUI(); MonsterManager* monsterMgr = MonsterManager::create(); this->addChild(monsterMgr, 4); monsterMgr->bindPlayer(m_player); this->scheduleUpdate(); return true; }
bool cEditor::run(IrrlichtDevice* irr_device){ // Get Pointers device=irr_device; driver = device->getVideoDriver(); smgr = device->getSceneManager(); guienv = device->getGUIEnvironment(); data=new ed_data(); data->snapping = true; data->limiting = true; coli=smgr->getSceneCollisionManager(); device->setWindowCaption(L"The NodeBox Generator"); device->setResizable(true); // Calculate Projection Matrix matrix4 projMat; irr::f32 orth_w = (float)driver->getScreenSize().Width / (float)driver->getScreenSize().Height; orth_w = 3 * orth_w; projMat.buildProjectionMatrixOrthoLH(orth_w,3,1,100); // Add rotational camera pivot=smgr->addEmptySceneNode(0,199); pivot->setPosition(vector3df(0,0,0)); camera[0]=smgr->addCameraSceneNode(pivot,vector3df(0,0,-2),vector3df(0,0,0)); smgr->setActiveCamera(camera[0]); pivot->setRotation(vector3df(25,-45,0)); // Add Topdown camera camera[1]=smgr->addCameraSceneNode(NULL,vector3df(0,2,-0.01),vector3df(0,0,0)); camera[1]->setProjectionMatrix(projMat,true); // Add front camera camera[2]=smgr->addCameraSceneNode(NULL,vector3df(0,0,-5),vector3df(0,0,0)); camera[2]->setProjectionMatrix(projMat,true); // Add side camera camera[3]=smgr->addCameraSceneNode(NULL,vector3df(-5,0,0),vector3df(0,0,0)); camera[3]->setProjectionMatrix(projMat,true); // Add Light ILightSceneNode* light=smgr->addLightSceneNode(0,vector3df(25,50,0)); light->setLightType(ELT_POINT); light->setRadius(2000); // Add Plane IMeshSceneNode* plane = smgr->addCubeSceneNode(1,0,-1,vector3df(0.5,-5.5,0.5),vector3df(0,0,0),vector3df(10,10,10)); plane->setMaterialTexture(0, driver->getTexture("texture_terrain.png")); plane->setMaterialFlag(video::EMF_BILINEAR_FILTER, false); plane->getMaterial(0).getTextureMatrix(0).setTextureScale(10,10); // Add sky box scene::IMeshSceneNode* skybox=smgr->addCubeSceneNode(50); skybox->setMaterialTexture(0, driver->getTexture("sky.jpg")); skybox->setMaterialFlag(video::EMF_BILINEAR_FILTER, false); skybox->setMaterialFlag(video::EMF_LIGHTING,false); smgr->getMeshManipulator()->flipSurfaces(skybox->getMesh()); plane_tri=smgr->createOctreeTriangleSelector(skybox->getMesh(),skybox); //Setup Current Manager nodes[0]=new cNode(device,data); curId=0; loadUI(); unsigned int counter=0; while (device->run()){ counter++; driver->beginScene(true, true, irr::video::SColor(255,100,101,140)); int ResX = driver->getScreenSize().Width; int ResY = driver->getScreenSize().Height; if (isSplitScreen==true) { // Draw Camera 0 if (camera[0]){ smgr->setActiveCamera(camera[0]); driver->setViewPort(rect<s32>(0,0,ResX/2,ResY/2)); smgr->drawAll(); } // Draw Camera 1 if (camera[1]){ smgr->setActiveCamera(camera[1]); driver->setViewPort(rect<s32>(ResX/2,0,ResX,ResY/2)); smgr->drawAll(); updatePoint(0,4); } // Draw Camera 2 if (camera[2]){ smgr->setActiveCamera(camera[2]); driver->setViewPort(rect<s32>(0,ResY/2,ResX/2,ResY)); smgr->drawAll(); updatePoint(4,8); } // Draw Camera 3 if (camera[3]){ smgr->setActiveCamera(camera[3]); driver->setViewPort(rect<s32>(ResX/2,ResY/2,ResX,ResY)); smgr->drawAll(); updatePoint(8,12); } }else if (camera[currentWindow]){ smgr->setActiveCamera(camera[currentWindow]); driver->setViewPort(rect<s32>(0,0,ResX,ResY)); smgr->drawAll(); } driver->setViewPort(rect<s32>(0,0,ResX,ResY)); guienv->drawAll(); driver->endScene(); if (counter>500){ counter=0; if (nodes[curId]) nodes[curId]->update(); } } return true; }
bool PlayLayer::init() { if (!Layer::init()) { return false; } // 创建游戏背景 initBG(); //加载UI loadUI(); // 初始化寿司精灵表单 SpriteFrameCache::getInstance()->addSpriteFramesWithFile("sushi.plist"); spriteSheet = SpriteBatchNode::create("sushi.pvr.ccz"); addChild(spriteSheet); // 初始化矩阵的宽和高,即:寿司的长宽个数。MATRIX_WIDTH、MATRIX_HEIGHT通过宏定义 m_width = MATRIX_WIDTH; m_height = MATRIX_HEIGHT; // 初始化寿司矩阵左下角的点 Size visibleSize = Director::getInstance()->getVisibleSize(); m_matrixLeftBottomX = (visibleSize.width - SushiSprite::getContentWidth() * m_width - (m_width - 1) * SUSHI_GAP) / 2; m_matrixLeftBottomY = (visibleSize.height - SushiSprite::getContentWidth() * m_height - (m_height - 1) * SUSHI_GAP) / 2; // 初始化数组 int arraySize = sizeof(SushiSprite *) * m_width * m_height;//数组尺寸大小 //为 m_matrix 分配内存,这里 m_matrix 是指向指针类型的指针,其定义为:SushiSprite **m_matrix。所以可以理解为 m_matrix 是一个指针数组 m_matrix = (SushiSprite **)malloc(arraySize); memset((void*)m_matrix, 0, arraySize);//初始化数组 m_matrix /* memset 补充 void *memset(void *s, int ch, size_t n); 函数解释:s 指向的某一块内存,将 s 中前 n 个字节 (typedef unsigned int size_t )用 ch 指定的ASCII值 替换并返回 s 。 memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法[1] 。 */ //初始化寿司矩阵 initMatrix(); //调用定时器 scheduleUpdate(); this->schedule(schedule_selector(PlayLayer::timeUpdate), 1.0f); //创建并绑定触摸机制 // 1. 创建一个事件监听器,Onebyone 为单点触摸 auto touchListener = EventListenerTouchOneByOne::create(); // 2. 绑定触摸事件 touchListener->onTouchBegan = CC_CALLBACK_2(PlayLayer::onTouchBegan, this); // 触摸开始时触发 touchListener->onTouchMoved = CC_CALLBACK_2(PlayLayer::onTouchMoved, this); // 触摸移动时触发 // 3. 添加监听器 _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);// addEventListenerWithSceneGraphPriority(EventListener *listener,Node *node); 事件监听器优先级为 0 //而 _eventDispatcher->addEventListenerWithFixedPriority(EventListenr *listener,int fixedPriority)的优先级由我们设置,但不能为 0 /* eventDispatcher事件分发器, 1. eventDispatcher 是 Node 的属性, 2. 通过它我们可以统一管理当前节点(如:场景、层、精灵等)的所有事件分发情况。 3. 但是它本身是一个单例模式值的引用,在 Node 构造函数中,通过 “Director::getInstance()->getEventDispatcher();” 获取,有了这个属性,我们能更为方便的调用。 */ return true; }
void BloodFlashPage::onEnterState() { MsgChangeBackground msg(""); MessageCenter::getInstance()->sendMessage(&msg); loadUI(); }
void CustomSpritePage::onEnterState() { MsgChangeBackground msg(""); MessageCenter::getInstance()->sendMessage(&msg); loadUI(); }
void SpriteBatchNodeTestPage::onEnterState() { MsgChangeBackground msg(""); MessageCenter::getInstance()->sendMessage(&msg); loadUI(); }