OSDN Git Service

Merge branch 'master' of o_ggy@git.sourceforge.jp:/gitroot/moflib/moflib
[moflib/moflib.git] / saisei-1.0 / rpg / rpg / oldcode / Demo3.cpp~
1 #include "Demo2.hpp"
2 #include "configure.hpp"
3 #include "MyInstructionSet.hpp"
4 #include "mof/Interpreter.hpp"
5 #include "mof/EventScheduler.hpp"
6 #include "mof/mofInput.hpp"
7 #include "mof/mofGraphics.hpp"
8 #include "mof/Application.hpp"
9 #include "mof/utilities.hpp"
10 #include "mof/widgets.hpp"
11 #include <mof/Texture.hpp>
12 #include "mof/Font.hpp"
13 #include "resource.hpp"
14 #include <mof/streams.hpp>
15 #include <mof/FactoryMethod.hpp>
16 #include <boost/bind.hpp> 
17 #include <boost/make_shared.hpp> 
18 #include "widget/createMenuView.hpp"
19 #include "widget/createFrame.hpp"
20 #include <mof/ConsoleIO.hpp>
21 #include <mof/FactoryMethod.hpp>
22
23 using namespace mof::widget;
24 using namespace boost;
25
26 namespace
27 {
28         
29         boost::shared_ptr<mof::InputReceiver> m_pInputReceiver;
30         mof::EventScheduler m_scheduler;
31     Frame* m_pView;
32 }
33         
34 namespace Demo3
35 {
36 //{{{ initialize
37     void initialize()
38     {
39
40
41         {
42             shared_ptr<Message> pWidget =
43                 make_shared<Message>
44                 (
45                     make_shared<TextCompiler>
46                     (
47                         mof::Font(FONT_NAME_UME, 18)
48
49                     )
50                 );  
51
52             //pWidget->addPage("\81@");
53             pWidget->addPage("\83E\83B\83\93\83h\83E\82Ì\83A\83j\83\81\81[\83V\83\87\83\93\82Í\8aO\95\94\82©\82ç\90Ý\92è\82Å\82«\82Ü\82·\81B<nl />\82±\82ê\82Í\83L\83\83\83\89\83N\83^\81[\82Ì\83Z\83\8a\83t\95\\8e¦\82ð\91z\92è\82µ\82½\83A\83j\83\81\81[\83V\83\87\83\93");
54
55             m_pView = 
56                 createFrame
57                 (
58                     _T("\81@") ,
59                     _T("image/frame0.png") ,
60                     _T("image/frame3.png") ,
61                                         pWidget->getView()
62                 ).release();
63         }
64
65         {
66             mof::KeyFrameAnimation< mof::Vector2D >::KeyFrame keyFrames[] =
67             {
68                 mof::makeKeyFrame(0,   mof::Vector2D(250, 50)),
69                 mof::makeKeyFrame(15,   mof::Vector2D(0   , 50)),
70                 mof::makeKeyFrame(20, mof::Vector2D(0,     0)),
71             };
72             m_pView->getView()->getPositionStream() 
73                                 << mof::makeConstantHandler(mof::Vector2D(30, 60))
74                                 << mof::makeKeyFrameAnimationHandler( keyFrames[0], mof::lastOf( keyFrames ) );
75         }
76         {
77             mof::Vector2D base = m_pView->getView()->getSizeStream().value();
78             mof::KeyFrameAnimation< mof::Vector2D >::KeyFrame keyFrames[] =
79             {
80                 mof::makeKeyFrame(0, mof::Vector2D(50, 50) - base ) ,
81                 mof::makeKeyFrame(15, mof::Vector2D(550, 50) - base ) ,
82                 mof::makeKeyFrame(20, mof::Vector2D(550, 150) - base ) ,
83             };
84             m_pView->getView()->getSizeStream() << mof::makeKeyFrameAnimationHandler( keyFrames[0] , mof::lastOf( keyFrames ) );
85         }
86
87         m_pView->show();
88
89         m_pInputReceiver = boost::shared_ptr<mof::InputReceiver>(mof::InputDevice::getInputReceiver());
90             
91             mof::GraphicsDevice::lightEnable(false);
92             mof::GraphicsDevice::setAlphaBlendingMode(mof::GraphicsDevice::BLENDING_MODE_ALPHA);
93
94     }
95 //}}}
96 /* 
97 //{{{ initialize
98     void initialize()
99     {
100                 {
101                         using namespace mof::widget;
102                 
103                         boost::shared_ptr<WidgetView> contents[] = 
104                                 {
105                                         boost::make_shared<RectangleView>(mof::Vector2D(32, 64), mof::createColor(255, 0, 0)),          
106                                         boost::make_shared<RectangleView>(mof::Vector2D(24, 64), mof::createColor(0, 255, 0)),          
107                                         boost::make_shared<RectangleView>(mof::Vector2D(12, 80), mof::createColor(0, 0, 255)),          
108                                 };
109
110                         boost::shared_ptr<mof::widget::Container> container = 
111                                 make_shared<mof::widget::Container>
112                                 (
113                                         contents[0],
114                                         mof::lastOf(contents), 
115                                         mof::makeFactoryMethod<GridLayout>(GridLayout::VERTICAL, 0, 10)
116                                 );
117                                 
118                                         
119                         //boost::shared_ptr<WidgetView> container = 
120                         //      boost::make_shared<RectangleView>(mof::Vector2D(32, 64), mof::createColor(255, 0, 0));
121
122             m_pView = 
123                 createFrame
124                 (
125                     _T("My Demo") ,
126                     _T("image/frame0.png") ,
127                     _T("image/frame3.png") ,
128                                         container
129                 ).release();
130         }
131
132         {
133             mof::KeyFrameAnimation< mof::Vector2D >::KeyFrame keyFrames[] =
134             {
135                 mof::makeKeyFrame(0,   mof::Vector2D(250, 50)),
136                 mof::makeKeyFrame(50,   mof::Vector2D(0   , 50)),
137                 mof::makeKeyFrame(60, mof::Vector2D(0,     0)),
138             };
139             m_pView->getView()->getPositionStream() 
140                                 << mof::makeConstantHandler(mof::Vector2D(30, 60))
141                                 << mof::makeKeyFrameAnimationHandler( keyFrames[0], mof::lastOf( keyFrames ) );
142         }
143         {
144             mof::Vector2D base = m_pView->getView()->getPreferredSize();
145             mof::KeyFrameAnimation< mof::Vector2D >::KeyFrame keyFrames[] =
146             {
147                 //mof::makeKeyFrame(0, mof::Vector2D(50, 50) - base ) ,
148                 //mof::makeKeyFrame(50, mof::Vector2D(550, 50) - base ) ,
149                 //mof::makeKeyFrame(60, mof::Vector2D(550, 150) - base ) ,
150                 mof::makeKeyFrame(0, mof::Vector2D(0,0) ) ,
151                 mof::makeKeyFrame(30, mof::Vector2D(0,100) ) ,
152                 mof::makeKeyFrame(50, mof::Vector2D(0, -200) ) ,
153             };
154             m_pView->getView()->getSizeStream() 
155                                 << 
156                                         boost::make_shared<mof::Loop<mof::Vector2D>>
157                                         (
158                                                 mof::makeKeyFrameAnimationHandler(keyFrames[0] , mof::lastOf( keyFrames )),
159                                                 100
160                                         );
161         }
162
163         m_pView->show();
164
165         m_pInputReceiver = boost::shared_ptr<mof::InputReceiver>(mof::InputDevice::getInputReceiver());
166             
167             mof::GraphicsDevice::lightEnable(false);
168             mof::GraphicsDevice::setAlphaBlendingMode(mof::GraphicsDevice::BLENDING_MODE_ALPHA);
169
170     }
171 */      
172 //}}}
173
174     void finalize( )
175     {
176         mof::safe_delete( m_pView );
177     }
178     
179     
180
181     void update()
182     {
183         m_scheduler.update();
184         m_pInputReceiver->update();
185         m_pView->update( );
186         
187     }
188
189     void draw()
190     {
191             mof::VertexXYZRHWC vertices[] = 
192             {
193                 mof::VertexXYZRHWC(mof::Vector2D(0 , 0) , mof::createColor(0 , 0 , 127)) ,
194                 mof::VertexXYZRHWC(mof::Vector2D(640 , 0) , mof::createColor(0 , 0 , 127)) ,
195                 mof::VertexXYZRHWC(mof::Vector2D(0 , 480) , mof::createColor(0 , 0 , 0)) ,
196                 mof::VertexXYZRHWC(mof::Vector2D(640 , 480) , mof::createColor(0 , 0 , 0))
197             };
198             mof::GraphicsDevice::setTexture(NULL);
199             mof::GraphicsDevice::drawVertexArray(vertices[0] , vertices[3] , mof::PRIMITIVE_TYPE_TRIANGLESTRIP );
200         
201         m_pView->getView()->draw( );
202     }
203
204 } // namespace Demo2
205
206