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

source: tanchiki/ui.py @ 26:f0ff33fb578f

Revision 26:f0ff33fb578f, 1.4 KB checked in by Peter Zotov <whitequark@òÀæ>, 5 years ago (diff)

Add UI GLWindow.

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ˆà*
10importˆàgameˆàasˆàgame_module
11
12glutInit()
13glutInitDisplayMode(GLUT_RGBA |ˆàGLUT_DOUBLE |ˆàGLUT_DEPTH)
14
15classˆàGLWindow(object):
16ˆà ˆà ˆà ˆà defˆà__init__(self,ˆàgame,ˆàtank):
17ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.game,ˆàself.tank =ˆàgame,ˆàtank
18
19ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà window =ˆàglutCreateWindow('hello')
20
21ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà circle =ˆàglGenLists(1)
22ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glNewList(circle,ˆàGL_COMPILE)
23ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glPolygonMode(GL_FRONT,ˆàGL_LINE)
24ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glBegin(GL_POLYGON)
25ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆài inˆàrange(100)ˆà:
26ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glVertex2f(math.cos(i*2*math.pi/100.0),ˆàmath.sin(i*2*math.pi/100.0))
27ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glEnd()
28ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glEndList(circle)
29
30ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà defˆàdisplay():
31ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutSetWindow(window)
32ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glClear(GL_COLOR_BUFFER_BIT |ˆàGL_DEPTH_BUFFER_BIT)
33
34ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glLoadIdentity()
35ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glScalef(1/game.width,ˆà1/game.height,ˆà0)
36
37ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàbody inˆàgame.bodies :
38ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glPushMatrix()
39ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà #glTranslatef(body.position.x, body.position.y, 0)
40
41ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà #glScalef(body.radius, body.radius, 0)
42ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàbody isˆàtank :
43ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glColor3f(255,ˆà255,ˆà0)
44ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà elifˆàbody.__class__ isˆàTank :
45ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glColor3f(0,ˆà255,ˆà0)
46ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà elifˆàbody.__class__ isˆàTank :
47ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glColor3f(255,ˆà0,ˆà0)
48
49ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glCallList(circle)
50ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glPopMatrix()
51
52ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutSwapBuffers()
53
54ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutDisplayFunc(display)
55
56classˆàUi(object):
57ˆà ˆà ˆà ˆà defˆà__init__(self):
58ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà bodies =ˆà[ˆàTank(Vector.null,ˆàNone)ˆà]
59ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.game =ˆàGame(100,ˆà100,ˆàbodies)
60ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.window =ˆàGLWindow(self.game,ˆàbodies[0])
61
62ˆà ˆà ˆà ˆà defˆàloop(self):
63ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà glutMainLoop()
64
65ui =ˆàUi()
66ui.loop()
Note: See TracBrowser for help on using the repository browser.