[1] 質問文
[1.1] std::vectorを使用してクラスを動的に確保することと、確保したクラスを引数にしないで別のクラスの関数内で使用(うまく言えないのでやりたいコードを書きます。)。
[1.2] std::vector<Player>
---main.cpp---
#include "class.h"
using namespace std;
char key[256];
int RefreshTime;
int input;
vector<Player> player[1];
BG bg(320, 10, 0);
int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lPc, int nC){
ChangeWindowMode(TRUE);
if(DxLib_Init() == -1)return(-1);
SetDrawScreen(DX_SCREEN_BACK);
//初期化などの処理を入れる
SetDrawMode(DX_DRAWMODE_BILINEAR);
Img_Ini();
while(ProcessMessage() == 0&&GetHitKeyStateAll(key) == 0){
RefreshTime = GetNowCount(); //今の時間を取得
ClsDrawScreen(); //裏画面のデータを全て削除
//実際の処理を入れる(初期化などを除く
bg.Center();
player.resize(256);
ScreenFlip(); //裏画面データを表画面へ反映
while(GetNowCount() - RefreshTime < 17); //1周の処理が17ミリ秒になるまで待つ
}
DxLib_End();
return (0);
}
---class.cpp---
~中略~
void BG::Center()const
{
SetDrawArea(x-10, 0, x+10, 480);
DrawBox(x-10,0,x+10,480,Cr1,TRUE);
DrawBox(320-8,480-player.life/player.Get_lifemax()*480,320-2,480,Cr2,TRUE);
}
BGクラスの関数内でplayerクラスの関数が使いたいんです。どうにもうまく言えないのですが。[1.3] vectorの使い方がいまいちわからない。
1>main.cpp
1>c:\myvc\esth\main.cpp(30) : error C2228: '.resize' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'std::vector<_Ty> [1]' です。
1> with
1> [
1> _Ty=Player
1> ]
[1.4] vectorを使用すること。また、classを型に指定すること。
[2] 環境
[2.1] Windows VISTA
[2.2] VC++ 2008EE
[3] その他
C言語、C++ともによくわかってないです。一応龍神録の館を理解するくらいならできるとは思うのですが……
ライブラリはDxLibを使用しています。