Hallo,
Momenteel ben ik bezig met het onwikkelen van een 3d spel. Alles verliep prima totdat er een gedeelte geprogrammeerd moest worden dat de 'tegenstander' moet verdwijnen als een 'missile' hem raakt. Om dit te laten werken moet ik de positie van de tegenstander en de missile vergelijken.
Het probleem is: dat de vector van de tegenstander en de vector van de missile zijn gedeclareerd en worden bijgehouden in 2 verschillende classen. Ik heb nu geprobeerd om met behulp van een functie de vector door te sturen. Het lezen lukt wel, maar zodra ik het in een 3dvector wil zetten krijg ik het volgende bericht: error
Oponents.cpp:
Ammo.h
Ammo.ccp
De onderstaande code werkt wel. Maar daar heb ik niets aan. Als ik deze floats in de vector probeer te zetten krijg ik hetzelfde resultaat.
Zou iemand mij uit de brand kunnen helpen door te vertellen hoe ik dit aan de praat krijg?
Mvr.
Momenteel ben ik bezig met het onwikkelen van een 3d spel. Alles verliep prima totdat er een gedeelte geprogrammeerd moest worden dat de 'tegenstander' moet verdwijnen als een 'missile' hem raakt. Om dit te laten werken moet ik de positie van de tegenstander en de missile vergelijken.
Het probleem is: dat de vector van de tegenstander en de vector van de missile zijn gedeclareerd en worden bijgehouden in 2 verschillende classen. Ik heb nu geprobeerd om met behulp van een functie de vector door te sturen. Het lezen lukt wel, maar zodra ik het in een 3dvector wil zetten krijg ik het volgende bericht: error
Oponents.cpp:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| void Oponents::updateFrames(int numberOfFrames, LPDIRECT3DDEVICE9 device) { for (int i = 0 ; i < numberOfFrames; i++) { //move the oponents if (oponX > 26.5f || oponX < -11 ) {direction = direction * (-1);} oponX += direction; } oponent->setPosition(D3DXVECTOR3(oponX,oponY,oponZ)); oponent->render(device); ammo->getPosition(oponX,oponY,oponZ); // <<------ } |
Ammo.h
C++:
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
| #pragma once #include <d3d9.h> #include <d3dx9tex.h> class Model; class InputManager; class Oponents; class Ammo { public: Ammo(); ~Ammo(); bool init(InputManager* input,LPDIRECT3DDEVICE9 device); void updateFrames(int numberOfFrames,LPDIRECT3DDEVICE9 device); void getPosition(float x, float y, float z); //<<----- int launched; float oponX; float oponY; float oponZ; private: Model* missile1; Model* missile2; Model* missile3; Model* missile4; Model* missileIcon1; Model* missileIcon2; Model* missileIcon3; D3DXVECTOR3 position1; D3DXVECTOR3 position2; D3DXVECTOR3 position3; D3DXVECTOR3 positionShip; D3DXVECTOR3 positionOpon; D3DXVECTOR3 positionTest; //<<----- InputManager* MyInput; Oponents* opon; }; |
Ammo.ccp
C++:
1
2
3
| void Ammo::getPosition(float x, float y, float z) { positionTest = D3DXVECTOR3(x,y,z); } |
De onderstaande code werkt wel. Maar daar heb ik niets aan. Als ik deze floats in de vector probeer te zetten krijg ik hetzelfde resultaat.
C++:
1
2
3
4
5
| void Ammo::getPosition(float x, float y, float z) { float posX = x; float posY = y; float posZ = z; } |
Zou iemand mij uit de brand kunnen helpen door te vertellen hoe ik dit aan de praat krijg?
Mvr.