完成代码如下
#pragma once
#include"comheadifle.h"
#include"Object.h"
#include"Screen.h"
#include<mmsystem.h>
#pragma comment(lib,"WINMM.LIB")
namespace CONTAINER
{
class Container
{
private:
SCREEN::Screen screen;
OBJECT::Object character;
OBJECT::Object eneny;
std::vector<IMAGE>image;
mutable int stage;
// stage=0,初始化面
//stage=1,选择界面(进入)
//stage=2,选择界面(保存)
//stage=3,第1关
//stage=4,第2关
//stage=5,商店画面
//stage=6,结束画面
public:
Container();
virtual ~Container();
void show()const;
void associated();
void updatewithoutinput();
void updatewithinput();
void status_change();
};
}
#include "Container.h"
namespace CONTAINER
{
Container::Container() :screen(900, 670), character(0, 0), eneny(0, 0)
{
stage = 0;
mciSendString(_T("open .\\resource\\bkmusic.mp3 alias bkmusic"), NULL, 0, NULL);
mciSendString(_T("play bkmusic repeat"), NULL, 0, NULL);
image.reserve(58);
IMAGE background;
loadimage(&background, _T(".\\resource\\background.jpg"));
image.push_back(background);
IMAGE endbackground, level_1, shop, energy, oxygen;
loadimage(&endbackground, _T(".\\resource\\endbackground.jpg"));
loadimage(&level_1, _T(".\\resource\\level_1.jpg"));
loadimage(&shop, _T(".\\resource\\shop.jpg"));
loadimage(&energy, _T(".\\resource\\energy.jpg"));
loadimage(&oxygen, _T(".\\resource\\oxygen.jpg"));
image.push_back(endbackground);
image.push_back(level_1);
image.push_back(shop);
image.push_back(energy);
image.push_back(oxygen);
IMAGE bwbomb_1, bomb_1, bwbomb_boom, bomb_boom, digdownperson_1, digdownperson_2,
digleftperson_1, digleftperson_2, digrightperson_1, digrightperson_2,
ener_oxy1, ener_oxy2, person_0, person_00, person_1, person_2, shoes_1,
shoes_2, monsterrun_00, monsterrun_0, coal_0, coal_1, coal_2, coal_3,
coal_4, coal_5, Copper_0, Copper_1, Copper_2, Copper_3, Copper_4, Copper_5,
Copper_6, silver_0, silver_1, silver_2, silver_3, silver_4, silver_5, stone_0,
stone_1, stone_2, stone_3, stone_4, stone_5, stone_6, stone_7, stone_99;
loadimage(&bwbomb_1, _T(".\\resource\\bwbomb_1.jpg"));
loadimage(&bomb_1, _T(".\\resource\\bomb_1.jpg"));
loadimage(&bwbomb_boom, _T(".\\resource\\bwbomb_boom.jpg"));
loadimage(&bomb_boom, _T(".\\resource\\bomb_boom.jpg"));
loadimage(&digdownperson_1, _T(".\\resource\\digdownperson_1.jpg"));
loadimage(&digdownperson_2, _T(".\\resource\\digdownperson_2.jpg"));
loadimage(&digleftperson_1, _T(".\\resource\\digleftperson_1.jpg"));
loadimage(&digleftperson_2, _T(".\\resource\\digleftperson_2.jpg"));
loadimage(&digrightperson_1, _T(".\\resource\\digrightperson_1.jpg"));
loadimage(&digrightperson_2, _T(".\\resource\\digrightperson_2.jpg"));
loadimage(&ener_oxy1, _T(".\\resource\\ener_oxy1.jpg"));
loadimage(&ener_oxy2, _T(".\\resource\\ener_oxy2.jpg"));
loadimage(&person_0, _T(".\\resource\\person_0.jpg"));
loadimage(&person_00, _T(".\\resource\\person_00,.jpg"));
loadimage(&person_1, _T(".\\resource\\person_1.jpg"));
loadimage(&person_2, _T(".\\resource\\person_2.jpg"));
loadimage(&shoes_1, _T(".\\resource\\shoes_1.jpg"));
loadimage(&shoes_2, _T(".\\resource\\shoes_2.jpg"));
loadimage(&monsterrun_00, _T(".\\resource\\monsterrun_00.jpg"));
loadimage(&monsterrun_0, _T(".\\resource\\monsterrun_0.jpg"));
loadimage(&coal_0, _T(".\\resource\\coal_0.jpg"));
loadimage(&coal_1, _T(".\\resource\\coal_1.jpg"));
loadimage(&coal_2, _T(".\\resource\\coal_2.jpg"));
loadimage(&coal_3, _T(".\\resource\\coal_3.jpg"));
loadimage(&coal_4, _T(".\\resource\\coal_4.jpg"));
loadimage(&coal_5, _T(".\\resource\\coal_5.jpg"));
loadimage(&Copper_0, _T(".\\resource\\Copper_0.jpg"));
loadimage(&Copper_1, _T(".\\resource\\Copper_1.jpg"));
loadimage(&Copper_2, _T(".\\resource\\Copper_2.jpg"));
loadimage(&Copper_3, _T(".\\resource\\Copper_3.jpg"));
loadimage(&Copper_4, _T(".\\resource\\Copper_4.jpg"));
loadimage(&Copper_5, _T(".\\resource\\Copper_5.jpg"));
loadimage(&Copper_6, _T(".\\resource\\Copper_6.jpg"));
loadimage(&silver_0, _T(".\\resource\\silver_0.jpg"));
loadimage(&silver_1, _T(".\\resource\\silver_1.jpg"));
loadimage(&silver_2, _T(".\\resource\\silver_2.jpg"));
loadimage(&silver_3, _T(".\\resource\\silver_3.jpg"));
loadimage(&silver_4, _T(".\\resource\\silver_4.jpg"));
loadimage(&silver_5, _T(".\\resource\\silver_5.jpg"));
loadimage(&stone_0, _T(".\\resource\\stone_0.jpg"));
loadimage(&stone_1, _T(".\\resource\\stone_1.jpg"));
loadimage(&stone_2, _T(".\\resource\\stone_2.jpg"));
loadimage(&stone_3, _T(".\\resource\\stone_3.jpg"));
loadimage(&stone_4, _T(".\\resource\\stone_4.jpg"));
loadimage(&stone_5, _T(".\\resource\\stone_5.jpg"));
loadimage(&stone_6, _T(".\\resource\\stone_6.jpg"));
loadimage(&stone_7, _T(".\\resource\\stone_7.jpg"));
loadimage(&stone_99, _T(".\\resource\\stone_99.jpg"));
image.push_back(bwbomb_1);
image.push_back(bomb_1);
image.push_back(bwbomb_boom);
image.push_back(bomb_boom);
image.push_back(digdownperson_1);
image.push_back(digdownperson_2);
image.push_back(digleftperson_1);
image.push_back(digleftperson_2);
image.push_back(digrightperson_1);
image.push_back(digrightperson_2);
image.push_back(ener_oxy1);
image.push_back(ener_oxy2);
image.push_back(person_0);
image.push_back(person_00);
image.push_back(person_1);
image.push_back(person_2);
image.push_back(shoes_1);
image.push_back(shoes_2);
image.push_back(monsterrun_0);
image.push_back(monsterrun_00);
image.push_back(coal_0);
image.push_back(coal_1);
image.push_back(coal_2);
image.push_back(coal_3);
image.push_back(coal_4);
image.push_back(coal_5);
image.push_back(Copper_0);
image.push_back(Copper_1);
image.push_back(Copper_2);
image.push_back(Copper_3);
image.push_back(Copper_4);
image.push_back(Copper_5);
image.push_back(Copper_6);
image.push_back(silver_0);
image.push_back(silver_1);
image.push_back(silver_2);
image.push_back(silver_3);
image.push_back(silver_4);
image.push_back(silver_5);
image.push_back(stone_0);
image.push_back(stone_1);
image.push_back(stone_2);
image.push_back(stone_3);
image.push_back(stone_4);
image.push_back(stone_5);
image.push_back(stone_6);
image.push_back(stone_7);
image.push_back(stone_99);
}
Container::~Container()
{
screen.~Screen();
}
void Container::associated()
{
}
void Container::updatewithoutinput()
{
}
void Container::updatewithinput()
{
}
void Container::status_change()
{
}
void Container::show()const
{
// stage=0,初始化面
//stage=1,选择界面(进入)
//stage=2,选择界面(保存)
//stage=3,第1关
//stage=4,第2关
//stage=5,商店画面
//stage=6,结束画面
if (stage == 0)
{
putimage(0, 0, &(*image.begin()));
if (_kbhit())
{
stage = 1;
}
}
else if (stage == 1)
{
cleardevice();
setbkmode(TRANSPARENT);
setbkcolor(BLACK);
settextcolor(RGB(255, 255, 255));
settextstyle(50, 0, _T("黑体"));
outtextxy(screen.R_width() * 0.35, screen.R_high() * 0.3, _T("1.新游戏"));
outtextxy(screen.R_width() * 0.35, screen.R_high() * 0.4, _T("2.读取游戏档案"));
outtextxy(screen.R_width() * 0.35, screen.R_high() * 0.5, _T("3.EXIT"));
Sleep(10);
char input;
if (_kbhit())
{
input = _getch();
switch (input)
{
case '1':
stage = 3;
break;
case '2':
break;
case '3':
exit(0);
break;
}
}
}
else if (stage == 2)
{
cleardevice();
setbkmode(TRANSPARENT);
setbkcolor(BLACK);
settextcolor(RGB(255, 255, 255));
settextstyle(50, 0, _T("黑体"));
outtextxy(screen.R_width() * 0.35, screen.R_high() * 0.3, _T("1.保存游戏"));
outtextxy(screen.R_width() * 0.35, screen.R_high() * 0.4, _T("2.继续游戏"));
outtextxy(screen.R_width() * 0.35, screen.R_high() * 0.5, _T("3.EXIT"));
Sleep(10);
}
else if (stage == 3)
{
putimage(0, 0, &(*(image.begin() + 2)));
}
else if (stage == 4)
{
putimage(0, 0, &(*(image.begin() + 2)));
}
else if (stage == 5)
{
putimage(0, 0, &(*(image.begin() + 3)));
}
else if (stage == 6)
{
putimage(0, 0, &(*(image.begin() + 1)));
}
FlushBatchDraw();
return;
}
}
#include "Container.h"
int main()
{
CONTAINER::Container one;
while (1)
{
one.show();
one.associated();
one.updatewithoutinput();
one.status_change();
one.updatewithinput();
}
one.~Container();
}