pygame系列_draw游戏画图

说到画图,pygame提供了一些很有用的方法进行draw画图。

复制代码
'''

pygame.draw.rect - draw a rectangle shape    draw a rectangle shape

pygame.draw.polygon - draw a shape with any number of sides    draw a shape with any number of sides

pygame.draw.circle - draw a circle around a point    draw a circle around a point

pygame.draw.ellipse - draw a round shape inside a rectangle    draw a round shape inside a rectangle

pygame.draw.arc - draw a partial section of an ellipse    draw a partial section of an ellipse

pygame.draw.line - draw a straight line segment    draw a straight line segment

pygame.draw.lines - draw multiple contiguous line segments    draw multiple contiguous line segments

pygame.draw.aaline - draw fine antialiased lines    draw fine antialiased lines

pygame.draw.aalines - pygame.draw.aalines(Surface, color, closed, pointlist, blend=1): return Rect

'''
复制代码
1 pygame.draw.rect   #画一个矩形

下面是我做的demo

hongten_pygame

有鼠标在窗口中点击的时候,系统会自动画出一个矩形,按键盘任意键,清屏

=================================================

代码部分:

=================================================

复制代码
 1 #pygame draw

 2 

 3 import pygame

 4 from pygame.locals import *

 5 from sys import exit

 6 from random import *

 7 

 8 __author__ = {'name' : 'Hongten',

 9               'mail' : '[email protected]',

10               'blog' : 'http://www.cnblogs.com/hongten',

11               'Version' : '1.0'}

12 

13 pygame.init()

14 

15 SCREEN_DEFAULT_SIZE = (500, 500)

16 SCREEN_DEFAULT_COLOR = (0, 0 ,0)

17 

18 screen = pygame.display.set_mode(SCREEN_DEFAULT_SIZE, 0, 32)

19 screen.fill(SCREEN_DEFAULT_COLOR)

20 

21 while 1:

22     for event in pygame.event.get():

23         if event.type ==  QUIT:

24             exit()

25         elif event.type == KEYDOWN:

26             screen.fill(SCREEN_DEFAULT_COLOR)

27         elif event.type == MOUSEBUTTONDOWN:

28             rect_color = (randint(0, 255), randint(0, 255), randint(0, 255))

29             rect_pos = (randint(0, 500), randint(0, 500))

30             rect_pos_end = (500 - randint(rect_pos[0], 500), 500 - randint(rect_pos[1], 500))

31             pygame.draw.rect(screen, rect_color, Rect(rect_pos, rect_pos_end))

32     pygame.display.update()
复制代码
1 pygame.draw.circle  #画圆

demo:

hongten_pygame

当鼠标在窗口中移动的时候,单击鼠标,即可在窗口中产生一个随机圆,按下键盘任意键,清屏

==================================================

代码部分:

==================================================

复制代码
 1 #pygame draw

 2 

 3 import pygame

 4 from pygame.locals import *

 5 from sys import exit

 6 from random import *

 7 

 8 __author__ = {'name' : 'Hongten',

 9               'mail' : '[email protected]',

10               'blog' : 'http://www.cnblogs.com/hongten',

11               'Version' : '1.0'}

12 

13 pygame.init()

14 

15 SCREEN_DEFAULT_SIZE = (500, 500)

16 SCREEN_DEFAULT_COLOR = (0, 0 ,0)

17 

18 screen = pygame.display.set_mode(SCREEN_DEFAULT_SIZE, 0, 32)

19 screen.fill(SCREEN_DEFAULT_COLOR)

20 

21 while 1:

22     for event in pygame.event.get():

23         if event.type ==  QUIT:

24             exit()

25         elif event.type == KEYDOWN:

26             screen.fill(SCREEN_DEFAULT_COLOR)

27         elif event.type == MOUSEBUTTONDOWN:

28             c_color = (randint(0, 255), randint(0, 255), randint(0, 255))

29             c_pos = (randint(0, 500), randint(0, 500))

30             c_r = randint(10, 100)

31             pygame.draw.circle(screen, c_color, c_pos, c_r)

32     pygame.display.update()
复制代码
1 pygame.draw.line   #画线

demo:

hongten_pygame

鼠标在窗口中移动的时候,总是有一些线和鼠标汇聚,当鼠标被点击的时候,就会记录下此时的形状

按下键盘任意键,清屏

当然你也可以取消这个功能:

1 RECORD = False   #取消记录鼠标轨迹

==================================================

代码部分:

==================================================

复制代码
 1 #pygame draw

 2 

 3 import pygame

 4 from pygame.locals import *

 5 from sys import exit

 6 from random import *

 7 

 8 __author__ = {'name' : 'Hongten',

 9               'mail' : '[email protected]',

10               'blog' : 'http://www.cnblogs.com/hongten',

11               'Version' : '1.0'}

12 

13 pygame.init()

14 

15 SCREEN_WIDTH = 500

16 SCREEN_HEIGHT = 500

17 SCREEN_DEFAULT_SIZE = (SCREEN_WIDTH, SCREEN_HEIGHT)

18 SCREEN_DEFAULT_COLOR = (0, 0 ,0)

19 #record the mouse clicked points

20 RECORD = True

21 

22 screen = pygame.display.set_mode(SCREEN_DEFAULT_SIZE, 0, 32)

23 screen.fill(SCREEN_DEFAULT_COLOR)

24 

25 def draw_lines(screen, line_color, points, mouse_pos):

26     for point in points:

27         pygame.draw.line(screen, line_color, point, mouse_pos)

28 ps = []

29 #you can add other points

30 points = [(0, 0), (250, 0), (500, 0),

31           (0, 250),(0, 500),(250, 500),

32           (500, 250),(500, 500)]

33 

34 

35 while 1:

36     for event in pygame.event.get():

37         if event.type ==  QUIT:

38             exit()

39         elif event.type == KEYDOWN:

40             screen.fill(SCREEN_DEFAULT_COLOR)

41         elif event.type == MOUSEMOTION:

42             screen.fill(SCREEN_DEFAULT_COLOR)

43             line_color = (randint(0, 255), randint(0, 255), randint(0, 255))

44             draw_lines(screen, line_color, points, pygame.mouse.get_pos())

45             #record the mouse clicked points depend on yourself

46             if not RECORD:

47                 ps = []

48             for c_p in ps:

49                 draw_lines(screen, c_p[0], points, c_p[1])  

50         elif event.type == MOUSEBUTTONDOWN:

51             x, y = pygame.mouse.get_pos()

52             line_color = (randint(0, 255), randint(0, 255), randint(0, 255))

53             draw_lines(screen, line_color, points, (x, y))

54             ps.append((line_color, (x, y)))

55             

56     pygame.display.update()
复制代码

更多信息:http://pygame.org/docs/ref/draw.html

 
 

你可能感兴趣的:(game)