generated from sigonasr2/CPlusPlusProjectTemplate
Demonstrate multiple dialog boxes
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
e9b1aee4f3
commit
e4082798c6
@ -144,14 +144,17 @@ public:
|
|||||||
DOME_DECAL=new olc::Decal(new olc::Sprite("assets/dome.png"));
|
DOME_DECAL=new olc::Decal(new olc::Sprite("assets/dome.png"));
|
||||||
BASE_OBJECTS["DOME"]=DOME_DECAL;
|
BASE_OBJECTS["DOME"]=DOME_DECAL;
|
||||||
LoadMap("assets/maps/map1");
|
LoadMap("assets/maps/map1");
|
||||||
DisplayMessageBox(7);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetAnyKeyPress() override {
|
void GetAnyKeyPress() override {
|
||||||
if (messageBoxVisible) {
|
if (messageBoxVisible) {
|
||||||
while (messageBoxCursor<messageBoxRefText.length()) {
|
if (messageBoxCursor!=messageBoxRefText.length()) {
|
||||||
advanceMessageBox();
|
while (messageBoxCursor<messageBoxRefText.length()) {
|
||||||
|
advanceMessageBox();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
messageBoxVisible=false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch (GAME_STATE) {
|
switch (GAME_STATE) {
|
||||||
@ -267,6 +270,18 @@ public:
|
|||||||
if (!CUTSCENE_FLAGS[0]) {
|
if (!CUTSCENE_FLAGS[0]) {
|
||||||
CUTSCENE_FLAGS[0]=true;
|
CUTSCENE_FLAGS[0]=true;
|
||||||
DisplayMessageBox(0);
|
DisplayMessageBox(0);
|
||||||
|
} else
|
||||||
|
if (!CUTSCENE_FLAGS[1]) {
|
||||||
|
CUTSCENE_FLAGS[1]=true;
|
||||||
|
DisplayMessageBox(1);
|
||||||
|
} else
|
||||||
|
if (!CUTSCENE_FLAGS[2]) {
|
||||||
|
CUTSCENE_FLAGS[2]=true;
|
||||||
|
DisplayMessageBox(2);
|
||||||
|
} else
|
||||||
|
if (!CUTSCENE_FLAGS[3]) {
|
||||||
|
CUTSCENE_FLAGS[3]=true;
|
||||||
|
DisplayMessageBox(3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
@ -393,12 +408,14 @@ public:
|
|||||||
GradientFillRectDecal({WIDTH/2,HEIGHT/2},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1});
|
GradientFillRectDecal({WIDTH/2,HEIGHT/2},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1});
|
||||||
}break;
|
}break;
|
||||||
}
|
}
|
||||||
DrawDialogBox({4,HEIGHT-60},{WIDTH/3,16},olc::Pixel(18, 0, 33,180));
|
if (messageBoxVisible) {
|
||||||
DrawDialogBox({0,HEIGHT-48},{WIDTH,48},olc::Pixel(18, 0, 33,180));
|
DrawDialogBox({4,HEIGHT-60},{WIDTH/2,16},olc::Pixel(18, 0, 33,180));
|
||||||
DrawStringPropDecal({8,HEIGHT-40},messageBoxText);
|
DrawDialogBox({0,HEIGHT-48},{WIDTH,48},olc::Pixel(18, 0, 33,180));
|
||||||
DrawStringPropDecal({8,HEIGHT-57},messageBoxSpeaker);
|
DrawStringPropDecal({8,HEIGHT-40},messageBoxText);
|
||||||
if (messageBoxCursor==messageBoxRefText.length()) {
|
DrawStringPropDecal({8,HEIGHT-57},messageBoxSpeaker);
|
||||||
DrawStringPropDecal({WIDTH-16-sin(frameCount*8/60.0)*3,HEIGHT-8+cos(frameCount*6/60.0)*0.6},"v",olc::Pixel(173, 74, 255,(0.5*sin(frameCount*8/60.0)+0.5)*128+128),{sin(frameCount*8/60.0),0.5});
|
if (messageBoxCursor==messageBoxRefText.length()) {
|
||||||
|
DrawStringPropDecal({WIDTH-16-(float)sin(frameCount*8/60.0)*3,HEIGHT-8+(float)(cos(frameCount*6/60.0)*0.6)},"v",olc::Pixel(173, 74, 255,(0.5*sin(frameCount*8/60.0)+0.5)*128+128),{(float)sin(frameCount*8/60.0),0.5});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
FillRectDecal({0,0},{WIDTH,HEIGHT},olc::Pixel(0,0,0,transparency));
|
FillRectDecal({0,0},{WIDTH,HEIGHT},olc::Pixel(0,0,0,transparency));
|
||||||
}
|
}
|
||||||
@ -417,10 +434,10 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DrawDialogBox(const olc::vi2d &pos, const olc::vi2d &size, olc::Pixel p = olc::WHITE, olc::Pixel p2 = olc::DARK_GREY, olc::Pixel p3 = olc::VERY_DARK_GREY) {
|
void DrawDialogBox(const olc::vi2d &pos, const olc::vi2d &size, olc::Pixel p = olc::WHITE, olc::Pixel p2 = olc::DARK_GREY, olc::Pixel p3 = olc::VERY_DARK_GREY) {
|
||||||
FillRectDecal({pos.x,pos.y},size,p2);
|
FillRectDecal({(float)pos.x,(float)pos.y},size,p2);
|
||||||
FillRectDecal({pos.x+1,pos.y+1},{size.x-2,size.y-2},p);
|
FillRectDecal({(float)pos.x+1,(float)pos.y+1},{(float)size.x-2,(float)size.y-2},p);
|
||||||
FillRectDecal({pos.x+2,pos.y+2},{size.x-4,size.y-4},p3);
|
FillRectDecal({(float)pos.x+2,(float)pos.y+2},{(float)size.x-4,(float)size.y-4},p3);
|
||||||
FillRectDecal({pos.x+3,pos.y+3},{size.x-5,size.y-5},p);
|
FillRectDecal({(float)pos.x+3,(float)pos.y+3},{(float)size.x-5,(float)size.y-5},p);
|
||||||
Draw({pos.x,pos.y},olc::BLACK);
|
Draw({pos.x,pos.y},olc::BLACK);
|
||||||
Draw({pos.x+size.x,pos.y+size.y},olc::BLACK);
|
Draw({pos.x+size.x,pos.y+size.y},olc::BLACK);
|
||||||
Draw({pos.x+size.x,pos.y},olc::BLACK);
|
Draw({pos.x+size.x,pos.y},olc::BLACK);
|
||||||
|
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user