• pygame学习笔记(1)——安装及矩形、圆型画图


          pygame是一个设计用来开发游戏的python模块,其实说白了和time、os、sys都是一样的东东。今天开始正式学习pygame,下载地址:www.pygame.org。下载后安装完成即可,在pygame的学习中,我使用了spe编辑器,感觉还不错。

    1、pygame窗口

          pygame绘制图形前,首先需要建立一个窗口,说来很简单,请看下面的代码,怎么样,是不是很简单。

    import pygame  #这句不用注释了吧,呵呵
    pygame.init()  #模块初始化,任何pygame程序均需要执行此句

    screencaption
    =pygame.display.set_caption('hello world')#定义窗口的标题为'hello world'
    screen
    =pygame.display.set_mode([640,480]) #定义窗口大小为640*480
    screen.fill([
    255,255,255])#用白色填充窗口

      2、窗口退出

          pygame有一个事件循环,不断检查用户在做什么。事件循环中,如何让循环中断下来(pygame形成的窗口中右边的插号在未定义前是不起作用的),常用的代码如下:

    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                sys.exit()
                

    3、pygame中的颜色

           在screen.fill([255,255,255])这一语句中,已经看出,pygame使用的是RGB系统。纯绿色用[0,255,0],纯蓝色用[0,0,255],纯红色用[255,0,0]。如果不使用RGB记法,pygame还提供了一个命名颜色列表,也可以直接使用这些命名颜色。定义好的颜色句有600多个,可以在colordict.py文件中查看具体名称。使用命名列表时,首先要在程序最前面导入THECOLORS。

    from pygame.color import THECOLORS

    然后使用某个命名颜色:

    pygame.draw.circle(screen,THECOLORS["red"],[100,100],30,0)

    4、圆形

    pygame.draw.circle()用来画圆形,具体包括五个参数:(1)画圆的表面,在本例中用screen创建了一个窗口,所以是画在screen表面上。(2)用什么颜色来画,如用红色[255,0,0]。(3)在什么位置画,[top,left]。(4)直径。(5)线宽,其中0表示完成填充。
    pygame.draw.circle(screen,[255,0,0],[100,100],30,0)

    5、矩形

    pygame.draw.rect()用来创建一个矩形。Rect(left,top,width,height)用来定义位置和宽高,具体代码如下:

    pygame.draw.rect(screen,[255,0,0],[250,150,300,200],0)

    也可以用下面的定义方法

    rect_list=[250,150,300,200]
    pygame.draw.rect(screen,[255,0,0],rect_list,0)

    或者

    my_rect=pygame.Rect(250,150,300,200)
    pygame.draw.rect(screen,[255,0,0],my_rect,0)

    6、实例

        利用random模块随机生成大小和位置在表面上绘画,具体代码如下:

    #@小五义 http://www.cnblogs.com/xiaowuyi
    import pygame,sys
    import time
    import random
    
    pygame.init()
    screencaption=pygame.display.set_caption('hello world')
    screen=pygame.display.set_mode([640,480])
    screen.fill([255,255,255])
    for i in range(10):
        zhijing=random.randint(0,100)
        width=random.randint(0,255)
        height=random.randint(0,100)
        top=random.randint(0,400)
        left=random.randint(0,500)
        pygame.draw.circle(screen,[0,0,0],[top,left],zhijing,1)
        pygame.draw.rect(screen,[255,0,0],[left,top,width,height],3)
    
    pygame.display.flip()
    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                sys.exit()
                

    转载请注明:小五义 http://www.cnblogs.com/xiaowuyi

     

  • 相关阅读:
    POJ 3253 Fence Repair
    POJ 2431 Expedition
    NYOJ 269 VF
    NYOJ 456 邮票分你一半
    划分数问题 DP
    HDU 1253 胜利大逃亡
    NYOJ 294 Bot Trust
    NYOJ 36 最长公共子序列
    HDU 1555 How many days?
    01背包 (大数据)
  • 原文地址:https://www.cnblogs.com/xiaowuyi/p/2538921.html
Copyright © 2020-2023  润新知