用pygame写游戏——两色调色板 解释

  1. 颜色的混合

    很多时候我们还需要混合颜色,比如一个僵尸在路过一个火山熔岩坑的时候,它会由绿色变成橙红色,再变为正常的绿色,这个过程必须表现的很平滑,这时候我们就需要混合颜色。

    我们用一种叫做“线性插值(linear interpolation)”的方法来做这件事情。为了找到两种颜色的中间色,我们将这第二种颜色与第一种颜色的差乘以一个0~1之间的小数,然后再加上第一种颜色就行了。如果这个数为0,结果就完全是第一种颜色;是1,结果就只剩下第二种颜色;中间的小数则会皆有两者的特色。

    #!/usr/bin/env python  
  2.    
  3. import pygame  
  4. frompygame.localsimport*  
  5. fromsysimportexit  
  6.    
  7. pygame.init()  
  8. screen=pygame.display.set_mode((640,480),0,32)  #建立窗口
  9.    
  10. color1=(221,99,20)  
  11. color2=(96,130,51)  #初始选择的两种即将被混合的颜色
  12. factor=0.  
  13.    
  14. def blend_color(color1,color2,blend_factor):  
  15.     r1,g1,b1=color1  
  16.     r2,g2,b2=color2  #颜色的rgb赋值
  17.     r=r1+(r2-r1)*blend_factor  
  18.     g=g1+(g2-g1)*blend_factor  #影响因素 分别赋值
  19.     b=b1+(b2-b1)*blend_factor  
  20.     returnint(r),int(g),int(b)  
  21.    
  22. while True:  
  23.    
  24.     for event in pygame.event.get():  
  25.         if event.type==QUIT:  
  26.             exit()  
  27.    
  28.     screen.fill((255,255,255))  
  29.    
  30.     tri=[(0,120),(639,100),(639,140)]  
  31.     pygame.draw.polygon(screen,(0,255,0),tri)  #(按钮范围的多边形)
  32.     pygame.draw.circle(screen,(0,0,0),(int(factor*639.0),120),10)  #按钮的圆圈
  33.    
  34.     x,y=pygame.mouse.get_pos()  
  35.     ifpygame.mouse.get_pressed()[0]:  
  36.         factor=x/639.0  
  37.         pygame.display.set_caption("Pygame Color Blend Test - %.3f"%factor)  #窗口标题及因素百分比
  38.    
  39.     color=blend_color(color1,color2,factor)  
  40.     pygame.draw.rect(screen,color,(0,240,640,240))  
  41.    
  42.     pygame.display.update()  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用Python和Pygame游戏-从入门到精通 中文pdf版本 部分目录如下: 系统学习部分 用Python和Pygame游戏-从入门到精通(1) Pygame的历史,安装Pygame,第一个Pygame脚本 用Python和Pygame游戏-从入门到精通(2) 理解游戏中的事件 用Python和Pygame游戏-从入门到精通(3) Pygmae的屏幕显示 用Python和Pygame游戏-从入门到精通(4) 使用字体模块,Pygame 的错误处理 用Python和Pygame游戏-从入门到精通(5) 像素和颜色 用Python和Pygame游戏-从入门到精通(6) 使用图像,理解Surface 用Python和Pygame游戏-从入门到精通(7) 绘制图形 用Python和Pygame游戏-从入门到精通(8) 产生动画和控制帧率 用Python和Pygame游戏-从入门到精通(9) 向量基础 用Python和Pygame游戏-从入门到精通(10) 用户输入 用Python和Pygame游戏-从入门到精通(11) 使用鼠标控制精灵。一个在鼠标旁不断游动的小鱼的例程。 用Python和Pygame游戏-从入门到精通(12) 手柄操作,暂无 用Python和Pygame游戏-从入门到精通(13) AI初探 用Python和Pygame游戏-从入门到精通(14) 状态机 用Python和Pygame游戏-从入门到精通(15) 开始AI编程 用Python和Pygame游戏-从入门到精通(16) AI编程总结。一个蚂蚁采集食物,攻击蜘蛛的系统模拟例程。 用Python和Pygame游戏-从入门到精通(17) 3D基础 用Python和Pygame游戏-从入门到精通(18) 3D中的概念 用Python和Pygame游戏-从入门到精通(19) 第一个 3D 程序(伪)。一个空间中的3D立方体的例程。 用Python和Pygame游戏-从入门到精通(20) 声音原理 用Python和Pygame游戏-从入门到精通(21) 使用声音,播放音效。一个重力模拟金属球碰撞的例程。 用Python和Pygame游戏-从入门到精通(22) 播放长时间的背景音乐。一个建议播放器的例程。 额外提高部分 用Python和Pygame游戏-从入门到精通(py2exe编) 使用py2exe将pygame脚本转换为exe可执行文件 用Python和Pygame游戏-从入门到精通(Sprite篇) 介绍Pygame中不是必须但又很重要的Sprite模块,游戏中的角色实现,大多都要靠它。 实践部分 用Python和Pygame游戏-从入门到精通(实战一:涂鸦画板1) 一个类似于Windows画图板的小玩意儿,精简了很多功能但是有更帅的笔刷。这一次主要是将笔刷的实现。 用Python和Pygame游戏-从入门到精通(实战一:涂鸦画板2) 加上了按钮,我们的涂鸦画板可以用了! 用Python和Pygame游戏-从入门到精通(实战二:恶搞俄罗斯方块1) 俄罗斯方块,却有不是普通的俄罗斯方块。 用Python和Pygame游戏-从入门到精通(实战二:恶搞俄罗斯方块2) 代码构架 用Python和Pygame游戏-从入门到精通(实战二:恶搞俄罗斯方块3) 实现说明 用Python和Pygame游戏-从入门到精通(实战二:恶搞俄罗斯方块4) 完成,提供下载 用Python和Pygame游戏-从入门到精通(实战三:植物大战僵尸1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值