OSDN Git Service

hk
[psychlops/cpp_document.git] / Psychlops.manual / sample_cpp_file / 4�� / 4.1_�O�����u�̎g�p4.cpp
1 #include <psychlops.h>\r
2 using namespace Psychlops;      \r
3 \r
4 double x=0,y=0, dX,dY;\r
5 int code, oldcode;\r
6 Psychlops::Rectangle rect(60,60), rect2(60,60);\r
7 \r
8 void psychlops_main() {\r
9         \r
10         Canvas display(Canvas::fullscreen);\r
11         display.clear(Color::gray);\r
12         rect.centering();\r
13         dX= display.getHcenter();\r
14         dY= display.getVcenter();\r
15         x=dX;\r
16         y=dY;\r
17         \r
18         Input::refresh();\r
19         \r
20         while(!Input::get(Keyboard::spc)){\r
21                 oldcode=code;\r
22                 code=-1;\r
23                 \r
24                 //state "pushed" Demo\r
25                 if(Input::get(Keyboard::c, Keyboard::pushed))code=0; //centering\r
26                 \r
27                 if(Input::get(Keyboard::a, Keyboard::pushed))code=1;\r
28                 else if(Input::get(Keyboard::s, Keyboard::pushed))code=2;\r
29         \r
30                 //state "pressed" Demo\r
31                 if(Input::get(Keyboard::z, Keyboard::pressed))code=3;\r
32                 else if(Input::get(Keyboard::x, Keyboard::pressed))code=4;\r
33                 \r
34                 //state "pressed" and "released" Demo\r
35                 if(Input::get(Keyboard::q, Keyboard::pressed)){\r
36                         code=5;\r
37                    if(oldcode==5||oldcode==7)code=7;\r
38                 }\r
39                 else if(Input::get(Keyboard::w, Keyboard::pressed)){\r
40                    code=6;\r
41                    if(oldcode==6||oldcode==8)code=8;\r
42                 }\r
43                 if(Input::get(Keyboard::q, Keyboard::released))code=9;\r
44                 else if(Input::get(Keyboard::w, Keyboard::released))code=9;\r
45                 \r
46                 switch(code){\r
47                         case -1: break;\r
48                         case 0: rect.centering(); break;\r
49                         case 1: rect.shift(-1,0); break;\r
50                         case 2: rect.shift(1,0); break;\r
51                         case 3: rect.shift(-1,0); break;\r
52                         case 4: rect.shift(1,0); break;\r
53                         case 5: x=ceil(rect.getHcenter()); y=ceil(rect.getVcenter()); rect.shift(-1,0);break;\r
54                         case 6: x=ceil(rect.getHcenter()); y=ceil(rect.getVcenter()); rect.shift(1,0);break;\r
55                         case 7: rect.shift(-1,0); break;\r
56                         case 8: rect.shift(1,0); break;\r
57                         case 9: rect.centering(x,y); break;\r
58                 }\r
59                 display.clear(Color::gray);\r
60                 \r
61                 //Show variables \r
62                 display.message("KeyState:", dX-100, dY-120, Color::green);\r
63                 display.var(code, dX,dY-120, Color::green);\r
64                 display.message("X:", dX-100, dY-100, Color::white); \r
65                 display.var(ceil(rect.getHcenter()),dX,dY-100, Color::white);\r
66                 display.message("Y:", dX-100, dY-80, Color::white);\r
67                 display.var(ceil(rect.getVcenter()),dX,dY-80, Color::white);\r
68                 \r
69                 if(code>5){ \r
70                                         rect2.centering(x,y).draw(Psychlops::Color(0.75,0.75,0.75)); \r
71                                         rect.draw(Psychlops::Color(1.0,1.0,1.0,0.25));\r
72                         }\r
73                 else rect.draw(1.0);\r
74                 display.flip();\r
75         }\r
76 }\r