鱼C论坛

 找回密码
 立即注册
查看: 2625|回复: 16

[学习笔记] Python学习心情记录 2020/3/25

[复制链接]
发表于 2020-3-25 15:02:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 wuqramy 于 2020-3-25 15:48 编辑

@DavidCT ,快来,pygame第二期!

首先下载pygame第三方库,在cmd中输入以下命令:
pip install pygame

其次上附件:
注!:请把图片文件放在一个文件夹里,然后在图片名前面加上文件夹路径!
资源打包:
Bag2_images.zip (170.07 KB, 下载次数: 6)

最后上代码:
本次增加的功能:可以通过键盘上的上下左右按键控制乌龟的移动
import pygame
import pygame.transform
import sys
from pygame.locals import *
pygame.init()
size = width,height = 600,400
speed = [-2,1]
bg = (255,255,255)
# 加载帧数调节器
clock = pygame.time.Clock()
# 显示窗口
screen = pygame.display.set_mode(size)
# 加载背景
background = pygame.image.load('grass.jpg')
screen.blit(background,(0,0))
# 显示窗口标题
pygame.display.set_caption('running turtle')
# 加载图片
turtle = pygame.image.load('turtle.png')
# 获得图像的位置矩形
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 == QUIT:
            sys.exit()
        if event.type == KEYDOWN:
            if event.key == K_LEFT:
                turtle = l_head
                speed = [-1,0]
            if event.key == K_RIGHT:
                turtle = r_head
                speed = [1,0]
            if event.key == K_UP:
                speed = [0,-1]
            if event.key == K_DOWN:
                speed = [0,1]
    # 移动图片
    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)
    # 更新背景
    screen.blit(background,(0,0))
    # 更新图片
    screen.blit(turtle,position)
    pygame.display.flip()
    # 延时10毫秒
    #pygame.time.delay(10)
    # 设置帧数
    clock.tick(100)
在附上一个飞檐走壁的龟兄代码:
import pygame
import pygame.transform
import sys
from pygame.locals import *
pygame.init()
size = width,height = 600,400
bg = (255,255,255)
clock = pygame.time.Clock()
# 显示窗口
screen = pygame.display.set_mode(size)
# 显示窗口标题
pygame.display.set_caption('running turtle')
ratio = 1.0
# 加载图片
oturtle = pygame.image.load('turtle.png')
turtle = oturtle
# 获得图像的位置矩形
oturtle_rect = oturtle.get_rect()
position = turtle_rect = oturtle_rect
speed = [5,0]
turtle_right = pygame.transform.rotate(turtle,90)
turtle_top = pygame.transform.rotate(turtle,180)
turtle_left = pygame.transform.rotate(turtle,270)
turtle_bottom = turtle
turtle = turtle_top
fullscreen = False
l_head = turtle
r_head = pygame.transform.flip(turtle,True,False)
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
        if event.type == KEYDOWN:
            if event.key == K_LEFT:
                turtle = l_head
                speed = [-1,0]
            if event.key == K_RIGHT:
                turtle = r_head
                speed = [1,0]
            if event.key == K_UP:
                speed = [0,-1]
            if event.key == K_DOWN:
                speed = [0,1]
            # 设置全屏
            if event.key == K_F11:
                fullscreen = not fullscreen
                if fullscreen:
                    screen = pygame.display.set_mode((1366,768),FULLSCREEN | HWSURFACE)
                    width,height = 1366,768
                else:
                    screen = screen = pygame.display.set_mode(size)
            if event.key == K_EQUALS or event.key == K_MINUS or event.key == K_SPACE:
                if event.key == K_EQUALS and ratio < 2:
                    ratio += 0.1
                if event.key == K_MINUS and ratio > 0.5:
                    ratio -= 0.1
                if event.key == K_SPACE:
                    ratio = 1.0
                turtle = pygame.transform.smoothscale(oturtle,\
                    (int(oturtle_rect.width * ratio),\
                    int(oturtle_rect.height * ratio)))
                l_head = turtle
                r_head = pygame.transform.flip(turtle,True,False)
        # 用户调整窗口尺寸
        if event.type == VIDEORESIZE:
            size = event.size
            width,height = size
            screen = screen = pygame.display.set_mode(size,RESIZABLE)
    if position.right > width:
        turtle = turtle_right
        position = turtle_rect = turtle.get_rect()
        position.left = width - turtle_rect.width
        speed = [0,5]
    if position.bottom > height:
        turtle = turtle_bottom
        position = turtle_rect = turtle.get_rect()
        position.left = width - turtle_rect.width
        position.top = height - turtle_rect.height
        speed = [-5,0]
    if position.left < 0:
        turtle = turtle_left
        position = turtle_rect = turtle.get_rect()
        position.top = height - turtle_rect.height
        speed = [0,-5]
    if position.top < 0:
        turtle = turtle_top
        position = turtle_rect = turtle.get_rect()
        speed = [5,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)
    # 更新图片
    screen.blit(turtle,position)
    # 更新背景
    pygame.display.flip()
    # 延时10毫秒
    #pygame.time.delay(10)
    # 设置帧数
    clock.tick(60)

哈哈,有不有趣呢?
如果你喜欢,一定别忘了:
don&#039;t forget.gif

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
新雨花石 + 1 + 1 感谢楼主无私奉献!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-25 15:34:37 | 显示全部楼层
你也换鼠标光标啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-25 15:41:13 | 显示全部楼层
本帖最后由 wuqramy 于 2020-3-25 15:44 编辑
乘号 发表于 2020-3-25 15:34
你也换鼠标光标啦


你不试试代码吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 15:51:30 | 显示全部楼层
乘号 发表于 2020-3-25 15:34
你也换鼠标光标啦

其实你可以用别人的图
直接拽到桌面就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 16:19:55 | 显示全部楼层
乘号 发表于 2020-3-25 15:34
你也换鼠标光标啦

就是和小甲鱼一样的那个吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 17:26:28 | 显示全部楼层
这两个高级了。楼主厉害了

004.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-25 17:32:43 | 显示全部楼层
DavidCT 发表于 2020-3-25 17:26
这两个高级了。楼主厉害了

哈哈,飞檐走壁的乌龟!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-25 17:33:45 | 显示全部楼层
DavidCT 发表于 2020-3-25 17:26
这两个高级了。楼主厉害了

其实还能加声音,但是文件太大无法上传...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 17:38:15 | 显示全部楼层
wuqramy 发表于 2020-3-25 17:33
其实还能加声音,但是文件太大无法上传...

直接放到github啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-25 17:48:00 | 显示全部楼层
DavidCT 发表于 2020-3-25 17:38
直接放到github啊

github是啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 17:53:47 | 显示全部楼层
石头学习来了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-25 17:54:59 | 显示全部楼层

哈哈你好花石!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 18:00:52 | 显示全部楼层
支持 大佬!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-25 18:01:09 | 显示全部楼层

谢谢 支持!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 18:48:36 | 显示全部楼层
六小鸭 发表于 2020-3-25 16:19
就是和小甲鱼一样的那个吗

嗯嗯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 18:55:50 | 显示全部楼层

我也换了

评分

参与人数 1贡献 +3 收起 理由
zedi + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-27 09:24:00 | 显示全部楼层
过来测试了, cut-turtle_1.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 13:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表