Jump to content

MexSource

Members
  • Posts

    132
  • Joined

  • Last visited

Posts posted by MexSource

  1. I tried now:

     

    virtual void Collision(Entity* collidedEntity, const Vec3& position, const Vec3& normal, float speed);
    
    static void CollisionHook(Entity* entity0, Entity* entity1, float* position, float* normal, float speed);
    

     

    - in App.h

     

    and:

     

    void Collision(Entity* collidedEntity, const Vec3& position, const Vec3& normal, float speed){
    
    }
    void CollisionHook(Entity* entity0, Entity* entity1, float* position, float* normal, float speed){
    
    System::Print("Entity: " + entity0->GetKeyValue("name") + " collided with: " + entity1->GetKeyValue("name"));
    
    }
    

     

    - in App.cpp

     

    The error is:

     

    1>App.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual void __thiscall App::Collision(class Leadwerks::Entity *,class Leadwerks::Vec3 const &,class Leadwerks::Vec3 const &,float)" (?Collision@App@@UAEXPAVEntity@Leadwerks@@ABVVec3@3@1M@Z)".

     

     

    1>App.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: static void __cdecl App::CollisionHook(class Leadwerks::Entity *,class Leadwerks::Entity *,float *,float *,float)" (?CollisionHook@App@@SAXPAVEntity@Leadwerks@@0PAM1M@Z)".

     

    (it's german wink.png hope you can read it. it means 'external unresolved symbol...')

     

    i thougt i forgot to link any library but everything is set ok (or is some code wrong?)

     

    //Complete files:

     

    App.cpp:

     

    #include "App.h"
    using namespace Leadwerks;
    App::App() : window(NULL), context(NULL), world(NULL), camera(NULL) {}
    App::~App() { delete world; delete window; }
    Vec3 camerarotation;
    #if defined (PLATFORM_WINDOWS) || defined (PLATFORM_MACOS)
    bool freelookmode=true;
    #else
    bool freelookmode=false;
    #endif
    Pivot* player;
    float moveSpeed;
    float strafeSpeed;
    bool sprinting = false;
    float jumpAcc;
    bool setCrouch = false;
    bool isCrouching = false;
    float playerHeight;
    Vec3 playerMovement;
    float sprintSpeed = 1.4;
    float crouchSpeed = 0.6;
    int pause = 1;
    Vec3 mouseposition;
    float pausex;
    float pausey;
    void MapLoader(Entity* entity, Object* extra){
    ((App*)extra)->LoadMapEntity(entity);
    }
    Entity* trigger1;
    bool App::Start()
    {
    //Create a window
    window = Window::Create("White");
    
    //Create a context
    context = Context::Create(window);
    
    //Create a world
    world = World::Create();
    
    //Create a camera
    camera = Camera::Create();
    camera->Move(0,2,0);
    
    //Hide the mouse cursor
    window->HideMouse();
    
    std::string mapname = System::GetProperty("map","Maps/start.map");
    Map::Load(mapname, MapLoader, (Object*)this);
    
    //Move the mouse to the center of the screen
    window->SetMousePosition(context->GetWidth()/2,context->GetHeight()/2);
    player = Pivot::Create();
    player->SetPhysicsMode(Entity::CharacterPhysics);
    player->SetPosition(0,2,0);
    player->SetMass(1);
    
    playerHeight = 1.7;
    strafeSpeed = 35;
    moveSpeed = 35;
    jumpAcc = 100;
    pausex = 0;
    pausey = 0;
    mouseposition = window->GetMousePosition();
    trigger1->AddHook(Entity::CollisionHook, (void*)CollisionHook);
    return true;
    }
    void App::LoadMapEntity(Entity* e){
    if(e->GetKeyValue("name") == "trigger1"){
    
    trigger1 = e;
    
    }
    }
    void Collision(Entity* collidedEntity, const Vec3& position, const Vec3& normal, float speed){
    
    }
    void CollisionHook(Entity* entity0, Entity* entity1, float* position, float* normal, float speed){
    
    System::Print("Entity: " + entity0->GetKeyValue("name") + " collided with: " + entity1->GetKeyValue("name"));
    }
    bool App::Loop()
    {
    //Close the window to end the program
    if (window->Closed()) return false;
    
    //Press escape to end freelook mode
    if (window->KeyHit(Key::Escape))
    {
    
    exit(0);
    
    }
    .... Everything else has to do with character controllers, movement etc. so it's not really needed
    

     

    App.h:

     

    #pragma once
    #include "Leadwerks.h"
    using namespace Leadwerks;
    class App
    {
    public:
    Window* window;
    Context* context;
    World* world;
    Camera* camera;
    App();
    virtual ~App();
    void LoadMapEntity(Entity* e);
    virtual bool Start();
    virtual bool Loop();
    virtual void Collision(Entity* collidedEntity, const Vec3& position, const Vec3& normal, float speed);
    static void CollisionHook(Entity* entity0, Entity* entity1, float* position, float* normal, float speed);
    };
    

     

    - Mex

     

    //Edit:

     

    if I add 'App::' in front of both function in App.cpp then i got the error: (translated by google translator:) Access violation when reading at position. I think something with my rguments is wrong but what?

     

    :/

  2. //I'm writing here because i have 'no permission' for the Programming section :?

     

    Hello,

     

    I'm new to Leadwerks and i'm now trying to create triggers with C++

     

    I found many examples but either it's for C and in C++ not working or it's old or anything nothing has really worked for me :/

     

    So i'm asking is anyone able to give me a good example of a trigger (trigger enter and leave is important) or good ideas?

     

    Thanks,

    Mex :)

×
×
  • Create New...