// DirectionGranularityStrategy strategy on rotated text should revert to the // same behavior as CharacterGranularityStrategy TEST_F(GranularityStrategyTest, DirectionRotate) { RefPtrWillBeRawPtr<Text> text = setupRotate("Foo Bar Baz,"); // "Foo B^a|>r Baz," (^ means base, | means extent, , < means start, and > means end). selection().setSelection(VisibleSelection(Position(text, 5), Position(text, 6))); EXPECT_EQ_SELECTED_TEXT("a"); IntPoint p = m_letterPos[9]; // Need to move by one pixel, otherwise this point is not evaluated // to the same line as the text by hit testing. p.move(1, 0); // "Foo B^ar B|>az," selection().moveRangeSelectionExtent(p); EXPECT_EQ_SELECTED_TEXT("ar B"); p = m_letterPos[1]; p.move(1, 0); // "F<|oo B^ar Baz," selection().moveRangeSelectionExtent(p); EXPECT_EQ_SELECTED_TEXT("oo B"); }
//-------------------------------------------------------------- // Name: updateEnemy() // Class: GeneralCombatWithRangedWeapon // // Description: Sets our _currentEnemy // // Parameters: None // // Returns: None //-------------------------------------------------------------- void GeneralCombatWithRangedWeapon::updateEnemy() { Entity *currentEnemy = _self->enemyManager->GetCurrentEnemy(); if ( !currentEnemy ) { _self->enemyManager->FindHighestHateEnemy(); currentEnemy = _self->enemyManager->GetCurrentEnemy(); if ( !currentEnemy ) { SetFailureReason( "GeneralCombatWithRangedWeapon::updateEnemy -- No Enemy" ); transitionToState( GC_WRW_FAILED ); } } _currentEnemy = currentEnemy; _self->SetHeadWatchTarget( _currentEnemy ); setupRotate(); }
VOID SetupMatrices() { // 旋转 D3DXMATRIXA16 matWorld; D3DXMatrixIdentity( &matWorld ); //根据x轴和y轴移动距离旋转 setupRotate(&matWorld,D3DXToRadian(g_fSpinX),D3DXToRadian(g_fSpinY),0.0f); g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld ); // 摄像机的位置 D3DXVECTOR3 vEyePt( 0.0f, 3.0f,-5.0f ); D3DXVECTOR3 vLookatPt( 0.0f, 0.0f, 0.0f ); D3DXVECTOR3 vUpVec( 0.0f, 1.0f, 0.0f ); D3DXMATRIXA16 matView; D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec ); g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView ); // 设置视锥体大小 D3DXMATRIXA16 matProj; D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.0f, 1.0f, 100.0f ); g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj ); }
//-------------------------------------------------------------- // Name: updateEnemy() // Class: CorridorCombatWithRangedWeapon // // Description: Sets our _currentEnemy // // Parameters: None // // Returns: None //-------------------------------------------------------------- void CorridorCombatWithRangedWeapon::updateEnemy() { if ( level.time < _enemyUpdateTime ) return; Entity *currentEnemy = _self->enemyManager->GetCurrentEnemy(); if ( !currentEnemy ) { _self->enemyManager->FindHighestHateEnemy(); currentEnemy = _self->enemyManager->GetCurrentEnemy(); if ( !currentEnemy ) { SetFailureReason( "CorridorCombatWithRangedWeapon::updateEnemy -- No Enemy" ); transitionToState( CORRIDORCOMBAT_WRW_FAILED ); } } _currentEnemy = currentEnemy; _enemyUpdateTime = level.time + G_Random() + 3.0f; setupRotate(); }