MCPcopy Create free account
hub / github.com/GreycLab/CImg / main

Function main

examples/odykill.cpp:50–229  ·  view source on GitHub ↗

Main procedure ----------------

Source from the content-addressed store, hash-verified

48// Main procedure
49//----------------
50int main(int argc,char **argv) {
51
52 // Create game graphics
53 CImg<unsigned char> graphics[21] = {
54 CImg<unsigned char>(data_tomato,100,100,1,3,false),
55 CImg<unsigned char>(data_heart,100,100,1,3,false),
56 CImg<unsigned char>(data_dynamite,100,100,1,3,false),
57 CImg<unsigned char>(data_brain,100,100,1,3,false),
58 CImg<unsigned char>(data_cdrom,100,100,1,3,false),
59 CImg<unsigned char>(data_enemy,113,150,1,3,false),
60 CImg<unsigned char>(data_enemy2,116,155,1,3,false),
61 CImg<unsigned char>(data_enemy3,104,134,1,3,false),
62 CImg<unsigned char>(data_enemy4,141,151,1,3,false),
63 CImg<unsigned char>(data_enemy5,140,152,1,3,false),
64 CImg<unsigned char>(data_enemy6,131,156,1,3,false),
65 CImg<unsigned char>(data_enemy7,114,125,1,3,false),
66 CImg<unsigned char>(data_enemy8,97,125,1,3,false),
67 CImg<unsigned char>(data_enemy9,143,134,1,3,false),
68 CImg<unsigned char>(data_enemy10,158,214,1,3,false),
69 CImg<unsigned char>(data_enemy11,131,168,1,3,false),
70 CImg<unsigned char>(data_enemy12,114,138,1,3,false),
71 CImg<unsigned char>(data_enemy13,144,144,1,3,false),
72 CImg<unsigned char>(data_enemy14,132,153,1,3,false),
73 CImg<unsigned char>(data_enemy15,152,151,1,3,false),
74 CImg<unsigned char>(data_enemy16,139,185,1,3,false),
75 };
76 CImg<> masks[21];
77 const unsigned char black[] = { 0,0,0 }, white[] = { 255,255,255 };
78
79 // Display weapon selection menu
80 CImg<unsigned char> back0(640,480,1,3), title(data_title,294,94,1,3,true), choose(data_choose,524,49,1,3,true);
81 back0.fill(0).draw_image(back0.width()/2 - title.width()/2,30,title).
82 draw_image(back0.width()/2 - choose.width()/2,150,choose);
83 CImgDisplay disp(back0,"OdyKill");
84 int weapon=-1;
85
86 while (!disp.is_closed() && !disp.button()) {
87 weapon = -1;
88 for (int k=0; k<5; k++) {
89 const int mx = disp.mouse_x(), my = disp.mouse_y();
90 if (!((mx - 40)/110==k && my>250 && my<350)) back0.draw_image(40 + k*110,250,graphics[k]/2.0);
91 else back0.draw_image(40 + k*110,250,graphics[weapon=k]);
92 }
93 CImg<unsigned char> tmp = CImg<unsigned char>().draw_text(0,0,
94 weapon==0?" Tomato ":
95 weapon==1?" Heart ":
96 weapon==2?" Dynamite ":
97 weapon==3?" Brain ":
98 weapon==4?" CD-Rom ":
99 " ",white,black,1,32).resize(-100,-100,1,1),
100 tmp2 = tmp.get_blur(6).normalize(0,255).draw_image(tmp,0.5f);
101 cimg_forC(back0,k) back0.draw_image(250,390,0,k,tmp2);
102
103 disp.resize(disp).display(back0).wait();
104 if (disp.is_keyCTRLLEFT() && disp.is_keyF()) disp.toggle_fullscreen();
105 if (disp.is_closed() || disp.is_keyQ() || disp.is_keyESC()) std::exit(0);
106 }
107 disp.hide_mouse();

Callers

nothing calls this directly

Calls 2

cimg_forCFunction · 0.70
cimg_forXYFunction · 0.70

Tested by

no test coverage detected