鱼C论坛

 找回密码
 立即注册
查看: 1213|回复: 5

[已解决]按教程做了一个让图片前后左右移动的代码,无效

[复制链接]
发表于 2019-10-24 20:53:57 | 显示全部楼层 |阅读模式

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

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

x
代码如下:
#coding=utf-8
import pygame as py
import sys

#初始化
py.init()

#实例化时间模块帧速率
clock=py.time.Clock()

size1=wigth,height=600,400
speed1=[0,0]
bg=(244,244,244)

#获得窗口 surface
screen1=py.display.set_mode(size1)

#设置窗口标题
py.display.set_caption("第一个游戏")

#获得图片
tu1=py.image.load("a.jpg")

#获得图片位置
position1=tu1.get_rect()

while True:
        #设置关闭
        for i in py.event.get():
                if i.type==py.QUIT:
                        sys.exit()
                       
        #设置键盘控制
                if i.type==py.KEYDOWN:
                        print('按下按钮')
                        if i.type==py.K_a:
                                print('按下按钮2')
                                speed1=[-1,0]
                        if i.type==py.K_d:
                                speed1=[1,0]
                        if i.type==py.K_w:
                                speed1=[0,-1]
                        if i.type==py.K_s:
                        speed1=[0,1]
        #设置移动
        position1=position1.move(speed1)
        #设置只能窗口内移动
        if position1.left<0 or position1.right>wigth:
                #反转图像
                tu1=py.transform.flip(tu1,True,False)
                speed1[0]=-speed1[0]
        if position1.top<0 or position1.bottom>height:
                speed1[1]=-speed1[1]

        #填充背景
        screen1.fill(bg)
       
        #图像写入背景
        screen1.blit(tu1,position1)
       
        #刷新界面
        py.display.flip()
       
        #延迟帧速率
        #py.time.delay(100)
       
        #设置帧速率
        clock.tick(30)

然而按asdw图片并没有动静。
在#设置键盘控制里面加上了print('按下按钮')和print('按下按钮2')
能打印“按下按钮”,但不能打印“按下按钮2”
求助大佬们,到底哪里错了呢?
最佳答案
2019-10-25 08:22:47
判断对应哪个键应该是i.key而不是type
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-24 21:26:47 From FishC Mobile | 显示全部楼层
是不是确定是键盘按下后,下边应该判断按下的键值等于而不是类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-25 08:22:47 | 显示全部楼层    本楼为最佳答案   
判断对应哪个键应该是i.key而不是type
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-10-25 15:50:31 | 显示全部楼层
塔利班 发表于 2019-10-25 08:22
判断对应哪个键应该是i.key而不是type

原来如此,太好了,非常感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-25 15:52:22 | 显示全部楼层
小小小菜菜菜 发表于 2019-10-24 21:26
是不是确定是键盘按下后,下边应该判断按下的键值等于而不是类型

谢谢,原来我key打成type了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-25 18:10:29 | 显示全部楼层
塔利班 发表于 2019-10-25 08:22
判断对应哪个键应该是i.key而不是type

附加一个问题。。。

我加了这一句
screen1=py.display.set_mode((1024,768),fullscreen | hwsurface)
想让他全屏和硬件加速
然后屏幕是从600*400变成1024*768了,但是却没有全屏。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 07:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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