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);
}
Example #2
0
	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();
	}
Example #3
0
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();
}
Example #4
0
	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;
		}
	}
Example #5
0
	void GroupEditor::setTileFilter(TileFilter filter) {
		m_tile_filter = filter;
		updateSelector();
	}
Example #6
0
	void GroupEditor::setTarget(TileGroup* tile_group) {
		m_tile_group = tile_group;
		updateSelector();
	}