pygame初步(一)绘制一个运动的矩形

<More Python Programming for the Absolute Beginner>一书中的第二章练习3(P33)

使用Python的Pygame库

import sys, pygame, random    #导入库文件
from pygame.locals import *

pygame.init()  #初始化

white= 0, 0, 0  #定义颜色
pos_x= 300    #定义初始位置
pos_y= 250
vel_x= 0.2
vel_y= 0.1 

screen= pygame.display.set_mode((600, 500))  #获取窗口对象
#myfont= pygame.font.Font(None, 60)
#textImage= myfont.render("Hello, Pygame!", True, white)
pygame.display.set_caption("Drawing Moving Rectangle")  #窗口名字

color_r= 255
color_g= 0
color_b= 0
color= color_r, color_g, color_b  #定义初始颜色

while True:
    for event in pygame.event.get():
        if event.type in (QUIT, KEYDOWN):
        sys.exit()
    screen.fill(white)

    pos_x+= vel_x
    pos_y+= vel_y

    if pos_x> 500 or pos_x< 0:  #若x轴超出范围,则
      color_r= random.randint(0, 255)  
      color_g= random.randint(0, 255)
      color_b= random.randint(0, 255)
      color= color_r, color_g, color_b    #则矩形边的颜色随机改变
      vel_x= -vel_x  #速度方向相反

    if pos_y> 400 or pos_y< 0:  #类似上面
      color_r= random.randint(0, 255)
      color_g= random.randint(0, 255)
      color_b= random.randint(0, 255)
      color= color_r, color_g, color_b
      vel_y= -vel_y

    position= pos_x, pos_y, 100, 100  
    width= 1
    pygame.draw.rect(screen, color, position, width)  #画矩形

#    screen.blit(textImage, (100, 100))
    pygame.display.update()  #更新
   

第一个Pygame程序,如有建议,敬请提出。

欢迎交流。

时间: 2024-10-02 22:45:38

pygame初步(一)绘制一个运动的矩形的相关文章

【一天一个canvas】绘制一个简单的矩形框(四)

上例中讲到要绘制一个矩形块,填充了颜色,这个例子只是简单地绘制一个矩形而不实现填充效果. <!doctype html> <html> <head> <meta charset="UTF-8"> </head> <style type="text/css"> canvas{border:dashed 2px #CCC} </style> <script type="t

HTML5 在canvas绘制一个矩形

笔者:本笃庆军 原文地址:http://blog.csdn.net/qingdujun/article/details/32930501 一.绘制矩形 canvas使用原点(0,0)在左上角的坐标系统,x坐标向右递增.y坐标向下递增. 使用画图环境的矩形绘制函数来绘制矩形. fillRect(x,y,width,height) : 绘制一个实心的矩形. strokeRect(x,y,width,height) : 绘制一个空心的矩形. clearRect(x,y,width,height) :

OpenGl 绘制一个立方体

OpenGl 绘制一个立方体 为了绘制六个正方形,我们为每个正方形指定四个顶点,最终我们需要指定6*4=24个顶点.但是我们知道,一个立方体其实总共只有八个顶点,要指定24次,就意味着每个顶点其实重复使用了三次,这样可不是好的现象.最起码,像上面这样重复烦琐的代码,是很容易出错的.稍有不慎,即使相同的顶点也可能被指定成不同的顶点了. 如果我们定义一个数组,把八个顶点都放到数组里,然后每次指定顶点都使用指针,而不是使用直接的数据,这样就避免了在指定顶点时考虑大量的数据,于是减少了代码出错的可能性.

如何使用CSS绘制一个响应式的矩形

背景: 最近因为需要用到绘制类似九宫格的需求,所以研究了一下响应式矩形的实现方案. 有如下几种方案: 使用js来设置元素的高度 使用vw单位  div {width: 50vw; height: 50vw;} 使用伪元素设置padding的方式来实现正方形(也就是本次使用的方式) 实现一个正方形 1 .square 2 position: relative 3 width: 100% 4 5 &::before 6 content: '' 7 display: block 8 padding-t

【一天一个canvas】绘制一个线性渐变的矩形(五)

渐变是填充的一种相当不错的效果,结合实例2和实例3,我们可以创建一个渐变的矩形 <!doctype html> <html> <head> <meta charset="UTF-8"> </head> <style type="text/css"> canvas{border:dashed 2px #CCC} </style> <script type="text/j

四、绘制一个点

上次我们介绍了如何在<canvas>中使用WebGL,以及几个基础的WebGL函数:实现了背景色的重置:为了扩展方便,我们把上次的代码做了些改动,将绘制图形的js独立成文件,这样我们只关注与这个js文件的编写:以后除非HTML文件发生变化,我们就跳过它,直接讨论JavaScript代码. 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <met

GDI+学习笔记(五)绘制一个正方体

本文将介绍如何利用GDI+绘制一个正方体. (一)准备阶段 想象一下,高中的时候,我们在学立体几何的时候是怎样画一个正方体的,我们在一张纸上利用投影的思路将其绘制在一张纸上,对吧,这计算投影的部分,我们暂且忽略.下图是我用windows的画图绘制的一个正方体: 我们计算出这些点在平面上的坐标如下: Point A(100,200); Point B(200,200); Point C(100,300); Point D(200,300); Point E(100+50*1.414, 200-50

转:iOS绘制一个UIView

绘制一个UIView 绘制一个UIVIew最灵活的方式就是由它自己完成绘制.实际上你不是绘制一个UIView,你只是子类化了UIView并赋予子类绘制自己的能力.当一个UIVIew需要执行绘图操作的时,drawRect:方法就会被调用.覆盖此方法让你获得绘图操作的机会.当drawRect:方法被调用,当前图形上下文也被设置为属于视图的图形上下文.你可以使用Core Graphics或UIKit提供的方法将图形画到该上下文中. 你不应该手动调用drawRect:方法!如果你想调用drawRect:

iOS----自定义UIView,绘制一个UIView

绘制一个UIVIew最灵活的方式就是由它自己完成绘制.实际上你不是绘制一个UIView,你只是子类化了UIView并赋予子类绘制自己的能力.当一个UIVIew需要执行绘图操作的时,drawRect:方法就会被调用.覆盖此方法让你获得绘图操作的机会.当drawRect:方法被调用,当前图形上下文也被设置为属于视图的图形上下文.你可以使用Core Graphics或UIKit提供的方法将图形画到该上下文中. 你不应该手动调用drawRect:方法!如果你想调用drawRect:方法更新视图,只需发送