Прикреплённый файл «winrun.py»
Загрузка 1 #!/usr/bin/python
2 # coding: utf-8
3 # vim: sw=4:et:ts=4
4 '''
5 Написать «оконную систему», состоящую из классов
6
7 * Экран (контейнер окон, позволяет манипулировать окнами)
8 o Список окон, определение окна-получателя события
9 o Глубина окон, изменение глубины окон
10 o Перемещение и изменение размера окон
11 * Окно (позволяет манипулировать своим содержимым)
12
13 winrun.py: запускаемый файл
14 '''
15 import pygame, sys, random
16 from win import *
17
18 def randcolor():
19 return random.randint(0,255),random.randint(0,255),random.randint(0,255)
20
21 def randrect(min, max):
22 x=random.randint(0, max[0]-min[0]);
23 y=random.randint(0, max[1]-min[1]);
24 w=random.randint(min[0], max[0]-x);
25 h=random.randint(min[1], max[1]-y);
26 return pygame.Rect(x,y,w,h)
27
28 # Инициализировать PyGame
29 pygame.init()
30 # завести экран
31 world = pygame.display.set_mode((1024,768))
32 scr = simple_screen(world)
33 oldpos, pos = (0,0), (0,0)
34 # Обработка событий:
35 while True:
36 event = pygame.event.wait()
37 # события, которые обрабатываем только мы
38 if event.type == pygame.QUIT: sys.exit()
39 if hasattr(event,"pos"):
40 oldpos, pos = pos, event.pos
41 # хочет ли экран обрабатывать событие?
42 if not scr.proceed(event, pos):
43 if event.type == pygame.KEYDOWN:
44 # добавление/удаление окна
45 if event.key == 127:
46 scr.pop()
47 elif event.key == 277:
48 color=randcolor()
49 rect=randrect((20,20),scr.surface.get_size())
50 #scr.append(rect, "basic", basic_window, bg=color)
51 scr.append(rect, "titled", screen_window, screen=scr, title="TEST")
52 if event.type != pygame.MOUSEMOTION:
53 print >> sys.stderr, event, pos
54 # TODO перемещение окна
55 # TODO изменение размера окна
56 scr.redraw()
57 pygame.display.flip()
Прикреплённые файлы
Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2011-09-26 11:35:29, 9.5 KB) [[attachment:win.py]]
- [получить | показать] (2011-09-26 11:35:29, 2.2 KB) [[attachment:winrun.py]]
Вам нельзя прикреплять файлы к этой странице.