void TestAppDelegate::onCreateGame(){ TCResources::loadTextureRegions("fruit.png","fruit.txt",RGBA_8888); TCResources::loadTextureRegions("ui_levelMenu.png","ui_levelMenu.txt",RGBA_8888); TCResources::loadTextureRegions("ui_pause.png","ui_pause.txt",RGBA_8888); TCResources::loadAudioInAssets("match.wav"); TCResources::loadAudioInAssets("background.wav"); MapDataManager::instance()->loadAllMapData(); AnimationData::init(); GameData::load(); customFont=CustomFont::alloc(); customFont->retain(); customFont->registerPair("0","num_0.png"); customFont->registerPair("1","num_1.png"); customFont->registerPair("2","num_2.png"); customFont->registerPair("3","num_3.png"); customFont->registerPair("4","num_4.png"); customFont->registerPair("5","num_5.png"); customFont->registerPair("6","num_6.png"); customFont->registerPair("7","num_7.png"); customFont->registerPair("8","num_8.png"); customFont->registerPair("9","num_9.png"); Camera* ca= TCSceneManager::instance()->createCamera(); ca->setOrthof(480,854); GameMain::instance()->init(); LevelMenu::instance()->init(); LevelMenu::instance()->show(); BaseNode* n=BaseNode::alloc(); n->registerUpdate(this,updateSelector(TestAppDelegate::lateUpdate)); ca->rootNode()->addChild(n); }
GroupEditor::GroupEditor(IRect rect) :ui::Window(rect, Color(0, 0, 0)), m_tile_list(rect.width(), 2) { m_view = clippedRect(); m_tile_group = nullptr; m_current_entry = nullptr; m_font = res::getFont(WindowStyle::fonts[1]); m_mode = mAddRemove; memset(m_offset, 0, sizeof(m_offset)); m_selected_group_id = 0; m_selected_surface_id = -1; m_select_mode = 0; m_selection_mode = 0; m_tile_filter = TileFilter::floors; updateSelector(); }
void GameMain::init(){ if(_background){ return; } _background=Sprite::alloc("bg.png"); _background->retain(); _background->addChild(FruitMap::instance()->node()); ConnectionEffect::instance()->setSpaceNode(_background); _src=AudioManager::instance()->createSource("background.wav"); _src->retain(); _src->play(true); _pauseBtn=Sprite::alloc("pause_btn.png"); _pauseBtn->retain(); TCTouchComponent* tc=TCTouchComponent::alloc(); tc->bindDelegateTarget(this); tc->registerDownEvent(touchSelector(GameMain::onPauseDown)); _pauseBtn->addComponent(tc); _background->addChild(_pauseBtn); _pauseBtn->setLocalPosition(Vector2f(-200,400)); PauseDialog::instance()->init(); _grass=Sprite::alloc("grass.png")->retain<Sprite>(); _background->addChild(_grass); _grass->setLocalPosition(Vector2f(0,360)); _grass->registerUpdate(this,updateSelector(GameMain::onGrassUpdate)); _enemy=Enemy::alloc()->retain<Enemy>(); _background->addChild(_enemy); _enemy->reset(); }
void GroupEditor::onInput(const InputState &state) { ASSERT(m_tile_group); if(state.isKeyDown(InputKey::space)) { m_offset[m_mode] = innerOffset(); m_mode = (m_mode == mAddRemove ? mModify : mAddRemove); updateSelector(); return; } const ui::TileList::Entry *entry = m_tile_list.find(state.mousePos() + innerOffset()); m_current_entry = entry; if(m_mode == mModify) { if(state.isKeyDown('D') && entry) { int entry_id = m_tile_group->findEntry(entry->tile); m_tile_group->setEntryDirty(entry_id, !m_tile_group->isEntryDirty(entry_id)); } if(state.isKeyDown('G') && entry && m_selected_group_id != -1) { m_tile_group->setEntryGroup(m_tile_group->findEntry(entry->tile), entry->group_id == m_selected_group_id? m_tile_group->groupCount() : m_selected_group_id); m_tile_list.update(); } if(state.isKeyDown('A') && entry && m_selected_group_id == entry->group_id) { enum { subgroup_count = 3 }; const char *infixes[subgroup_count] = { "CONCAVE_", "CONVEX_", "SIDE_", }; int subgroup_id[subgroup_count] = {-1, -1, -1}; for(int n = 0; n < m_tile_group->entryCount(); n++) { if(m_tile_group->entryGroup(n) == m_selected_group_id) { const char *name = m_tile_group->entryTile(n)->resourceName().c_str(); for(int s = 0; s < subgroup_count; s++) if(!caseEqual(name, infixes[s])) { if(subgroup_id[s] == -1) subgroup_id[s] = m_tile_group->groupCount(); m_tile_group->setEntryGroup(n, subgroup_id[s]); break; } } } m_tile_list.update(); } struct { int key; int side; } actions[] = { { InputKey::kp_1, 0 }, { InputKey::kp_2, 1 }, { InputKey::kp_3, 2 }, { InputKey::kp_6, 3 }, { InputKey::kp_9, 4 }, { InputKey::kp_8, 5 }, { InputKey::kp_7, 6 }, { InputKey::kp_4, 7 } }; if(m_selected_group_id != -1) { for(int a = 0; a < arraySize(actions); a++) if(state.isKeyDown(actions[a].key) || state.isKeyDown(InputKey::kp_5)) m_tile_group->setGroupSurface(m_selected_group_id, actions[a].side, m_selected_surface_id); } for(int n = 0; n <= 9; n++) if(state.isKeyDown('0' + n)) m_selected_surface_id = n; if(state.isKeyDown('-')) m_selected_surface_id = -1; } }
void GroupEditor::setTileFilter(TileFilter filter) { m_tile_filter = filter; updateSelector(); }
void GroupEditor::setTarget(TileGroup* tile_group) { m_tile_group = tile_group; updateSelector(); }