コード例 #1
0
ファイル: main.c プロジェクト: senlinms/C-RPG
World *game_init()
{
	int cx, cy;
	int i;
	srand(time(0));
	World *w = (World *) malloc(sizeof(World));
	memset(w, 0, sizeof(World));
	for (cy = 0; cy < 100; cy++) {
		for (cx = 0; cx < 100; cx++) {
			w->map[cy][cx].bg_color = 0;
			w->map[cy][cx].fg_color = 6;
			w->map[cy][cx].layer = 0;
			w->map[cy][cx].block = 0;
			strcpy(w->map[cy][cx].str, ".");
		}
	}

	for (i = 0; i < 400; i++) {
		Cell c;
		c.fg_color = 2;
		c.bg_color = 0;
		c.layer = 1;
		c.block = 1;
		strcpy(c.str, "#");
		w->map[rand() % 100][rand() % 100] = c;
	}

	new_mk_obj("enemy", w, 10, 10, 0);

	Object *hero_ptr;
	hero_ptr = new_mk_obj("hero", w, 0, 0, 0);
	w->hero = hero_ptr;
	return w;
}
コード例 #2
0
ファイル: obj_handler_tick.c プロジェクト: chan18/C-RPG
int fn_death_drop(Object * me)
{
	int i;
	for (i = 0; i < 10; i++) {
		char *item = &(me->item_slots[i][0]);
		if (!strcmp(item, ""))
			continue;
		new_mk_obj(item, me->world, me->x, me->y, me);
	}
}
コード例 #3
0
ファイル: act.c プロジェクト: senlinms/C-RPG
int act_skill(Object * obj, char name[SHORT_STRLEN])
{
	int hx = obj->x;
	int hy = obj->y;
	World *w = obj->world;
	if (strlen(name) == 0)
		return 0;
	new_mk_obj(name, w, hx, hy, obj);
	char buf[64];
	sprintf(buf, "skill %s is issued", name);
	set_notice(obj, buf);
	return 1;
}
コード例 #4
0
ファイル: obj_handler_tick.c プロジェクト: chan18/C-RPG
int fn_bomb_timer(Object * o)
{
	o->timer -= 1;

	snprintf(o->shape.str, 3, "%d", o->timer);
	if (o->timer <= 0) {
		int cy, cx;
		for (cy = -1; cy <= 1; cy++) {
			for (cx = -1; cx <= 1; cx++) {
				new_mk_obj("fire", o->world, o->x + cx,
					   o->y + cy, o);
			}
		}

		delete_object(o);
	}

}
コード例 #5
0
ファイル: obj_handler_tick.c プロジェクト: chan18/C-RPG
int fn_do_rand(Object * o)
{
	int r = rand() % 50;
	if (r == 0) {
		obj_move(o->world, o, -1, 0);
	}
	if (r == 1) {
		obj_move(o->world, o, 1, 0);
	}
	if (r == 2) {
		obj_move(o->world, o, 0, -1);
	}
	if (r == 3) {
		obj_move(o->world, o, 0, 1);
	}
	if (r == 4) {
		if (rand() % 10 == 0)
			new_mk_obj("bomb", o->world, o->x, o->y, o);
	}
}
コード例 #6
0
ファイル: key_process.c プロジェクト: chan18/C-RPG
void key_attack(Object * obj)
{
	new_mk_obj("bomb", obj->world, obj->x, obj->y, obj);
	strcpy(obj->last_action, "bomb");
}