void CEnemyDemon::Render(void) { CSGD_TextureManager *pTM = CSGD_TextureManager::GetInstance(); if(GetHP() > 0) { if (GetXFlip() == 1) pTM->Draw(GetImageID(),GetCollisionRect().left, GetCollisionRect().top, GetXFlip() * 1.5f,1.5f,&rEnemyRect,GetWidth() / 2, GetHeight() /2,0.0f,D3DCOLOR_XRGB(255,255,255)); else if (GetXFlip() == -1) pTM->Draw(GetImageID(),GetCollisionRect().right, GetCollisionRect().top, GetXFlip() * 1.5f,1.5f,&rEnemyRect,GetWidth() / 2, GetHeight() /2,0.0f,D3DCOLOR_XRGB(255,255,255)); // pTM->Draw(GetImageID(),GetPosX() - GetWidth()/4, GetPosY() - GetHeight()/4, GetXFlip() * 1.5f,1.5f,&rEnemyRect,GetWidth() / 2, GetHeight() /2,0.0f,D3DCOLOR_XRGB(255,255,255)); } }
void CEnemyBusiness::Render(void) { CSGD_TextureManager *pTM = CSGD_TextureManager::GetInstance(); CSGD_Direct3D *p3D = CSGD_Direct3D::GetInstance(); CSGD_MessageSystem *pMS = CSGD_MessageSystem::GetInstance(); RECT r = GetCollisionRect(); if(GetHP() > 0) { if (GetXFlip() == 1) pTM->Draw(GetImageID(),GetCollisionRect().left + m_nOffset, GetCollisionRect().top, GetXFlip() * 1.5f,1.5f,&rEnemyRect,GetWidth() / 2, GetHeight() /2,0.0f,D3DCOLOR_XRGB(255,255,255)); else if (GetXFlip() == -1) pTM->Draw(GetImageID(),GetCollisionRect().right - m_nOffset, GetCollisionRect().top, GetXFlip() * 1.5f,1.5f,&rEnemyRect,GetWidth() / 2, GetHeight() /2,0.0f,D3DCOLOR_XRGB(255,255,255)); } }
bool g2Controller::InController(int x, int y) { // Get this controller's collision rectangle int Width, Height; GetCollisionRect(&Width, &Height); // Simple rectangle collision check if(x > 0 && x <= Width && y > 0 && y <= Height) return true; else return false; }
//////////////////////////////////////// // Collision Methods //////////////////////////////////////// bool Entity::CheckCollision(Entity* other) { if (GetCollisionRect().Intersects(other->GetCollisionRect()) ) { CollideWith(other); other->CollideWith(this); return true; } return false; }
void CPowerupRapidFire::Update(float fElapsedTime) { CPlayerCharacter *pPC = CPlayerCharacter::GetInstance(); CSGD_MessageSystem *pMS = CSGD_MessageSystem::GetInstance(); DWORD timer = GetTickCount(); rCollisionRect.top = GetPosY(); rCollisionRect.left = GetPosX(); rCollisionRect.bottom = GetPosY() + GetHeight(); rCollisionRect.right = GetPosX() + GetWidth(); if (timer % 600 <= 100) { rPowerupRect.left = 8; rPowerupRect.right = 30; } else if (timer % 600 > 100 && timer % 600 <= 200) { rPowerupRect.left = 36; rPowerupRect.right = 58; } else if (timer % 600 > 200 && timer % 600 <= 300) { rPowerupRect.left = 66; rPowerupRect.right = 88; } else if (timer % 600 > 300 && timer % 600 <= 400) { rPowerupRect.left = 98; rPowerupRect.right = 120; } else if (timer % 600 > 400 && timer % 600 <= 500) { rPowerupRect.left = 128; rPowerupRect.right = 150; } else if (timer % 600 > 500) { rPowerupRect.left = 156; rPowerupRect.right = 178; } RECT rCollide; if (IntersectRect(&rCollide,&GetCollisionRect(),&pPC->GetCollisionRect())) { pMS->SendMsg(new CCollisionMessage(CPlayerCharacter::GetInstance(),this)); pMS->SendMsg(new CDestroyMessage(this)); } }
bool CBoulder::CheckCollision(IBaseInterface* pObject) { RECT rectCollisionResult = { 0, 0, 0, 0 }; CBaseObject* pBaseObject = (CBaseObject*)pObject; if(IntersectRect(&rectCollisionResult, &GetCollisionRect().GetWindowsRECT(), &pBaseObject->GetCollisionRect().GetWindowsRECT())) { if(pObject->GetType() == TYPE_CHAR_ENEMY) // ((CEnemy*)pObject)->SufferDamage(CPlayer::GetInstance()->GetAttackDamage()); //if(pObject->GetType() != TYPE_CHAR_PLAYER && pObject->GetType() != TYPE_WEAPON_ARROW) //{ // CMessageSystem::GetInstance()->SendMsg(new CDestroyObjectMessage(this)); //} return true; } return false; }
void CPowerupRapidFire::Render(void) { CSGD_TextureManager *pTM = CSGD_TextureManager::GetInstance(); pTM->Draw(GetImageID(),GetCollisionRect().left,GetCollisionRect().top,1.5f,1.5f,&rPowerupRect,GetWidth() / 2, GetHeight() /2,0,D3DCOLOR_XRGB(255,255,255)); }
void CBulletHook::Render(void) { static RECT r = {525,728, 553, 769}; CSGD_TextureManager *pTM = CSGD_TextureManager::GetInstance(); pTM->Draw(GetImageID(),GetCollisionRect().left,GetCollisionRect().top + 32,1.5f,1.5f,&r,GetWidth() / 2, GetHeight() /2,GetRotation(),D3DCOLOR_XRGB(255,255,255)); }