Jump to content

Lostghbear

Members
  • Posts

    13
  • Joined

  • Last visited

Posts posted by Lostghbear

  1. is it from the workshop?

    Yeah, it is =)

     

    The "button" needs to be a cylinder so that it looks like a button.

     

    Why you dony like square buttons? In Serious Sam First and Second encounter we had squared buttons and they was great!

     

    Thanks for feedback =D

  2. When I started the engine I thought I should combine the Lua and C++. For example scripts to do on Lua ,game logic and mechanics on C++. But everything you can write in C++, you can also write and Lua and I thought - does it make sense to combine Lua and C++? Are there any advantages in the combination of two languages?

  3. Hello!

    I have problems with creating spectator camera with C++ using this tutorial

     

    sphere moving faster then camera, but this is not main problem.

    I dont understand why, but sphere have the inertia. I mean, when i stop pressing 'w' sphere dont stop movement, just slow down a bit. And also she pushes off from the wall and flies.

     

    I cant understand why it hapends! Please, give me advice. There is my code

     

    #include "App.h"

    using namespace Leadwerks;

    App::App() : window(NULL), context(NULL), world(NULL), camera(NULL) {}

    App::~App() { delete world; delete window; }

    Vec3 camRotation;

    Vec2 centerMouse;

    Vec2 mouseDef;

    Vec3 camMovement;

    Vec3 Temp;

    float MouseSens;

    float strafeM;

    float moveM;

    float forceM;

    bool cameraMode;

    bool App::Start()

    {

    // Создание основных коммпонентов

    window = Window::Create("Learning", 0, 0, 1920, 1080, Window::Titlebar);

    context = Context::Create(window);

    world = World::Create();

    camera = Camera::Create();

    camera->SetPosition(0, 2, 5);

    light = DirectionalLight::Create();

     

    // Определение переменных

    MouseSens = 10;

    strafeM = 0.4;

    moveM = 0.6;

    forceM = 1000;

    centerMouse = Vec2(context->GetWidth() / 2, context->GetHeight() / 2);

     

    // Создание спектатора

     

    spectator = Model::Sphere(8);

    spectator->SetPosition(Vec3(0, 8, 0));

    spectator->SetScale(Vec3(5, 5, 5));

    Shape* spectatorShape = Shape::Sphere(0, 0, 0, 0, 0, 0, 1, 1, 1);

    spectatorShape = Shape::Sphere();

    spectator->SetShape(spectatorShape);

    spectator->SetMass(1);

    spectator->SetGravityMode(false);

    spectatorShape->Release();

    cameraMode = false;

    // Загрузка карты

    Map::Load("maps/test.map");

    window->HideMouse();

     

    return true;

    }

    bool App::Loop()

    {

    Time::Update();

    world->Update();

    world->Render();

    context->Sync(false);

    // Возможность закрыть окно

    if (window->Closed() || window->KeyHit(Key::Escape))

    return false;

    // Переключение между режимами камеры

    if (window->KeyHit(Key::P))

    cameraMode = !cameraMode;

     

    // Удерживание указателя мыши по центру

    Vec3 CMP = window->GetMousePosition();

    mouseDef.x = CMP.x - centerMouse.x;

    mouseDef.y = CMP.y - centerMouse.y;

    window->SetMousePosition(centerMouse.x, centerMouse.y);

    // Вращение камеры

    camRotation.x += mouseDef.y / MouseSens;

    camRotation.y += mouseDef.x / MouseSens;

    camera->SetRotation(camRotation);

    //Движение камеры

    camMovement.x = (window->KeyDown(Key::D) - window->KeyDown(Key::A)) * Time::GetSpeed() * strafeM;

    camMovement.y = (window->KeyDown(Key::E) - window->KeyDown(Key::Q)) * Time::GetSpeed() * strafeM;

    camMovement.z = (window->KeyDown(Key::W) - window->KeyDown(Key::S)) * Time::GetSpeed() * moveM;

     

    if (cameraMode)

    {

     

    camera->SetPosition(spectator->GetPosition());

    Vec3 tForce = Transform::Vector(camMovement, camera, 0);

    spectator->AddForce(camMovement * forceM);

    }

    else

    {

    camera->Move(camMovement);

    };

    return true;

    }

×
×
  • Create New...