⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamecamera.cpp

📁 介绍c++游戏编程
💻 CPP
字号:


#include "GameCamera.h"
#include "Stream.h"
#include "AddressTranslator.h"
#include <iostream>


GameCamera::GameCamera() 
{
    SetDefaults();
}

GameCamera::GameCamera(const std::string & name) : GameEntity(name)
{
    SetDefaults();
}


void GameCamera::SetDefaults()
{
    m_FOV = 90;
    m_nearPlane = 5;
    m_farPlane  = 100;
    m_pTarget   = NULL;
}


bool GameCamera::Write(IStream & stream) const
{
    bool bSuccess = GameEntity::Write(stream);
    bSuccess &= WriteFloat(stream, m_FOV);
    bSuccess &= WriteFloat(stream, m_nearPlane);
    bSuccess &= WriteFloat(stream, m_farPlane);
    bSuccess &= WriteInt(stream, (int)(m_pTarget));
    return bSuccess;
}


bool GameCamera::Read(IStream & stream)
{
    bool bSuccess = GameEntity::Read(stream);
    m_FOV = ReadFloat(stream);
    m_nearPlane = ReadFloat(stream);
    m_farPlane  = ReadFloat(stream);
    m_pTarget = (GameEntity *)ReadInt(stream);
    return bSuccess;
}


void GameCamera::Fixup()
{
    GameEntity::Fixup();
    m_pTarget = (GameEntity *)AddressTranslator::TranslateAddress(m_pTarget);
}


const std::string GameCamera::GetClass() const
{
    return std::string("GameCamera");
}


void GameCamera::Print(int indent) const
{
    GameEntity::Print(indent);
    for (int col=0; col<indent; ++col)
        std::cout << "  ";

    std::cout << "    FOV: " << m_FOV << " Near: " << m_nearPlane << 
                 " Far: " << m_farPlane;
    std::cout << " Target: ";
    if (m_pTarget != NULL)
        std::cout << m_pTarget->GetName();
    else
        std::cout << "NULL";

    std::cout << std::endl;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -