Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.cc @ 12341

Last change on this file since 12341 was 12341, checked in by ahuwyler, 5 years ago

Wall is ready

File size: 3.0 KB
Line 
1#include "OrxoBloxWall.h"
2#include "core/CoreIncludes.h"
3#include "core/XMLPort.h"
4
5#include "OrxoBlox.h"
6#include "OrxoBloxStones.h"
7#include "OrxoBloxCenterpoint.h"
8#include "util/Math.h"
9
10namespace orxonox
11{
12    RegisterClass(OrxoBloxWall);
13    /**
14    @brief
15        Constructor. Registers and initializes the object.
16    */
17    OrxoBloxWall::OrxoBloxWall(Context* context) : StaticEntity(context)
18    {
19        RegisterObject(OrxoBloxWall);
20
21        this->num_Stones_ = 10;
22        this->size_ = 9.0f;
23        this->delay_ = false;
24
25        this->orxoblox_ = this->getOrxoBlox();
26        this->center_ = this->orxoblox_->getCenterpoint();
27        this->createWall();
28    }
29
30
31    void OrxoBloxWall::createWall(void){
32        for (unsigned int i=0; i<this->num_Stones_;++i){
33            unsigned int j=1 + static_cast<unsigned int>(rnd(2.0f)); //<! random number between 0 and 2;
34            if(j<2){
35                this->size_ = 9.0f;
36                OrxoBloxStones* stone = new OrxoBloxStones(this->getContext());
37                this->TotalStones_.push_back(stone);
38                this->attach(stone);
39                float x_=(this->center_->getFieldDimension()).x;
40                float y_=(this->center_->getFieldDimension()).y;
41                stone->setPosition(size_*i -x_/2 +4.5f, -3.5f, -y_/2 + 6.5f);
42
43
44
45                if(this->orxoblox_ != nullptr)
46                {
47                    stone->setGame(this->orxoblox_);
48                    if(this->orxoblox_->getCenterpoint() != nullptr)
49                        stone->addTemplate(this->orxoblox_->getCenterpoint()->getStoneTemplate());
50                    else
51                        orxout()<< "tetris_->getCenterpoint == nullptr in TetrisBrick.cc"<< endl;
52                }
53                else
54                    orxout()<< "tetris_ == nullptr in TetrisBrick.cc"<< endl;
55            }
56
57        }
58
59
60
61        // OrxoBloxStones* stone = new OrxoBloxStones(this->getContext());
62        // if(this->orxoblox_ != nullptr)
63        //     {
64        //         stone->setGame(this->orxoblox_);
65        //         if(this->orxoblox_->getCenterpoint() != nullptr)
66        //             stone->addTemplate(this->orxoblox_->getCenterpoint()->getStoneTemplate());
67        //         else
68        //             orxout()<< "orxoblox_->getCenterpoint == nullptr in TetrisBrick.cc"<< endl;
69        //     }
70        //     else
71        //         orxout()<< "orxoblox_ == nullptr in TetrisBrick.cc"<< endl;
72    }
73
74    OrxoBloxStones* OrxoBloxWall::getStone(unsigned int i)
75    {
76        if(i < this->TotalStones_.size())
77            return this->TotalStones_[i];
78        else return nullptr;
79    }
80
81    OrxoBlox* OrxoBloxWall::getOrxoBlox()
82    {
83        if (this->getGametype() != nullptr && this->getGametype()->isA(Class(OrxoBlox)))
84        {
85            OrxoBlox* orxobloxGametype = orxonox_cast<OrxoBlox*>(this->getGametype());
86            return orxobloxGametype;
87        }
88        else orxout()<<"There is no Gametype for OrxoBlox! ask Anna"<< endl;
89        return nullptr;
90    }
91}
Note: See TracBrowser for help on using the repository browser.