pygame 练习之 PIE game (以及简单图形训练)

简单的大饼游戏,掌握pygame中直线以及圆弧的画法,以及对输入的响应。

 1 import math
 2 import pygame, sys
 3 from pygame.locals import *
 4 pygame.init()
 5 screen = pygame.display.set_mode((600, 500))
 6 pygame.display.set_caption("The Pie Game -- Press 1 2 3 4")
 7 myfont = pygame.font.Font(None, 60)
 8
 9 color = 200, 80, 60
10 width = 5
11 x = 300
12 y = 250
13 radius = 200
14 position = x - radius, y - radius, radius*2,  radius*2
15
16 piece1 = False
17 piece2 = False
18 piece3 = False
19 piece4 = False
20
21 # main game loop
22 while True:
23     for event in pygame.event.get():
24         if event.type == pygame.QUIT:
25             pygame.quit()
26             sys.exit()
27         elif event.type == KEYUP:
28             if event.key == pygame.K_ESCAPE:
29                 pygame.quit()
30                 sys.exit()
31             elif event.key == pygame.K_1:
32                 piece1 = True
33             elif event.key == pygame.K_2:
34                 piece2 = True
35             elif event.key == pygame.K_3:
36                 piece3 = True
37             elif event.key == pygame.K_4:
38                 piece4 = True
39     #clear the screen
40     screen.fill((0,0,200))
41
42     textImg1 = myfont.render("1", True, color)
43     screen.blit(textImg1, (x+radius/2, y-radius/2))
44
45     textImg2 = myfont.render("2", True, color)
46     screen.blit(textImg2, (x-radius/2, y-radius/2))
47
48     textImg3 = myfont.render("3", True, color)
49     screen.blit(textImg3, (x-radius/2, y+radius/2))
50
51     textImg4 = myfont.render("4", True, color)
52     screen.blit(textImg4, (x+radius/2, y+radius/2))
53
54     #should the pieces be drawn?
55     if piece1:
56         start_angle = math.radians(0)
57         end_angle   = math.radians(90)
58         pygame.draw.arc(screen, color, position, start_angle, end_angle, width)
59         pygame.draw.line(screen, color, (x, y), (x, y-radius), width)
60         pygame.draw.line(screen, color, (x, y), (x+radius, y), width)
61
62     if piece2:
63         start_angle = math.radians(90)
64         end_angle   = math.radians(180)
65         pygame.draw.arc(screen, color, position, start_angle, end_angle, width)
66         pygame.draw.line(screen, color, (x, y), (x, y-radius), width)
67         pygame.draw.line(screen, color, (x, y), (x-radius, y), width)
68
69     if piece3:
70         start_angle = math.radians(180)
71         end_angle   = math.radians(270)
72         pygame.draw.arc(screen, color, position, start_angle, end_angle, width)
73         pygame.draw.line(screen, color, (x, y), (x-radius, y), width)
74         pygame.draw.line(screen, color, (x, y), (x, y+radius), width)
75
76     if piece4:
77         start_angle = math.radians(270)
78         end_angle   = math.radians(360)
79         pygame.draw.arc(screen, color, position, start_angle, end_angle, width)
80         pygame.draw.line(screen, color, (x, y), (x, y+radius), width)
81         pygame.draw.line(screen, color, (x, y), (x+radius, y), width)
82
83     #finished?
84     if piece1 and piece2 and piece3 and piece4:
85         color = 0, 255, 0
86
87     pygame.display.update()

效果图:

绘制椭圆:

时间: 2024-10-16 18:47:34

pygame 练习之 PIE game (以及简单图形训练)的相关文章

利用QT中Qpainter画点,直线,弧线等简单图形

MyImgTest.h: #ifndef MYIMGTEST_H #define MYIMGTEST_H #include <QWidget> class MyImgTest : public QWidget { //Q_OBJECT public: MyImgTest(QWidget* parent = 0); ~MyImgTest(); void paintEvent(QPaintEvent *); }; #endif MyImgTest.cpp: #include "MyImg

学习笔记:HTML5 Canvas绘制简单图形

HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" width="1024" style="border:1px solid #aaa;text-align:center;"> 你的浏览器不支持Canvas,请更新浏览器再试!!! </canvas> 在canvas标签之间应该做浏览器是否支持的检测,

Java入门:绘制简单图形

在上一节,我们学习了如何使用swing和awt工具创建一个空的窗口,本节学习如何绘制简单图形. 基本绘图介绍 Java中绘制基本图形,可以使用Java类库中的Graphics类,此类位于java.awt包中.在我们自己的java程序文件中,要使用Graphics类就需要使用import java.awt.Graphics语句将Graphics类导入进来. Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形等.本项目仅用到画直线的功

零基础HTML5游戏制作教程 第2章 简单图形的绘制

第二章 简单图形的绘制 HTML5支持使用Canvas和SVG等方式在网页直接绘制图形.其中SVG适合用来绘制高质量的矢量图形,不适合用来做游戏,所以我们做游戏一般使用Canvas. 由于本教程以简单为原则,所以在初学阶段请不要把注意力分散到美工.画质等细节,我们只需要掌握矩形.多边形.圆形等简单图形的绘制,并对这些图形编程,使之具有一定的运动能力和游戏效果. (如果你偷懒,你甚至可以跳过本章中多边形和圆形的绘制,只学矩形,然后直接去看下一章.) 一,矩形的绘制 命令的格式是context.fi

Quartz 2D绘制简单图形

在Quartz 2D中,绘图是通过图形上下文进行绘制的,以下绘制几个简单的图形 首先先创建一个QuartzView.swift文件继承自UIView,然后实现drawRect方法: import UIKit class QuartzView: UIView { // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance duri

第05周实验:简单图形用户界面设计

什么是 GUI GUI 是 Graphical User Interface(图形用户界面)的缩写.在 GUI 中,并不只是键入文本和返回文本,用户可以看到窗口.按钮.文本框等图形,而且可以用鼠标点击,还可以通过键盘键入. 第一个 GUI 代码清单 6-1 小GUI程序“Hello,world” 运行程序,你会看到下面的界面(可能会有点慢) OK,我们利用下表来逐行解释代码清单 6-1的内容: app = wx.App() 每一个wxPython应用程序都是一个 wx.App实例 . wx.Fr

用CSS绘制简单图形

这里有篇文章, https://css-tricks.com/examples/ShapesOfCSS/  ,介绍了如何用只用1个元素和CSS规则绘制各种常见的图形: 从简单的矩形.三角形到复杂的月亮.放大镜甚至是太极图.  这种绘图方式主要用到了两类技巧: 一是使用伪元素, 二是设置图形的边框.特别是边框的使用,非常巧妙.从这些例子中可以发现:当元素的宽.高设置为0时,浏览器仍然会渲染元素的边框(即便box-sizing设置为了border-box,这时实际的宽/高会是边框的厚度之和),巧妙设

PHP 对象 多态性 简单图形计算器 高洛峰 细说PHP

主程序页面 test.php页面 <!DOCTYPE html> <html> <head>     <title>简单的图形计算器</title>     <meta http-equiv = "Content-Type" content = "text/html;charset=utf-8" /> </head> <body>     <center>  

Python验证码识别--利用pytesser识别简单图形验证码

一.探讨 识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域…… 简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形.以及利用计算机进行图形的计算.处理和显示的相关原理与算法.图形通常由点.线.面.体等几何元素和灰度.色彩.线型.线宽等非几何属性组成.计算机涉及到的几何图形处理一般有 2维到n维图形处理,边界区分,面积计算,体积计算,扭曲变形校正.对于颜色则有色彩空间的计算与转换,图形上色,阴影,色差处理等等. 在破解验证码中需要用