Пример #1
0
void players_in_received_handler(DictionaryIterator *iter) {
	Tuple *tuple = dict_find(iter, APP_KEY_METHOD);
	if (!tuple) return;
	free_safe(error);
	switch (tuple->value->uint8) {
		case KEY_METHOD_ERROR: {
			tuple = dict_find(iter, APP_KEY_STATUS);
			error = malloc(tuple->length);
			strncpy(error, tuple->value->cstring, tuple->length);
			players_reload_data_and_mark_dirty();
			break;
		}
		case KEY_METHOD_SIZE:
			free_safe(players);
			num_players = dict_find(iter, APP_KEY_INDEX)->value->uint8;
			players = malloc(sizeof(Player) * num_players);
			if (players == NULL) num_players = 0;
			break;
		case KEY_METHOD_DATA: {
			if (!players_count()) break;
			uint8_t index = dict_find(iter, APP_KEY_INDEX)->value->uint8;
			Player *player = players_get(index);
			player->index = index;
			player->mediaplayer = dict_find(iter, APP_KEY_PLAYER)->value->uint8;
			strncpy(player->title, dict_find(iter, APP_KEY_TITLE)->value->cstring, sizeof(player->title) - 1);
			LOG("player: %d '%s' '%s'", player->index, player->title, player_to_str(player->mediaplayer));
			players_reload_data_and_mark_dirty();
			if (index == current_player) win_players_push_player();
			break;
		}
	}
}
Пример #2
0
int main(void)
{
	physics_init(LCD_WIDTH, LCD_HEIGHT);
	input_init();
	display_init();
	segment_init();
	players_init();
	
	playerA = players_get(0);
	playerB = players_get(1);
	
	ball = physics_create(LCD_WIDTH / 2, LCD_HEIGHT / 2, BALL_RADIUS, BALL_MASS);
	
	for (;;)
	{
		input_update();
		players_update(0.01f);
		physics_update(0.01f);
		game_update();
		game_draw();
	}
	
	return 0;
}