python游戏编程100例_用python和pygame游戏编程入门-画图实例

5f320007912be.jpg

上一节中介绍了各种用于画图的函数,为了进一步加深印象,我们通过一个实例来把这些功能整合到一起。

#!/usr/bin/env python

import pygame

from pygame.locals import *

from sys import exit

from random import *

from math import pi

pygame.init()

screen = pygame.display.set_mode((640, 480), 0, 32)

points = []

while True:

for event in pygame.event.get():

if event.type == QUIT:

exit()

if event.type == KEYDOWN:

# 按c键可以清屏并把点回复到原始状态

print(event.key)

if event.key == K_c:

points = []

screen.fill((255,255,255))

if event.type == MOUSEBUTTONDOWN:

screen.fill((255,255,255))

# 画随机矩形

rc = (randint(0,255), randint(0,255), randint(0,255))

rp = (randint(0,639), randint(0,479))

rs = (639-randint(rp[0], 639), 479-randint(rp[1], 479))

pygame.draw.rect(screen, rc, Rect(rp, rs))

# 画随机圆形

rc = (randint(0,255), randint(0,255), randint(0,255))

rp = (randint(0,639), randint(0,479))

rr = randint(1, 200)

pygame.draw.circle(screen, rc, rp, rr)

# 获得当前鼠标点击位置

x, y = pygame.mouse.get_pos()

points.append((x, y))

# 根据点击位置画弧线

angle = (x/639.)*pi*2.

pygame.draw.arc(screen, (0,0,0), (0,0,639,479), 0, angle, 3)

# 根据点击位置画椭圆

pygame.draw.ellipse(screen, (0, 255, 0), (0, 0, x, y))

# 从左上和右下画两根线连接到点击位置

pygame.draw.line(screen, (0, 0, 255), (0, 0), (x, y))

pygame.draw.line(screen, (255, 0, 0), (640, 480), (x, y))

# 画点击轨迹图

if len(points) > 1:

pygame.draw.lines(screen, (155, 155, 0), False, points, 2)

for p in points:

pygame.draw.circle(screen, (155, 155, 155), p, 3)

pygame.display.update()

运行这个程序,在上面点鼠标就会有图形出来了;按c键可以重新开始。另外这个程序只是各个命令的堆砌,主要是为了让大家能够理解和很好的使用各个函数。

下次开始我们学习游戏中的动画制作。

本站内容未经许可,禁止任何网站及个人进行转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值