Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ îðèãèíàëüíîãî äîêóìåíòà : http://kodomo.cmm.msu.su/trac/tanchiki/browser/tanchiki/ui.py?rev=31
Äàòà èçìåíåíèÿ: Unknown
Äàòà èíäåêñèðîâàíèÿ: Tue Apr 12 00:24:05 2016
Êîäèðîâêà: IBM-866
ui.py in tanchiki òÀÓ Tanchiki

source: tanchiki/ui.py @ 31:48f019a6c1c6

Revision 31:48f019a6c1c6, 2.0 KB checked in by Peter Zotov <whitequark@òÀæ>, 5 years ago (diff)

Made a working sandbox.

Lineˆà
1importˆàmath
2
3fromˆàOpenGL.GLUTˆàimportˆà*
4fromˆàOpenGL.GLUˆàimportˆà*
5fromˆàOpenGL.GLˆàimportˆà*
6
7fromˆàbodyˆàimportˆà*
8fromˆàvectorˆàimportˆà*
9fromˆàgameˆàimportˆà*
10fromˆàuser_controllerˆàimportˆà*
11importˆàgameˆàasˆàgame_module
12
13glutInit()
14glutInitDisplayMode(GLUT_RGBA |ˆàGLUT_DOUBLE |ˆàGLUT_DEPTH)
15
16classˆàGLWindow(object):
17ˆà ˆà ˆà ˆà defˆà__init__(self,ˆàgame,ˆàtank,ˆàtimer=None,ˆàival=None):
18ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.game,ˆàself.tank =ˆàgame,ˆàtank
19
20ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà window =ˆàglutCreateWindow('hello')
21
22ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà circle =ˆàglGenLists(1)
23ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glNewList(circle,ˆàGL_COMPILE)
24ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glPolygonMode(GL_FRONT,ˆàGL_LINE)
25ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glBegin(GL_POLYGON)
26ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆài inˆàrange(100)ˆà:
27ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glVertex2f(math.cos(i*2*math.pi/100.0)/2,ˆàmath.sin(i*2*math.pi/100.0)/2)
28ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glEnd()
29ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glEndList(circle)
30
31ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà defˆàdisplay():
32ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutSetWindow(window)
33ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glClear(GL_COLOR_BUFFER_BIT |ˆàGL_DEPTH_BUFFER_BIT)
34
35ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glLoadIdentity()
36ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glScalef(2.0/game.width,ˆà2.0/game.height,ˆà0)
37
38ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàbody inˆàgame.bodies :
39ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glPushMatrix()
40ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glTranslatef(body.position.x,ˆàbody.position.y,ˆà0)
41
42ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glScalef(body.radius,ˆàbody.radius,ˆà0)
43ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàbody isˆàtank :
44ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glColor3f(255,ˆà255,ˆà0)
45ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà elifˆàisinstance(body,ˆàTank)ˆà:
46ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glColor3f(0,ˆà255,ˆà0)
47ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà elifˆàisinstance(body,ˆàBullet)ˆà:
48ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glColor3f(255,ˆà0,ˆà0)
49
50ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glCallList(circle)
51
52ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glBegin(GL_LINES)
53ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glVertex2f(0,ˆà0)
54ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glVertex2f(body.velocity.x,ˆàbody.velocity.y)
55ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glEnd()
56
57ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glPopMatrix()
58
59ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutSwapBuffers()
60
61ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà defˆàkeyboard(key,ˆàa,ˆàb):
62ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà tank.controller.handle_keypress(key)
63ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutPostRedisplay()
64
65ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà defˆàtimer_func(val):
66ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà timer.__call__()
67ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutPostRedisplay()
68ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutTimerFunc(ival,ˆàtimer_func,ˆà0)
69
70ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutDisplayFunc(display)
71ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutKeyboardFunc(keyboard)
72
73ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàtimer :
74ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutTimerFunc(ival,ˆàtimer_func,ˆà0)
75
76classˆàUi(object):
77ˆà ˆà ˆà ˆà defˆà__init__(self):
78ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà bodies =ˆà[]
79ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.game =ˆàGame(100,ˆà100,ˆàbodies)
80ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà tank =ˆàTank(self.game,ˆàVector.null,ˆàNone)
81ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà controller =ˆàUserController('a',ˆà'd',ˆà'q',ˆà'e',ˆà'w',ˆà's',ˆà'x',ˆàtank)
82ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà tank.controller =ˆàcontroller
83ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà bodies.append(tank)
84
85ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà defˆàidle()ˆà:
86ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.game.step(1)
87
88ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.window =ˆàGLWindow(self.game,ˆàbodies[0],ˆàidle,ˆà100)
89
90ˆà ˆà ˆà ˆà defˆàloop(self):
91ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutMainLoop()
92
93ui =ˆàUi()
94ui.loop()
Note: See TracBrowser for help on using the repository browser.