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

import pygame
import sys
from pygame.locals import *
#初始化
pygame.init() size = width,height=600,400 #设置背景的大小
speed = [-2,1] #设置图片移动的速度
bg=(255,255,255)
fullscreen = False #初始化全屏为False
screen = pygame.display.set_mode(size,RESIZABLE) #屏幕大小为最初设置的大小,并且屏幕的大小可以调整 pygame.display.set_caption("Hello") #屏幕的名称 turtle = pygame.image.load("1.jpg") #本地导入的图片名称 position = turtle.get_rect() #图片的位置
l_head = turtle
r_head = pygame.transform.flip(turtle,True,False) #图片可以水平翻转不可垂直翻转
while True:
for event in pygame.event.get(): #退出程序
if event.type == pygame.QUIT:
sys.exit() if event.type == KEYDOWN: #键盘输入对现实的屏幕和里面的图片进行操作
if event.key == K_LEFT: #图片的左右上下移动 我用的是上下左右,是米字形并且左右移动转换方向
turtle = l_head
speed = [-1,0]
speed = [-2,-1]
if event.key == K_RIGHT:
turtle = r_head
speed = [1,0]
speed = [2,1]
if event.key == K_UP:
#speed = [0,-1]
speed = [2,-1]
if event.key == K_DOWN:
#speed = [0,1]
speed = [-2,1]
if event.key == K_F11: #F11为设置屏幕全屏模式
fullscreen = not fullscreen
if fullscreen:
screen = pygame.display.set_mode((1024,768),FULLSCREEN|HWSURFACE)
width,height = 1024,768
else:
screen = pygame.display.set_mode(size) if event.type == VIDEORESIZE: #对屏幕进行大小的更改,并且输出当前调整的屏幕的大小,并且更新当前的screen的大小
size = event.size
width,height = size
print(size)
screen = pygame.display.set_mode(size,RESIZABLE) if position.bottom > height: #每当屏幕大小改变时对乌龟的位置进行修改,防止当屏幕缩小时,覆盖乌龟,乌龟不能动的时候
position.bottom = height
if position.right > width:
position.right = width
if position.top < 0:
position.top = 0
if position.left < 0:
position.left = 0
position = position.move(speed)
if position.left < 0 or position.right > width: #防止乌龟跑出屏幕 turtle = pygame.transform.flip(turtle,True,False)
speed[0] = -speed[0]
if position.top < 0 or position.bottom > height: speed[1] = -speed[1]
screen.fill(bg) #设置当前的屏幕为初始的默认的bg的颜色 在内存中进行,当更新完毕之后通过更新显示
screen.blit(turtle,position) #将移动的Turtle镶嵌到屏幕中 在内存中进行,当更新完毕之后通过更新显示
pygame.display.flip() #屏幕进行更新
pygame.time.delay(10) #时延为10毫秒
# 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. BZOJ 4184 shallot 线性基+分治

    Description 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏. 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且让小葱从 ...

  2. spring-data-jpa 简单使用心得

    对于总是使用mybatis的我,突发奇想的想使用spring-data-jpa搭一个小环境,这几天处处碰壁,现总结如下: 环境采用springboot maven需要导入: <dependenc ...

  3. ng2 搭建本地开发环境

    git clone https://github.com/angular/quickstart.git quickstart cd quickstart npm install npm start h ...

  4. lintcode-108-分割回文串 II

    108-分割回文串 II 给定一个字符串s,将s分割成一些子串,使每个子串都是回文. 返回s符合要求的的最少分割次数. 样例 比如,给出字符串s = "aab", 返回 1, 因为 ...

  5. A1

    It’s surprising what you can find at the end of your garden. Wild flowers... and even smaller yet, i ...

  6. Bjarne Stroustrup语录2

    一.致读者  1. 在编程序时,你是在为你针对某个问题的解决方案中的思想建立起一种具体表示.让程序的结构尽可能地直接反映这些思想:   ★.如果你能把“它”看成一个独立的概念,就把它做成一个类.    ...

  7. 简单配置 Tomcat 的 Server.xml(war包发布)

    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" ...

  8. 【题解】CQOI2017老C的键盘

    建议大家还是不要阅读此文了,因为我觉得这题我的解法实在是又不高效又不优美……只是想要记录一下,毕竟是除了中国象棋之外自己做出的组合dp第一题~ 首先如果做题做得多,比较熟练的话,应该能一眼看出这题所给 ...

  9. [HDU3710] Battle Over Cities [树链剖分+线段树+并查集+kruskal+思维]

    题面 一句话题意: 给定一张 N 个点, M 条边的无向连通图, 每条边上有边权 w . 求删去任意一个点后的最小生成树的边权之和. 思路 首先肯定要$kruskal$一下 考虑$MST$里面去掉一个 ...

  10. Angular 表单验证 基础篇

    <div class="nav"> <h4>表单验证</h4> <form ng-app="myApp" name=& ...