Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Nov 5, 2014, 4:04:51 PM (11 years ago)
Author:
aejonas
Message:

new way to display the healthbar on the screen (in a similar way like the existing ship marker)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/hudHS14/src/modules/overlays/hud/HUDEnemyHealthBar.cc

    r9667 r10110  
    3131#include "core/config/ConfigValueIncludes.h"
    3232#include "worldentities/pawns/Pawn.h"
     33#include "graphics/Camera.h"
    3334
    3435namespace orxonox
     
    5758        this->updateTarget();
    5859
     60
     61
     62
     63/*
     64        //--------------------------------------------------------------------------
     65        //first try to place a healthbar under the enemy ship
     66        //getting all the parameters (direction, position, angle) to place the health bar on the screen
     67
     68        Camera* camera = this->owner_->getCamera();
     69
     70        //position and orientation relative to the root space
     71        Vector3 cameraPosition = camera->getWorldPosition();
     72        Quaternion cameraOrientation = camera->getWorldOrientation();
     73
     74        Vector3 cameraDirection = camera->FRONT;
     75        Vector3 cameraOrthonormal = camera->UP;
     76
     77        //get target
     78        //if there is one get it's position (relative to the root space(
     79        WorldEntity* target = this->owner_->getTarget();
     80
     81        if(target != NULL){
     82        Vector3 targetPosition = target->getWorldPosition();
     83
     84
     85        //try 1
     86        Vector2 screenCoordinates = get2DViewcoordinates(cameraPosition, cameraOrientation * WorldEntity::FRONT, cameraOrientation * WorldEntity::UP, targetPosition);
     87
     88        orxout() << screenCoordinates.x << endl;
     89
     90        //shift coordinates because the screen has it's root in the upper left corner (0,0) but get2Dviewcoordiantes return values between -0.5 and 0.5
     91        screenCoordinates.x += 0.5;
     92        screenCoordinates.y += 0.5;
     93        orxout() << screenCoordinates.x << endl;
     94
     95        this->setPosition(screenCoordinates);
     96
     97        this->setTextOffset(screenCoordinates);
     98
     99
     100
     101
     102
     103        }
     104
     105        //--------------------------------------------------------------------------
     106*/
     107
     108
    59109        SUPER(HUDEnemyHealthBar, tick, dt);
    60110    }
     
    71121                target = target->getParent();
    72122            pawn = orxonox_cast<Pawn*>(target);
     123
     124
     125
     126            /*Vector3 tempPosition = target->getWorldPosition();
     127            Vector2 tempPos2D = Vector2(tempPosition.x, tempPosition.y);
     128                     this->pickPoint_(tempPos2D);
     129                     this->position_(tempPos2D);*/
     130
     131
    73132            // Don't show the HealthBar if the pawn is invisible
    74133            if (pawn && !pawn->isVisible())
    75134                pawn = NULL;
    76135        }
     136
    77137        // Set the pawn as owner of the HealthBar
    78138        this->setHealthBarOwner(pawn);
Note: See TracChangeset for help on using the changeset viewer.