Example #1
0
VOID TimerUpdate(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
	HeroUpdate();
	TerrianUpdate();
	GameStatusUpdate();
	InvalidateRect(hWnd, NULL, FALSE);
}
Example #2
0
VOID TimerUpdate(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
	if (wParam == TIMER_ID)
	{
		HeroUpdate();
		BackgroundUpdate();
		TerrianUpdate();
		if (GameStart)
		{
			GameStatusUpdate();
			OthersUpdate();
			CoinUpdate();
			MissileUpdate();
			LaserUpdate();
			BOOL judgecollision = CheckCollision();
			if (judgecollision)
			{
				m_hero.life--;
				if (!m_hero.life)
				{
					m_hero.alive = FALSE;
					IsOnFire = FALSE;
					//KillTimer(hWnd, TIMER_ID);
					//KillTimer(hWnd, SCORE_ID);
				}
				else
				{
					m_hero.invincible = 100;
					for (int i = 0; i < MAX_LASER_NUM; i++)
					{
						m_laser[i].blink = FALSE;
					}
				}
				m_missile.active = FALSE;
			}
		}
	}
	if (wParam == SCORE_ID)
	{
		//GameStatusUpdate();
		ScorePerFrame++;
		if (LaserRandom >= 9) LaserRandom -= 3;
		if (MissileRandom >= 90) MissileRandom -= 30;

	}
	if (wParam == ENDING_ID)
	{
		CharacterCount++;
	}
	InvalidateRect(hWnd, NULL, FALSE);
}
Example #3
0
//
// HeroEM_PROC
// Purpose; Processes entity messages.
//
void HeroEM_PROC( ENTITY *self, EM msg, int var1, int var2 )
{
  switch(msg)
  {
    // General
  case EM_CREATE:
    HeroConstruct( self, var1 );
    break;
  case EM_DESTROY:
    HeroDestroy( self );
    break;
  case EM_CLSINIT:
    HeroInit( (const char *)var1 );
    break;
  case EM_UPDATE:
    HeroUpdate( self, (float *)var1 );
    break;
  case EM_DRAW:
    HeroDraw( self );
    break;
  case EM_INACTIVE:
    EntityInactive( self );
    break;
    
    // Position
  case EM_SETPOS:
    SendComEM( self->comps.POSC, EM_SETPOS, var1, var2 );
    break;
  case EM_GETPOS:
    SendComEM( self->comps.POSC, EM_GETPOS, var1, var2 );
    break;
    
    // Physics
  case EM_SETVEL:
    SendComEM( self->comps.PC, EM_SETVEL, var1, var2 );
    break;
  case EM_GETVEL:
    SendComEM( self->comps.PC, EM_GETVEL, var1, var2 );
    break;
  case EM_SETACCEL:
    SendComEM( self->comps.PC, EM_SETACCEL, var1, var2 );
    break;
  case EM_GETACCEL:
    SendComEM( self->comps.PC, EM_GETACCEL, var1, var2 );
    break;
  case EM_STEPXPOS:
    SendComEM( self->comps.PC, EM_STEPXPOS, var1, var2 );
    break;
  case EM_STEPYPOS:
    SendComEM( self->comps.PC, EM_STEPYPOS, var1, var2 );
    break;
  case EM_GRAVITY:
    SendComEM( self->comps.PC, EM_GRAVITY, var1, 0 );
    break;

    // COLLISION
  case EM_GETWH:
    SendComEM( self->comps.CC, EM_GETWH, var1, var2 );
    break;
  case EM_SETWH:
    SendComEM( self->comps.CC, EM_SETWH, var1, var2 );
    break;
  case EM_HITTEST:
    SendComEM( self->comps.CC, EM_HITTEST, var1, var2 );
    break;
  case EM_IHITYOU:
    SendComEM( self->comps.CC, EM_IHITYOU, var1, var2 );
    break;

    // PLAYERCOMPONENT
  case EM_SETJUMP:
    SendComEM( self->comps.PLAC, EM_SETJUMP, (BOOL *)var1, 0 );
    break;
  case EM_GETJUMP:
    SendComEM( self->comps.PLAC, EM_GETJUMP, (BOOL *)var1, 0 );
    break;
  case EM_GETINVEC:
    SendComEM( self->comps.PLAC, EM_GETINVEC, (VECTOR2D *)var1, 0 );
    break;
  case EM_SETINVEC:
    SendComEM( self->comps.PLAC, EM_SETINVEC, (VECTOR2D *)var1, 0 );
    break;
  case EM_SETJUMPN:
    SendComEM( self->comps.PLAC, EM_SETJUMPN, var1, 0 );
    break;
  case EM_GETJUMPN:
    SendComEM( self->comps.PLAC, EM_GETJUMPN, (BOOL *)var1, 0 );
    break;
  case EM_GETHTBTM:
    SendComEM( self->comps.PLAC, EM_GETHTBTM, (BOOL *)var1, 0 );
    break;
  case EM_SETHTBTM:
    SendComEM( self->comps.PLAC, EM_SETHTBTM, var1, 0 );
    break;

    // LOCI
  case EM_GETLOCUS:
    SendComEM( self->comps.GC, EM_GETLOCUS, (const char *)var1, (LOCUS *)var2 );
    break;
  case EM_CLDSETIM:
    SendComEM( self->comps.GC, EM_CLDSETIM, (const char *)var1, (IMAGE *)var2 );
    break;
  case EM_CLDSETAN:
    SendComEM( self->comps.GC, EM_CLDSETAN, (const char *)var1, (ANIMATION *)var2 );
    break;
  case EM_INSLOCUS:
    SendComEM( self->comps.GC, EM_INSLOCUS, (LOCUS *)var1, 0 );
    break;
  case EM_CLDFREAN:
    SendComEM( self->comps.GC, EM_CLDFREAN, (const char *)var1, 0 );
    break;
  case EM_CLDTGLLC:
    SendComEM( self->comps.GC, EM_CLDTGLLC, (const char *)var1, 0 );
    break;
  case EM_CLDSETLC:
    SendComEM( self->comps.GC, EM_CLDSETLC, (const char *)var1, (BOOL *)var2 );
    break;
  case EM_CLDOFFLC:
    SendComEM( self->comps.GC, EM_CLDOFFLC, (const char *)var1, 0 );
    break;
  case EM_CLDONLC:
    SendComEM( self->comps.GC, EM_CLDONLC, (const char *)var1, 0 );
    break;

    // HITPOINTS
  case EM_GETHP:
    SendComEM( self->comps.HP, EM_GETHP, (int *)var1, 0 );
    break;
  case EM_SETHP:
    SendComEM( self->comps.HP, EM_SETHP, var1, 0 );
    break;
  case EM_DAMAGEHP:
    SendComEM( self->comps.HP, EM_DAMAGEHP, var1, 0 );
    break;
  case EM_HEALHP:
    SendComEM( self->comps.HP, EM_HEALHP, var1, 0 );
    break;

    // INVENTORY
  case EM_GETINV:
    SendComEM( self->comps.IC, EM_GETINV, (int *)var1, var2 );
    break;
  case EM_SETINV:
    SendComEM( self->comps.IC, EM_SETINV, (ITEM_ID)var1, var2 );
    break;
  case EM_INSINV:
    SendComEM( self->comps.IC, EM_INSINV, (ITEM_ID)var1, 0 );
    break;
  case EM_GETINVSZ:
    SendComEM( self->comps.IC, EM_GETINVSZ, (int *)var1, 0 );
    break;
  case EM_INVEJECT:
    SendComEM( self->comps.IC, EM_INVEJECT, 0, 0 );
    break;
  case EM_INVGDRAW:
     SendComEM( self->comps.IC, EM_INVGDRAW, (BOOL *)var1, 0 );
    break;
  case EM_INVSDRAW:
     SendComEM( self->comps.IC, EM_INVSDRAW, var1, 0 );
    break;
  case EM_INVTDRAW:
     SendComEM( self->comps.IC, EM_INVTDRAW, 0, 0 );
    break;
  }
}