Hallo,
ich habe mal wieder ein Problem, undzwar möchte ich einen Vektor einer Klasse übernehmen, für
eine Collisions Abfrage, erstmal der Code:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
CObject.cpp:
/////////////////////////////
//#Values that can returned//
/////////////////////////////
//# 1 = Collision on Right Side
//## 2 = Collision on Left Side
//### 3 = Collision on Bottom Side
//#### 4 = Collision on Top Side
if(Material == "Wood" && ID == 1)
{
//Get List from Level Class and save it in this List
Collision_Vector = Level.GetVectorByID(1);
}
//...
for(vector<CObject>::iterator i = Collision_Vector.begin(); i != Collision_Vector.end(); i++)
{
cout << "Banane!" << endl;
if(IsCollisionOnRightSide(i->GetSprite()) == true)
{
return 1;
}
else if(IsCollisionOnLeftSide(i->GetSprite()) == true)
{
return 2;
}
else if(IsCollisionOnBottomSide(i->GetSprite()) == true)
{
return 3;
}
else if(IsCollisionOnTopSide(i->GetSprite()) == true)
{
return 4;
}
else
{
//#If we dont have a Collision with Anything return ZERO
return 0;
}
}
|
Banane war nur eine test ausgabe um herrauszufinden ob die Funktion überhaupt in
den Block rein kommt, was leider nicht der Fall ist da der Vector laut size() leer ist...
Die Funktion GetVectorByID
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
CLevel.hpp:
//Get a Vector by ID and return it
vector<CObject> &GetVectorByID(int ID);
//...
CLevel.cpp:
vector<CObject> &CLevel::GetVectorByID(int ID)
{
if(ID == 1)
{
return Vector_WoodBlock;
}
//...
}
|
Jetzt frag ich mich schon eine Weile warum der Vektor leer ist... denn gefüllt habe ich ihn ja hier:
|
C-/C++-Quelltext
|
1
2
3
4
|
CLevel.cpp:
//Push the object back
Vector_WoodBlock.push_back(ObjectList.GetObjectByID(1));
|
Vielen dank schonmal im Voraus