view webGL/dandy/resources/Character_state.js~ @ 16:527eac9a7d0b

update
author NOBUYASU Oshiro
date Sat, 17 Jul 2010 12:56:57 +0900
parents a2b31fe50d9d
children 2018ad94fd9b
line wrap: on
line source

function state_update()
{
    for(var i = 0; Boolean(active_chara_list.enemy[i]) ; i++)
	{
	    var p = active_chara_list.enemy[i];
	    if(p.flag == true)
		{
		    p = p.state(p);
		}
	}
}

noaction = function no_action(p)
{
    p.state = noaction;
    return p;
}

delete_chara = function delete_character( p )
{
    p.state = noaction;
    p.flag = false;
    return p;
}

chara_state0 = function character_state0( p )
{
    p.x += p.vx;
    p.y += p.vy;
    p.state = chara_state0;
    return p;
}

chara_state1 = function character_state1( p )
{
    p.x -= p.vx;
    p.y -= p.vy;
    p.state = chara_state1;
    return p;
}

chara_state2 = function character_state2( p )
{
    p.x -= 0.25;
    p.y += p.vy;
    p.state = chara_state2;
    return p;
}

chara_state3 = function character_state3( p )
{
    p.x += p.vx;
    p.y += p.vy;
    if((p.dt1 == 60) ||
       (p.dt1 == 90) ||
       (p.dt1 == 30))
	{
	    Puttama(0, p.x, p.y);
	}
    p.dt1++;
    p.state = chara_state3;
    return p;
}

chara_state4 = function character_state4(p)
{
    p.y += p.vy;
    p.x += p.vx;
    if(p.y < jiki.y && p.y + 16 > jiki.y)
	{
	    p.vy = -2;
	    p.vx = ((jiki.x > p.x ) ? 4 : -4);
	    p.state = chara_state7;
	}
    else p.state = chara_state4;
    return p;
}

chara_state5 = function character_state5(p)
{
    p.y += p.vy;
    p.x += p.vx;
    if(p.y + 96 < jiki.y
       && p.y + 128 > jiki.y)
	{
	    p.vy = -2;
	    p.vx = ((jiki.x > p.x) ? 4 : -4);
	    p.state = chara_state0;
	}
    else p.state = chara_state5;
    //PutSprite(count, p.x, p.y, p.charano);                                                                           
    return p;
}

chara_state6 = function character_state6(p)
{
    p.y += p.vy;
    p.x += p.vx;
    if(p.y + 96 < jiki.y
       && p.y + 128 > jiki.y)
	{
	    p.vy = 2;
	    p.vx = ((jiki.x > p.x) ? 4 : -4);
	    p.state = chara_state0;
	}
    else p.state = chara_state6;
    //PutSprite(count, p.x, p.y, p.charano);                                                                           
    return p;
}

chara_state7 = function character_state7(p)
{
    p.x += p.vx;
    p.y += p.vy;
    if((p.dt1 == 60) || (p.dt1 == 90)
       || (p.dt1 == 30))
	{
	    Puttama(1, p.x, p.y);
	}
    p.dt1++;
    p.state = chara_state7;
    return p;
}

// stage1 boss patern
chara_state8 = function character_state8( p )
{
    if(p.y < 520*d_y)
	{
	    p.y += p.vy;
	    tekino0 = p;
	    count++;
	    /*
		 kyeenmyno = p;
		 DefSpriteEx(p.charano, 16*4, 32*4);
		 PutSpriteEx(p.charano, (p.x * 4), (p.y * 4), 0.2, 0.2, 1);
		 */
	    p.dt1 = 512;
	    p.s = 0.125;
	    p.state = chara_state8;
	    return p;
	}
    p.state = chara_state9;
    return p;
}

chara_state9 = function character_state9( p )
{
    if(p.s <= 2)
	{
	    p.s += 0.05
	    p.y -= 12*d_y;
	    count++;
	    //	    DefSpriteEx(54, 16*4, 32*4);
	    //	    PutSpriteEx(54, (p.x * 4), (p.y * 4), p.x, p.x, 1);
	    p.state = chara_state9;
	    return p;
	}
    count++;
    rinkx = p.x/d_x;
    rinky = p.y/d_y;
	//    DefSpriteEx(54, 16,32);
	//    PutSpriteEx(54, p.x, p.y, p.s, p.s, 1);
	//    Putenemy(5, rinkx - 16, rinky -16, 1, 0, chara_state10);
	//    Putenemy(5, rinkx - 16, rinky -16, -1, 0, chara_state10);
	
    PutBoss(4, rinkx - 16*d_x, rinky -16*d_y, 1, 0, chara_state10);
    PutBoss(4, rinkx - 16*d_x, rinky -16*d_y, -1, 0, chara_state10);
	
    p.state = chara_state11;
    p.dt1 = 8192;
	
    return p;
}

chara_state10 = function character_state10( p )
{
    if(p.dt1 < 48)
	{
	    p.x += p.vx;
	    p.y += p.vy;
	    p.dt1++;
	    p.state = chara_state10;
	    return p;
	}
    rinkf1 = 1;
    p.dt1 = rinkx * d_x;
    p.dt2 = rinky * d_y;
    p.state = chara_state13;
    return p;
}

chara_state11 = function character_state11( p )
{
    if(rinkf1 == 0)
	{
	    count++;
	    //	    DefSpriteEx(54, 16, 32);
	    //	    PutSpriteEx(54, p.x, p.y, p.s, p.s, 1);
	    
	    p.state = chara_state11;
	    return p;
	}
    p.dt1 = 0;
    p.dt2 = 0;
    p.state = chara_state12;
    return p;
}

chara_state12 = function character_state12( p )
{
    if(fastebos > 60*60)
	{
	    //	    if(p.y > 70+boss[1].h)
	    if(p.y > (240+32)*d_y)
		{
		    p.state = delete_chara;
		}
		p.y += 0.3*d_y;
	    rinky += 0.3*d_y;
	    count++;
	    //	    DefSpriteEx(54, 16, 32);
	    //	    PutSpriteEx(54, p.x, p.y, 2, 2, 1);
 	    p.state = chara_state12;
	    return p;
	}
    if(p.dt1 <= 60)
	{
	    if(jiki.x + 15*d_x -rinkx < -5*d_x)
		{
		    p.vx = -0.3 * d_x;
		}
	    else if(jiki.x + 15*d_x - rinkx > 5*d_x)
		{
		    p.vx = +0.8 * d_x;
		}
	    else p.vx = 0;
	    rinkx = p.x;
	    rinky = p.y;
	}
    if((p.dt1 > 60) && (p.dt1 <= 70))
	{
	    if(p.dt1 % 2 == 1)
		{
		    Puttama(0, rinkx/d_x - 16 , rinky/d_y);
		    Puttama(0, rinkx/d_x, rinky/d_y);
		    Puttama(0, rinkx/d_x + 16, rinky/d_y);
		}
	}
    if((p.dt1 > 180) && (p.dt1 <= 240))
	{
	    if(p.dt1 % 2 == 1)
		{
		    rinkf2 = 1;
		    Puttama(2, rinkx/d_x - 16, p.y/d_y -32);
		    Puttama(3, rinkx/d_x + 32 - 16, p.y/d_y - 32);
		}
	    else 
		{
		    rinkf2 = 2;
		}
	}
    if(p.df1 > 240)
	{
	    rinkf2 = 2;
	}
    if((p.dt1 > 240) && (p.dt1 <= 400))
	{
	    count++;
	    //	    PutSprite(count, rinkx - 16, rinky + 32, 58 + p.dt1 %4)
	}
    if((p.dt1 > 300) && (p.dt1 <= 400))
	{
	    rinkf2 = 3;
	    if(jiki.x + 15*d_x - rinkx < -5*d_x)
		{
		    p.vx = -1 * d_x;
		}
	    else if(jiki.x + 15*d_x - rinkx > 5*d_x)
		{
		    p.vx = +1 * d_x;
		}
	    else p.vx = 0;
	    p.x += p.vx;
	    rinkx = p.x;
	    rinky = p.y;
	    Puttama(4, rinkx/d_x - 8, rinky/d_y + 16);
	}
    if((p.dt1 > 400) && (p.dt1 <= 500))
	{
	    rinkf2 = 4;
	    if(jiki.x + 15*d_x - rinkx > 5*d_x)
		{
		    p.vx = -1*d_x;
		}
	    else if(jiki.x + 15*d_x - rinkx > 5*d_x)
		{
		    p.vx = +1*d_x;
		}
	    else p.vx = 0;
	    p.x += p.vx;
	    rinkx = p.x;
	    rinky = p.y;
	}
    if(p.dt1 > 500)
	{
	    rinkf2 = 5;
	    if(jiki.x + 15*d_x - rinkx < -5*d_x)
		{
		    p.vx = -1*d_x;
		}
	    else if(jiki.x + 15*d_x - rinkx > 5*d_x) 
		{
		    p.vx = +1*d_x;
		}
	    else p.vx = 0;
	    p.x += p.vx;
	    rinkx = p.x;
	    rinky = p.y;
	}
    if(p.dt1 > 600)
	{
	    rinkf2 = 0;
	    p.dt1 = 0;
	}
    fastebos++;
    p.dt1++;
    count++;
    //    DefSpriteEx(54, 16, 32);
    //    PutSpriteEx(54, p.x, p.y, 2, 2, 1);
    p.state = chara_state12;    
    return p;
	
}

chara_state13 = function character_state13(p)
{
    if(tekino0.flag == false)
	{
	    Bom(p.x, p.y);
	    p.flag = false;
	    p.state = delete_chara;
	    p.collision = noaction;
	    return p;
	}
    p.x += rinkx*d_x - p.dt1*d_x;
    p.y += rinky*d_y -p.dt2*d_y;
    p.dt1 = rinkx;
    p.dt2 = rinky;
    if(rinkf2 == 1)
	{
	    if(p.x > rinkx * d_x)
		{
		    Puttama(2, p.x/d_x + 32, p.y/d_y);
		}
	}
    if(rinkf2 == 4)
	{
	    count++;
	    //	    PutSprite(count, p.x, p.y + 56, 58+filpcount % 4);
	    //	    PutBoss(count, p.x, p.y + 56, 58+filpcount % 4);
	    //	    PutBoss(2, rinkx/d_x - 16, rinky/d_y -16, 1, 0, chara_state10);
	}
    if(rinkf2 == 5)
	{
	    if(p.x > rinkx*d_x)
		{
		    Puttama(5, p.x/d_x + 8 , p.y/d_y + 24);
		}
	    if(p.x < rinkx*d_x)
		{
		    Puttama(5, p.x/d_x + 8, p.y/d_y + 24);
		}
	}
    return p;
}


chara_state20 = function character_state(p)
{
    p.x += p.vx;
    p.y += p.vy;
    p.vx -= 0.5*d_x;
    p.vy += 0.4*d_y;
    return p;
}

chara_state21 = function character_state21(p)
{
    p.x += p.vx;
    p.y += p.vy;
    p.vx += 0.5*d_x;
    p.vy += 0.4*d_y;
    return p;
}

chara_state22 = function character_state22(p)
{
    sf = Math.random() % 4;
    if((sf == 0) || (sf == 1))
	{
	    p.x = -35;
	    p.y = Math.random() % (120 - 35);
	    p.vx = (Math.random() % 4 + 1);
	    p.vy = Math.random() % 3 + 1;
	    p.state = chara_state23;
	}
    if((sf == 2))
	{
	    p.x = Math.random() % 290;
	    p.y = -30;
	    p.vx = Math.random() % 3 - 1;
	    p.vy = (Math.random() % 4 + 1);
	    p.state = chara_state23;
	}
    if(sf == 3)
	{
	    p.x = 320;
	    p.y = Math.random() % (120 - 35);
	    p.vx = (Math.random() % 4 + 1) * -1;
	    p.vy = Math.random() % 3 -1;
	    p.state = chara_state23;
	}
    return p;
}



chara_state400 = function character_state400(p)
{
    p.vy++;
    p.y += p.vy / 4;
    p.state = chara_state400;
    return p;
}

chara_state401 = function character_state401(p)
{
    {
		p.vx++;
		p.x += p.vx / 8;
		if (p.x > (jiki.x - 32))
	    {
			p.vy--;
	    }
		p.y += p.vy / 8;
		if (p.dt1 % 50 == 37)
	    {
			Puttama(1, p.x + 8, p.y + 24);
	    }
		p.dt1++;
		return p;
    }
}

chara_state402 = function character_state402(p)
{
    p.vx--;
    p.x += p.vx / 8;
    if(p.x < (jiki.x + 32 * d_x))
	{
	    p.vy--;
	}
    p.y += p.vy / 8;
    if(p.dt1 % 50 == 37)
	{
	    Puttama(1, p.x + 8, p.y + 42);
	}
    p.dt1++;
    return p;
}