来于----@小甲鱼工作室

  1. import pygame
  2. import sys
  3. from pygame.locals import *
  4. #初始化
  5. pygame.init()
  6.  
  7. size = width,height=600,400 #设置背景的大小
  8. speed = [-2,1] #设置图片移动的速度
  9. bg=(255,255,255)
  10. fullscreen = False #初始化全屏为False
  11. screen = pygame.display.set_mode(size,RESIZABLE) #屏幕大小为最初设置的大小,并且屏幕的大小可以调整
  12.  
  13. pygame.display.set_caption("Hello") #屏幕的名称
  14.  
  15. turtle = pygame.image.load("1.jpg") #本地导入的图片名称
  16.  
  17. position = turtle.get_rect() #图片的位置
  18. l_head = turtle
  19. r_head = pygame.transform.flip(turtle,True,False) #图片可以水平翻转不可垂直翻转
  20. while True:
  21. for event in pygame.event.get(): #退出程序
  22. if event.type == pygame.QUIT:
  23. sys.exit()
  24.  
  25. if event.type == KEYDOWN: #键盘输入对现实的屏幕和里面的图片进行操作
  26. if event.key == K_LEFT: #图片的左右上下移动 我用的是上下左右,是米字形并且左右移动转换方向
  27. turtle = l_head
  28. speed = [-1,0]
  29. speed = [-2,-1]
  30. if event.key == K_RIGHT:
  31. turtle = r_head
  32. speed = [1,0]
  33. speed = [2,1]
  34. if event.key == K_UP:
  35. #speed = [0,-1]
  36. speed = [2,-1]
  37. if event.key == K_DOWN:
  38. #speed = [0,1]
  39. speed = [-2,1]
  40. if event.key == K_F11: #F11为设置屏幕全屏模式
  41. fullscreen = not fullscreen
  42. if fullscreen:
  43. screen = pygame.display.set_mode((1024,768),FULLSCREEN|HWSURFACE)
  44. width,height = 1024,768
  45. else:
  46. screen = pygame.display.set_mode(size)
  47.  
  48. if event.type == VIDEORESIZE: #对屏幕进行大小的更改,并且输出当前调整的屏幕的大小,并且更新当前的screen的大小
  49. size = event.size
  50. width,height = size
  51. print(size)
  52. screen = pygame.display.set_mode(size,RESIZABLE)
  53.  
  54. if position.bottom > height: #每当屏幕大小改变时对乌龟的位置进行修改,防止当屏幕缩小时,覆盖乌龟,乌龟不能动的时候
  55. position.bottom = height
  56. if position.right > width:
  57. position.right = width
  58. if position.top < 0:
  59. position.top = 0
  60. if position.left < 0:
  61. position.left = 0
  62. position = position.move(speed)
  63. if position.left < 0 or position.right > width: #防止乌龟跑出屏幕
  64.  
  65. turtle = pygame.transform.flip(turtle,True,False)
  66. speed[0] = -speed[0]
  67. if position.top < 0 or position.bottom > height:
  68.  
  69. speed[1] = -speed[1]
  70. screen.fill(bg) #设置当前的屏幕为初始的默认的bg的颜色 在内存中进行,当更新完毕之后通过更新显示
  71. screen.blit(turtle,position) #将移动的Turtle镶嵌到屏幕中 在内存中进行,当更新完毕之后通过更新显示
  72. pygame.display.flip() #屏幕进行更新
  73. pygame.time.delay(10) #时延为10毫秒
  74. # clock.tick(200)

pygame --- 可怜的小乌龟的更多相关文章

  1. pygame (1) 移动小乌龟

    小乌龟图片素材: 第一个简单的小游戏: 小乌龟会不断的移动,并且每当到达窗口的左右边界的时候,还会自动的掉头. 源码: import pygame import sys# 导入sys模块,退出时使用 ...

  2. 从Scratch到Python——python turtle 一种比pygame更加简洁的实现

    从Scratch到Python--python turtle 一种比pygame更加简洁的实现 现在很多学校都开设了Scratch课程,学生可以利用Scratch创作丰富的作品,然而Scratch之后 ...

  3. 让小乌龟可以唱歌——对Python turtle进行拓展

    在Scratch中,小猫是可以唱歌的,而且Scratch的声音木块有着丰富的功能,在这方面Python turtle略有欠缺,今天我们就来完善一下. Python声音模块 Python处理声音的模块很 ...

  4. Python Pygame (4) 图像的变换

    Pygame中的transform模块可以使得你能够对图像(也就是Surface对象)做各种动作,列如左右上下翻转,按角度转动,放大缩小......,并返回Surface对象.这里列举了transfo ...

  5. Python Pygame (2) 事件

    程序在运行期间会产生许许多多的事件,事件随时可能发生(如移动鼠标,点击鼠标,敲击键盘按键),Pygame的做法是将所有的事件都放到事件队列里,通过for循环语句迭代取出每一条事件,然后处理关注的事件即 ...

  6. pygame---制作一只会转弯的小乌龟

    Pygame Pygame是跨平台Python模块,专为电子游戏设计,包含图像.声音.建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚. 包含图像.声音. 建立在S ...

  7. pygame学习笔记

    pygame参考文档pdf版:pygame API html版 pygame API 石头剪子布的简单小游戏,待改进的地方,自适应大小.感兴趣的小伙伴可以依据get_surface()返回值(即当前窗 ...

  8. centos上安装pygame

    安装前依赖包检查及安装 python-devel SDL_image-devel SDL_mixer-devel SDL_ttf-devel SDL-devel numpy subversion po ...

  9. pygame开发PC端微信打飞机游戏

    pygame开发PC端微信打飞机游戏 一.项目简介 1. 介绍 本项目类似曾经火爆的微信打飞机游戏.游戏将使用Python语言开发,主要用到pygame的API.游戏最终将会以python源文件gam ...

随机推荐

  1. oracle补充

    索引 索引是若干数据行的关键字的列表,查询数据时,通过索引中的关键字可以快速定位到要访问的记录所在的数据块,从而大大减少读取数据的I/O次数,因此可以显著的提高性能 创建索引的SQL 把下面表中的na ...

  2. 当xml结构很深时候 可以通过父节点删除子元素

    当xml结构很深时候 可以通过父节点删除子元素

  3. 【算法】分块——教主的魔法&不勤劳的图书管理员

    由不勤劳的图书管理员带入了分块的坑,深深地被其暴力与优雅所征服.分块的实质就是将暴力块状封装起来,一整块的部分就一整块处理,零碎的部分就怎么暴力怎么来.因为分块大小的原因,限制了零碎部分数据的数量级, ...

  4. [洛谷P2711]小行星

    题目大意:有$n$颗行星,每颗行星的位置是$(x,y,z)$.每次可以消除一个面(即$x,y$或$z$坐标相等)的行星,求消除这些行星的最少次数. 题解:最小割,对于每一颗小行星,从 x 面的出点向  ...

  5. [51nod1482]部落信号 单调栈

    ~~~题面~~~ 题解: 可以发现这是一道单调栈的题目,首先来考虑数字没有重复时如何统计贡献. 因为这是一个环,而如果我们从最高的点把环断开,并把最高点放在链的最后面(顺时针移动),那么因为在最高点两 ...

  6. [Leetcode] Balanced binary tree平衡二叉树

    Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...

  7. Ubuntu下安装LNMP之php7的安装并配置Nginx支持php及卸载php

    据了解,php7是比之前的版本性能快很多的.http://php.net/get/php-7.2.2.tar.gz/from/a/mirror 安装前也可提前将相关依赖库安装好,或者在安装php时若安 ...

  8. WCF分布式开发步步为赢(12):WCF事务机制(Transaction)和分布式事务编程

    今天我们继续学习WCF分布式开发步步为赢系列的12节:WCF事务机制(Transaction)和分布式事务编程.众所周知,应用系统开发过程中,事务是一个重要的概念.它是保证数据与服务可靠性的重要机制. ...

  9. BZOJ1051:受欢迎的牛(并查集 / Tarjan)

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 8161  Solved: 4460 Description ...

  10. dbcp基本配置和重连配置

    转载自:http://agapple.iteye.com/blog/772507 最近在看一些dbcp的相关内容,顺便做一下记录,免得自己给忘记了. 1. 引入dbcp (选择1.4) Java代码  ...