示例#1
0
文件: t.c 项目: shank8/CS460
int body()
{  char c;
   while(1){
     ps();
     
      printf("I am Proc %d in body()\n", running->pid); 
      printf("Input a char : [s|q|f] ");
       c=getc();
       switch(c){
            case 's': tswitch(); break;
            case 'q': grave();   break;
            case 'f': kfork();   break;
            default :            break;
       }
   }
}
void EnnemiSmurfette::onMeure()
{
	ss_etape += 1;
	ss_etape %= 5;

	if (ss_etape == 0) {
		etape += 1;

		if (etape >= 11) {
			a_detruire = true;
			grave(x, y, pic);
			return;
		}
	}

	if (dir == SENS_DROITE)
		pic = pbk_ennemis[325 + etape];
	else
		pic = pbk_ennemis[337 + etape];
}
void EnnemiToad::onMeure()
{
	/*if (dy<-5)
		dy-=5;
	if (dy<-2)
		dy=0;*/
	tombe();

	ss_etape += 1;
	ss_etape %= 6;

	if (ss_etape == 0 && etape < 10)
		etape += 1;
	if ((etape > 4) && (hokuto > 0)) {
		hokuto--;
		etape -= 4;
	}

	if (etape == 5 && ss_etape == 0) {
		sbk_misc.play(9 + rand() % 2);
	}

	if (etape >= 10) {
		int		yy = plat(x, y);

		if (yy != 0 && yy != y_plat[4][x]) {
			grave(x, y, pic);
			a_detruire = true;
		}
	} else {
		if (dir == SENS_GAUCHE) {
			if (!mur_opaque(x - speed, y) && plat(x, y) == 0)
				x -= speed;
			pic = pbk_ennemis[18 + etape];
		} else {
			if (!mur_opaque(x + speed, y) && plat(x, y) == 0)
				x += speed;
			pic = pbk_ennemis[8 + etape];
		}
	}
}
void EnnemiBisouNuage::onMeureFin()
{
	if (etape < 6) {
		ss_etape += 1;
		ss_etape %= 3;

		if (ss_etape == 0)
			etape += 1;

		if (dir == SENS_DROITE) {
//			x += 2;
			pic = pbk_ennemis[236 + etape];
		} else {
//			x -= 2;
			pic = pbk_ennemis[243 + etape];
		}
	} else {
		grave(x, y, pic);
		a_detruire = true;
	}
}
void MorceauTeteRayman::update()
{
	x += dx;
	tombe();

	ss_etape ++;
	ss_etape %= 4;
	if (ss_etape == 0) {
		etape ++;
		etape %= 8;
		pic = pbk_ennemis[496 + etape];
	}


	// Et si la tete touche le sol? ?
	//
	if (dy > 0 && (plat(x, y + dy)) != 0) {
		grave(x, y, pic);
		a_detruire = true;
	}
}
void EnnemiSnorkyBase1::onMeure()
{
	tombe();

	ss_etape += 1;
	ss_etape %= 5;

	if (ss_etape == 0)
		etape += 1;

	if (etape == 4 && ss_etape == 1) {
		Sprite * s = new MorceauSnorkyBaseTeteEntiere();

		s->dir = dir;
		s->y = y - 22;
		s->x = x;

		list_giclures.ajoute((void*) s);

		dy = 0;
	}
	if (etape == 14) {
		if (plat(x, y) != 0) {
			grave(x, y, pic);
		}

		a_detruire = true;

	} else {
		if (dir == SENS_GAUCHE) {
			marche(-SNORKY_BASE_SPEED);
			pic = pbk_ennemis[71 + etape];
		} else {
			marche(SNORKY_BASE_SPEED);
			pic = pbk_ennemis[38 + etape];
		}
	}
}
void EnnemiBulbizarre::onMeure()
{
	tombe();

	ss_etape += 1;
	ss_etape %= 5;

	if (ss_etape == 0 && etape < 8)
		etape += 1;

	if (etape >= 8) {
		int		yy = plat(x, y);

		if (yy != 0 && yy != y_plat[4][x])
			grave(x, y, pic);

		a_detruire = true;
	} else {
		if (dir == SENS_GAUCHE)
			pic = pbk_ennemis[36 + etape];
		else
			pic = pbk_ennemis[28 + etape];
	}
}
示例#8
0
文件: t.c 项目: B-Rich/CptS460
//causes the process to exit
int kexit()
{
   return grave();
}
示例#9
0
文件: t.c 项目: B-Rich/CptS460
int do_exit()
{
   return grave();
}