コード例 #1
0
ファイル: uppg21.c プロジェクト: slaeshjag/algdata
int main(int argc, char **argv) {
	DARNIT_IMAGE_DATA img;
	DARNIT_TILESHEET *ts;
	IMG_STRUCT **imgs, **tmp;
	DARNIT_KEYS keys;
	int images, image_disp, i;

	imgs = NULL;
	images = 0;
	image_disp = 0;

	if (argc < 2) {
		fprintf(stderr, "Usage: %s <image to analyze>\n", argv[0]);
		return -1;
	}

	d_init("algdata", "algdata", NULL);
	if (!((img = d_img_load_raw(argv[1])).data)) {
		fprintf(stderr, "Unable to load %s\n", argv[1]);
		d_quit();
	}

	d_render_clearcolor_set(255, 255, 255);
	do {
		i = 0;
		ts = next_image(img, &i);
		if (ts) {
			if (!(tmp = realloc(imgs, sizeof(IMG_STRUCT **) * (images + 1))))
				d_quit();
			imgs = tmp;
			imgs[images] = new_image(ts, i);
			images++;
		}
	} while (ts);

	if (!imgs)
		d_quit();

	sort_image(imgs, images);

	for (;;) {
		keys = d_keys_get();
		if (keys.start) {
			image_disp = (image_disp + 1 >= images) ? 0 : image_disp + 1;
			d_keys_set(keys);
		}
			
		d_render_begin();

		d_render_tile_blit(imgs[image_disp]->ts, 0, 0, 0);

		d_render_end();
		d_loop();
	}

	return 0;
}
コード例 #2
0
ファイル: pong.c プロジェクト: slaeshjag/darnit-examples
int main(int argc, char **argv) {
	d_init("pong", "Pong!", NULL);

	if (!init()) {
		fprintf(stderr, "libDarnit didn't init\n");
		return -1;
	}

	d_render_clearcolor_set(0, 0, 192);

	for (;;) {
		player_loop();
		ball_loop();

		d_render_begin();

		d_render_tile_blit(p.player_ts, 0, p.player.x, p.player.y / 1000);
		d_render_end();
		d_loop();
	}

	d_quit();

	return 0;
}
コード例 #3
0
ファイル: spriteview.c プロジェクト: 0502758187/libdarnit
int main(int argc, char **argv) {
	DARNIT_SPRITE *sprite;

	if (argc <3) {
		fprintf(stdout, "Usage: %s <sprite> <direction>\n", argv[0]);
		return -1;
	}

	if (d_init("libDarnit spriteview", "spriteview", NULL) == NULL) {
		fprintf(stderr, "libDarnit failed to init\n");
		return -1;
	}

	if ((sprite = d_sprite_load(argv[1], atoi(argv[2]), DARNIT_PFORMAT_RGB5A1)) == NULL) {
		fprintf(stderr, "Unable to open sprite %s\n", argv[1]);
		d_quit();
		return -1;
	}

	d_sprite_move(sprite, 0, 0);
	d_sprite_animate_start(sprite);
	d_render_blend_enable();
	
	for (;;) {
		d_render_begin();
		d_sprite_draw(sprite);
		d_render_end();
		d_loop();
	}

	return 0;
}
コード例 #4
0
ファイル: svgestim.c プロジェクト: slaeshjag/svgestim
int main(int argc, char **argv) {
	DARNIT_KEYS keys;
	DARNIT_MOUSE mouse;
	//particle_emitter_new(30, 5000, 8000, 10000, 255, 0, 0, PARTICLE_TYPE_PULSE, 400, 240, 0, -100, 100);
	//particle_emitter_new(30, 5000, 8000, 10000, 255, 255, 0, PARTICLE_TYPE_PULSE, 400, 240, 0, -100, 100);
	
	init();
	gamestate(GAMESTATE_MENU);
	
	while(_gamestate!=GAMESTATE_QUIT) {
		keys=d_keys_get();
		mouse=d_mouse_get();
		
		if(handle[_gamestate])
			handle[_gamestate](&keys, &mouse);
		d_render_begin();
		if(render[_gamestate])
			render[_gamestate]();
		d_render_end();
		d_loop();
	}
	
	d_quit();
	return 0;
}
コード例 #5
0
ファイル: orthotest.c プロジェクト: slaeshjag/libdarnit
int main(int argc, char **argv) {
	DARNIT_TILESHEET *ts;
	DARNIT_TILEMAP *tm;
	int i, t;

	d_init("orthotest", "orthotest", NULL);
	ts = d_render_tilesheet_load("grid.png", 24, 24, DARNIT_PFORMAT_RGB5A1);
	tm = d_tilemap_new(0xFFF, ts, 0xFFF, 10, 18);
	for (i = 0; i < 180; i++)
		tm->data[i] = 1;
	d_tilemap_recalc(tm);
	d_tilemap_camera_move(tm, -1, 0);

	t = d_time_get();
	for (i = 0;; i++) {
		fprintf(stderr, "Moving camera %i\n", -i / 30);
		d_tilemap_camera_move(tm, 0, -i / 30);
		d_render_begin();
		d_tilemap_draw(tm);
		d_render_end();
		d_loop();
	}

	d_quit();
}
コード例 #6
0
ファイル: isotest.c プロジェクト: 0502758187/libdarnit
int main(int argc, char **argv) {
	DARNIT_TILEMAP *tm;
	DARNIT_TILESHEET *ts;
	int i, j;

	d_init("isotest", "isotest", NULL);
	ts = d_render_tilesheet_isom_load("isosheet.png", 64, 64, DARNIT_PFORMAT_RGB5A1);
	tm = d_tilemap_isom_new(0, ts, 0xFF, 32, 16, 32);

	d_render_blend_enable();
	d_tilemap_recalc(tm);
	
	for (i = 0;; i++) {
		j = i % 1200;
		if (j > 600)
			j = j + (2*(j - 600)) * -1;
		j *= -1;
		j += 300;
		d_tilemap_camera_move(tm, 0, 0);
		d_render_begin();
		d_render_blend_enable();
		d_tilemap_draw(tm);
		d_render_end();
		d_loop();
	}

	d_quit();
}
コード例 #7
0
ファイル: uppg8.c プロジェクト: h4xxel/algdat
int main(int argc, char **argv) {
	int i, j;
	struct GRAPH *g, *tree=NULL;
	struct VERTEX *v;
	struct POINT p;
	DARNIT_KEYS keys;
	srand(time(NULL));
	d_init("Graphs", "uppg8", NULL);
	
	for(i=0; i<256; i++) {
		circle[i]=d_render_circle_new(32, 1);
		line[i]=d_render_line_new(1, 1);
	}
	
	for(j=0; j<4; j++)
		for(i=0; i<7; i++) {
			p.x=i*100+50;//(rand()%80)*10;
			p.y=j*100+50;//(rand()%48)*10;
			v=graph_add_vertex(&graph, p);
			for(g=graph; g; g=g->next)
				if(!(rand()%6))
					graph_add_edge(v, g->vertex, rand()%100, DIRECTION_DOUBLE);
		}
	tree=graph_prim(graph);
	draw_graph(graph);
	for(g=graph;;) {
		keys=d_keys_get();
		if(keys.start) {
			g=g==graph?tree:graph;
			draw_graph(g);
		}
		d_keys_set(keys);
		d_render_begin();
		d_render_tint(0xFF, 0xFF, 0xFF, 0xFF);
		for(i=0; i<vertices; i++)
			d_render_circle_draw(circle[i]);
		for(i=0; i<edges; i++) {
			d_render_tint(length[i], 0x7F, 0x0, 0xFF);
			d_render_line_draw(line[i], 1);
		}
		
		d_render_end();
		d_loop();
	}
	
	d_quit();
	return 0;
}
コード例 #8
0
ファイル: input.c プロジェクト: slaeshjag/libdarnit
void inputPoll() {
	TPW_EVENT event;

	tpw_event_loop();

	while (tpw_event_pop(&event)) {
		if (event.type == TPW_EVENT_TYPE_KEYDOWN) {
			if (event.key.keysym == d->input.map.up)
				d->input.key |= KEY_UP;
			else if (event.key.keysym == d->input.map.down)
				d->input.key |= KEY_DOWN;
			else if (event.key.keysym == d->input.map.left)
				d->input.key |= KEY_LEFT;
			else if (event.key.keysym == d->input.map.right)
				d->input.key |= KEY_RIGHT;
			else if (event.key.keysym == d->input.map.x)
				d->input.key |= KEY_X;
			else if (event.key.keysym == d->input.map.y)
				d->input.key |= KEY_Y;
			else if (event.key.keysym == d->input.map.a)
				d->input.key |= KEY_A;
			else if (event.key.keysym == d->input.map.b)
				d->input.key |= KEY_B;
			else if (event.key.keysym == d->input.map.start)
				d->input.key |= KEY_START;
			else if (event.key.keysym == d->input.map.select)
				d->input.key |= KEY_SELECT;
			else if (event.key.keysym == d->input.map.l)
				d->input.key |= KEY_L;
			else if (event.key.keysym == d->input.map.r)
				d->input.key |= KEY_R;
			/* I'm sorry Sara... */
			#ifdef PANDORA
			else if (event.key.keysym == TPW_KEY_ESCAPE)
				d_quit();
			#elif defined(MAEMO)
			else if (event.key.keysym == TPW_KEY_BACKSPACE && (tpw_keys_modifiers() & TPW_KEY_MOD_CTRL))
				tpw_input_grab(TPW_INPUT_GRAB_RELEASE);
			#endif
			if (event.key.keysym == TPW_KEY_LSHIFT)
				d->input.upper |= 2;
			else if (event.key.keysym == TPW_KEY_RSHIFT)
				d->input.upper |= 1;
			if (event.key.keysym < 273)
				d->input.lastkey = event.key.keysym;
			inputRawPush(event.key.keysym, DARNIT_KEYACTION_PRESS, event.key.unicode);

		} else if (event.type == TPW_EVENT_TYPE_KEYUP) {
			if (event.key.keysym == d->input.map.up) {
				d->input.key |= KEY_UP;
				d->input.key ^= KEY_UP;
			} else if (event.key.keysym == d->input.map.down) {
				d->input.key |= KEY_DOWN;
				d->input.key ^= KEY_DOWN;
			} else if (event.key.keysym == d->input.map.left) {
				d->input.key |= KEY_LEFT;
				d->input.key ^= KEY_LEFT;
			} else if (event.key.keysym == d->input.map.right) {
				d->input.key |= KEY_RIGHT;
				d->input.key ^= KEY_RIGHT;
			} else if (event.key.keysym == d->input.map.x) {
				d->input.key |= KEY_X;
				d->input.key ^= KEY_X;
			} else if (event.key.keysym == d->input.map.y) {
				d->input.key |= KEY_Y;
				d->input.key ^= KEY_Y;
			} else if (event.key.keysym == d->input.map.a) {
				d->input.key |= KEY_A;
				d->input.key ^= KEY_A;
			} else if (event.key.keysym == d->input.map.b) {
				d->input.key |= KEY_B;
				d->input.key ^= KEY_B;
			} else if (event.key.keysym == d->input.map.start) {
				d->input.key |= KEY_START;
				d->input.key ^= KEY_START;
			} else if (event.key.keysym == d->input.map.select) {
				d->input.key |= KEY_SELECT;
				d->input.key ^= KEY_SELECT;
			} else if (event.key.keysym == d->input.map.l) {
				d->input.key |= KEY_L;
				d->input.key ^= KEY_L;
			} else if (event.key.keysym == d->input.map.r) {
				d->input.key |= KEY_R;
				d->input.key ^= KEY_R;
			}

			if (event.key.keysym == TPW_KEY_LSHIFT) {
				d->input.upper |= 2;
				d->input.upper ^= 2;
			} else if (event.key.keysym == TPW_KEY_RSHIFT) {
				d->input.upper |= 1;
				d->input.upper ^= 1;
			}
			inputRawPush(event.key.keysym, DARNIT_KEYACTION_RELEASE, event.key.unicode);
			
		} else if (event.type == TPW_EVENT_TYPE_MOUSEMOVE) {
			d->input.mouse.x = event.mouse.x;
			d->input.mouse.y = event.mouse.y;
		} else if (event.type == TPW_EVENT_TYPE_MOUSEBTN_DOWN) {
			if (event.mouse.button == TPW_MOUSE_BUTTON_LEFT) {
				d->input.key |= MB_LEFT;
				d->input.mouse.mb_l = 1;
			} else if (event.mouse.button == TPW_MOUSE_BUTTON_RIGHT) {
				d->input.key |= MB_RIGHT_D;
				d->input.mouse.mb_r = 1;
			} else if (event.mouse.button == TPW_MOUSE_BUTTON_WHEEL_UP)
				d->input.mouse.wheel--;
			else if (event.mouse.button == TPW_MOUSE_BUTTON_WHEEL_DOWN)
				d->input.mouse.wheel++;
		} else if (event.type == TPW_EVENT_TYPE_MOUSEBTN_UP) {
			if (event.mouse.button == TPW_MOUSE_BUTTON_LEFT) {
				d->input.key |= MB_LEFT;
				d->input.key ^= MB_LEFT;
				d->input.mouse.mb_l = 0;
			} else if (event.mouse.button == TPW_MOUSE_BUTTON_RIGHT) {
				d->input.key |= MB_RIGHT_D;
				d->input.key ^= MB_RIGHT_D;
				d->input.mouse.mb_r = 0;
			}
		} else if (event.type == TPW_EVENT_TYPE_JOYSTICK_MOVE) {
			if (event.joystick.js_id == d->input.js.nub0i) {
				if (event.joystick.axis == 0)
					d->input.js.nub0_x = event.joystick.value;
				else
					d->input.js.nub0_y = event.joystick.value;
			} else {
				if (event.joystick.axis == 0)
					d->input.js.nub1_x = event.joystick.value;
				else
					d->input.js.nub1_y = event.joystick.value;
			}
		#ifdef MAEMO
		} else if (event.type == TPW_EVENT_TYPE_ACTIVE && event.active.gain == 1 && event.active.app_active) {
			tpw_input_grab(TPW_INPUT_GRAB_GRAB);
		#endif
		}  else if (event.type == TPW_EVENT_TYPE_QUIT) {
			d_quit();
			exit(0);
		}
	}

	d->input.keypending &= d->input.key;

	d->input.key |= ((tpw_keys_modifiers()) << 16);
	
	return;
}
コード例 #9
0
ファイル: main.c プロジェクト: h4xxel/birdie26
int main(int argc, char  **argv) {
	char font_path[512];
	char *tmp;
	bool fullscreen = false;
	
	if (argc >= 2 && !strcmp(argv[1], "-fs"))
		fullscreen = true;
		

	d_init_custom("Fascister i grönsakslandet ~ //achtung fulkod", DISPLAY_WIDTH, DISPLAY_HEIGHT, fullscreen, "birdie26", NULL);
	
	sprintf(font_path, "%s", d_fs_exec_path());
	chdir(tmp = dirname(font_path));
	sprintf(font_path, "%s/res/font.ttf", tmp);
	gfx.font.large = d_font_load(font_path, 36, 256, 256);
	gfx.font.small = d_font_load(font_path, 16, 256, 256);
	s = malloc(sizeof(*s));

	ui_init(4);
	menu_init();
	gameroom_init();
	lobby_init();
	character_room_init();
	game_over_init();
	
	gamestate_pane[GAME_STATE_MENU] = &menu.pane;
	gamestate_pane[GAME_STATE_SELECT_NAME] = &select_name.pane;
	gamestate_pane[GAME_STATE_CHARACTERS] = &character_room.pane;
	gamestate_pane[GAME_STATE_LOBBY] = &lobby.pane;
	gamestate_pane[GAME_STATE_ENTER_IP] = &enter_ip.pane;
	gamestate_pane[GAME_STATE_GAMEROOM] = &gameroom.pane;
	gamestate_pane[GAME_STATE_GAME_OVER] = &game_over.pane;
	
	
	signal(SIGINT, d_quit); //lol
	network_init(PORT);
	
	d_cursor_show(1);
	d_render_clearcolor_set(0x7F, 0x7F, 0x7F);
	
	if(argc > 1) {
		snprintf(player_name, NAME_LEN_MAX, "%s", argv[1]);
		game_state(GAME_STATE_MENU);
	} else
		game_state(GAME_STATE_SELECT_NAME);
	while(gamestate!=GAME_STATE_QUIT) {
		if(state_network_handler[gamestate])
			state_network_handler[gamestate]();
		
		d_render_begin();
		d_render_blend_enable();
		
		d_render_tint(20, 20, 20, 255);
		
		if(gamestate_pane[gamestate])
			ui_events(gamestate_pane[gamestate], 1);
	
		d_render_tint(255, 255, 255, 255);
		if(state_render[gamestate])
			state_render[gamestate]();
		
		if(state_network_handler[gamestate])
			state_network_handler[gamestate]();
	
		d_render_end();
		d_loop();
	}

	d_quit();
	return 0;
}