利用pygame制作魔方的平面展示

为了更方便地验证我们魔方变换代码的准确性,特地利用pyggame设置一个简单的平面展示,初步展示我们的魔方操作

利用pygame模块的函数制作界面

screen = pygame.display.set_mode((400,480))  //创建一个宽度400、高度480的窗口

pygame.draw.rect(screen,(255,255,255),(x,y,width,length),3)  //用白色(255,255,255)填充矩形的外边框,3代表边框的宽度

pygame.draw.rect(screen,color,(x,y,34,34),0)  //当设置为0时代表矩形全填充,34=40-3*2,这样做是因为做出来的界面好看一点,白边更方便我们定位魔方的四个格子

全部代码如下:

 1 import pygame
 2 from pygame.locals import *
 3
 4 blue = 114,187,255
 5 white = 230,230,255
 6 yellow = 175,232,65
 7 red = 178,71,61
 8 orange = 255,129,66
 9 green = 0,203,40
10
11 colors = [red,yellow,blue,white,green,orange]
12
13 def initialize(screen,x,y):
14     pygame.draw.rect(screen,(255,255,255),(x,y,40,40),3)
15     pygame.draw.rect(screen,(255,255,255),(x+40,y,40,40),3)
16     pygame.draw.rect(screen,(255,255,255),(x,y+40,40,40),3)
17     pygame.draw.rect(screen,(255,255,255),(x+40,y+40,40,40),3)
18
19 def color_side(color,x,y,z,screen):
20     if(z==0 or z==1 or z==5):
21         pygame.draw.rect(screen,colors[color[0]],(x,y,34,34),0)
22         pygame.draw.rect(screen,colors[color[1]],(x+40,y,34,34),0)
23         pygame.draw.rect(screen,colors[color[3]],(x,y+40,34,34),0)
24         pygame.draw.rect(screen,colors[color[2]],(x+40,y+40,34,34),0)
25     elif(z==2):
26         pygame.draw.rect(screen,colors[color[1]],(x,y,34,34),0)
27         pygame.draw.rect(screen,colors[color[2]],(x+40,y,34,34),0)
28         pygame.draw.rect(screen,colors[color[0]],(x,y+40,34,34),0)
29         pygame.draw.rect(screen,colors[color[3]],(x+40,y+40,34,34),0)
30     elif(z==3):
31         pygame.draw.rect(screen,colors[color[2]],(x,y,34,34),0)
32         pygame.draw.rect(screen,colors[color[3]],(x+40,y,34,34),0)
33         pygame.draw.rect(screen,colors[color[1]],(x,y+40,34,34),0)
34         pygame.draw.rect(screen,colors[color[0]],(x+40,y+40,34,34),0)
35     elif(z==4):
36         pygame.draw.rect(screen,colors[color[3]],(x,y,34,34),0)
37         pygame.draw.rect(screen,colors[color[0]],(x+40,y,34,34),0)
38         pygame.draw.rect(screen,colors[color[2]],(x,y+40,34,34),0)
39         pygame.draw.rect(screen,colors[color[1]],(x+40,y+40,34,34),0)
40
41 def color_update(matrix,screen):
42     color_side(matrix[0],163,163,0,screen)
43     color_side(matrix[1],163,243,1,screen)
44     color_side(matrix[2],243,163,2,screen)
45     color_side(matrix[3],163,83,3,screen)
46     color_side(matrix[4],83,163,4,screen)
47     color_side(matrix[5],163,323,5,screen)
48
49 def paint(matrix):
50     screen = pygame.display.set_mode((400,480))
51     screen.fill((155,155,155))
52     initialize(screen,160,160)
53     initialize(screen,160,240)
54     initialize(screen,240,160)
55     initialize(screen,160,80)
56     initialize(screen,80,160)
57     initialize(screen,160,320)
58     color_update(matrix,screen)
59     pygame.display.update()
60
61 paint([[0,0,0,0],[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4],[5,5,5,5]])

最终得到结果如下:

时间: 2024-11-09 02:43:41

利用pygame制作魔方的平面展示的相关文章

利用replaceChild制作简单的吞噬效果【jsDEMO】

[功能说明] 利用replaceChild制作简单的吞噬效果 [HTML代码说明] <ul class="list" id="list"> <li class="in">1</li> <li class="in">2</li> <li class="in">3</li> <li class="in"

利用removeChild制作简单的倒序删除效果【jsDEMO】

[功能说明] 利用removeChild制作简单的倒序删除效果 [HTML代码说明] <ul class="list" id="list"> <li class="in">1</li> <li class="in">2</li> <li class="in">3</li> <li class="in"

利用insertBefore制作简单的循环插空效果【jsDEMO】

[功能说明] 利用insertBefore制作简单的循环插空效果 [HTML代码说明] <ul class="list" id="list"> <li class="in">1</li> <li class="in">2</li> <li class="in">3</li> <li class="in&quo

利用aiohttp制作异步爬虫

简介asyncio可以实现单线程并发IO操作,是Python中常用的异步处理模块.关于asyncio模块的介绍,笔者会在后续的文章中加以介绍,本文将会讲述一个基于asyncio实现的HTTP框架--aiohttp,它可以帮助我们异步地实现HTTP请求,从而使得我们的程序效率大大提高.本文将会介绍aiohttp在爬虫中的一个简单应用.在原来的项目中,我们是利用Python的爬虫框架scrapy来爬取当当网图书畅销榜的图书信息的.在本文中,笔者将会以两种方式来制作爬虫,比较同步爬虫与异步爬虫(利用a

ArcGIS利用DEM制作简单三维

利用DEM数据镶嵌后,矢量数据裁剪得到研究范围的DEM数据,在ARCScene中进行三维制作 ArcGIS利用DEM制作简单三维 点击学习我的系统教程哦

【PhotoShop】利用PS制作唯美咖啡泡

难得喝杯咖啡,怎么能不拍张了(黑咖啡太苦经常喝实在受不了!) 得到如下图 看着还不错,可是总感觉空空荡荡的,所以就拿来PS练手了.最终效果图如下: 下面讲下制作过程: 首先是给照片加下咖啡泡的效果,找一张有咖啡泡的咖啡~然后选区把咖啡泡部分抠出来 把图片抠出来调整大小适应杯子,然后自然是选择混合选项让他更逼真了. 我这里选择的是点光,当然可以根据个人图片效果选择了.为了让图片更加逼真,我为该图层创建蒙版,并且用黑色画笔涂抹阴暗处(让阴暗处更阴暗)而显得有层次感.效果如图: 现在在加点文字吧.下面

利用CSS制作静态网页的注意事项

利用CSS制作静态网页主要是在<head>里面使用外联CSS文件来赋予网页样式 首先用div分区块,了解网页布局,脑子里面有个大概的页面布局 目前学习写的几种的网页布局可以分为以下几种情况: 1.页面中间 centen ,两边留白 :直接测量 centen 内容的宽度和高度,利用 maigin:auto 让内容居中即可: 2.页面顶部 head 满页面内容 ,下面centen 居中 ,两边留白:head 宽度设为100%,中间centen 内容的宽度和高度,利用 maigin:auto 让内容

利用QuickCHM制作chm

CHM是一种常见的帮助文件格式,也是电子书的一种格式. 下面是使用QuickCHM制作chm的步骤: 1.先将所有的word文档存储为mht格式,点击,文件--另存为网页,如下 2.确保所有的word文档都已经拥有了自己的mht备份. 3.用QuickCHM导入工程,点击,文件--CHM向导,选择文件夹路径 4.更改章节名称,如下 5.更改章节图标,如下 6.添加新的章节,例如添加index章节 7.更改章节的结构,直接在左侧的树上拖动节点进行编辑 8.保存工程,点击保存按钮,会发现文件夹下多了

如何利用PhoneGap制作地图APP

摘要:百度地图API是一套由javascript编写的地图程序接口,按说它应该运行在浏览器上.现在,只要利用PhoneGap,我们就能开发出移动平台上能使用的APP了! --------------------------------------------- 一.安装平台 PhoneGap支持5种平台,IOS,安卓,黑莓,WebOS,塞班. 我们下面以IOS为例,开发一个定位的APP. 1.下载xCode 注意看清楚,狮子系统和雪豹系统的安装程序是不一样的. a.可以到苹果应用商店app st