import sys, pygame
import random
from collections import deque
pygame.init()
#code:刘兴
size = width, height = 320, 240
black = 0, 0, 0
snakeNodeSize=(24,24)screen = pygame.display.set_mode(size)snakeNodeImage = pygame.image.load("snake1.png")
snakeNode = pygame.transform.scale(snakeNodeImage,snakeNodeSize)
snakeNodeRect = snakeNode.get_rect()
print(snakeNode.get_size())
print(snakeNodeRect.width,snakeNodeRect.height)
snakeNodeDeque=deque([])#蛇节点队列
fpsClock = pygame.time.Clock()
while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()runSpeed = [24, 24]runDirection=random.randint(1,4)#left,right,up,downif runDirection==1:runSpeed[1]=0 runSpeed[0]=-runSpeed[0]elif runDirection==2:runSpeed[1]=0     elif runDirection==3:runSpeed[0]=0runSpeed[1]=-runSpeed[1]elif runDirection==4:runSpeed[0]=0     snakeNodeRect= snakeNodeRect.move(runSpeed)if snakeNodeRect.left < 0 :snakeNodeRect.x=width-snakeNodeRect.widthif snakeNodeRect.right > width:snakeNodeRect.x=0    if snakeNodeRect.top < 0:snakeNodeRect.y=height-snakeNodeRect.heightif snakeNodeRect.bottom > height:snakeNodeRect.y=0snakeNodeHeadNew = snakeNodesnakeNodeHeadNewRect= snakeNodeRectsnakeNodeDeque.append((snakeNodeHeadNew,snakeNodeHeadNewRect))if len(snakeNodeDeque)>10:snakeNodeAbandon=snakeNodeDeque.popleft()del snakeNodeAbandonscreen.fill(black)   for snakeNodeData in snakeNodeDeque:screen.blit(snakeNodeData[0],snakeNodeData[1])pygame.display.update()fpsClock.tick(5)

趣学python3(26)-pygame-蛇身运动相关推荐

  1. 趣学python3(28)-pygame-蛇身随机运动(可gameover )

    import sys, pygame import random from collections import deque import numpy as np import copydef get ...

  2. 趣学python3(21)-pygame-surface位置及角色移动

    import sys, pygameimport random#code:刘兴pygame.init()size = width, height = 320, 240black = 0, 0, 0sn ...

  3. 趣学python3(10)-函数注释方法

    函数注释方法(Python3.5中引入). def add(x1:str,x2:str)->str:return x1 + x2 print(add(15,32)) print(add('abc ...

  4. 趣学python3(45)--调用C库-加解密

    cryptography库既包括高级规则,也包括普通密码算法(如对称密码.消息摘要和关键派生函数)的低级接口. $ pip install cryptography 例如,用密码学的高层对称加密方式加 ...

  5. 趣学python3(40)--TCP服务器和客户端(socketserver类)

    #!/usr/bin/env python3import socket import sysHOST="localhost" PORT=21200 ADDR=(HOST,PORT) ...

  6. 趣学python3(35)-Newton迭代法解一元方程

    牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法. 正割法避 ...

  7. 趣学python3(32)-enumerate,zip

    返回枚举对象.iterable必须是序列.迭代器或其他支持迭代的对象.enumerate()返回的迭代器的 next() 方法返回一个元组,该元组包含一个计数(从开始时默认为0)和在iterable上 ...

  8. 趣学python3(30)-字典

    s1={"名字":"张三","年龄":"25","特长":["绘画"," ...

  9. 趣学python3(29)-集合set

    mysets=set([]) mynums=[11,12,13,11,12,13] y=set([11,13,18]) for num in mynums:mysets.add(num) print( ...

最新文章

  1. Apple的LZF算法解析
  2. pandas中的括号索引
  3. java web 邮箱激活 与 忘记密码(重置密码)
  4. epic转移游戏_Epic游戏商城更改退款政策 和steam一模一样
  5. 前端学习(360):svn操作前期连接工作
  6. 美国一鹦鹉趁主人不在家上网购物:买的都是水果蔬菜
  7. php上传图片大小判断,jQuery实现判断上传图片类型和大小的方法示例
  8. 中if判断中文_Excel中的逻辑函数的使用技巧 IF函数中的多条件判断
  9. 在 ArcView 3.3 中裁剪 DEM 数据
  10. php滚动播报,卫星云图滚动播放(实时更新)
  11. java合成tif图片_C# 将图片合成tif文件
  12. Linux系统磁盘的挂入和装载
  13. 【昭阳】开源第1弹 mybatis-genl
  14. JDK的下载安装以及配置
  15. vs2015 + BabeLua + Cocos2d-x 3.10配置
  16. 双眼可以测距和建立立体环境,双摄像头可以吗?
  17. [译]C++17,标准库有哪些新变化?
  18. PVST的简单应用及其配置
  19. siris 显著性排序网络代码解读(training过程)Inferring Attention Shift Ranks of Objects for Image Saliency
  20. KILE5生成bin文件

热门文章

  1. bootstrap datetimepicker的一些小总结
  2. lnmp之php5.6.29安装
  3. 201506251117_《react——所需知识、主要技术》
  4. excel单元格下拉菜单
  5. mac 安装cmake
  6. 配置Memcache服务器并实现主从复制功能(repcached)
  7. [POJ1155]TELE
  8. PHP-7.1 源代码学习:字节码在 Zend 虚拟机中的解释执行 之 概述
  9. 【Mysql】 局域网远程连接问题
  10. day15 接口与异常