微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

win.display.blit(rightImg, (arrX-20,arrY-20)) AttributeError: 'pygame.Surface' 对象没有属性 'display'

如何解决win.display.blit(rightImg, (arrX-20,arrY-20)) AttributeError: 'pygame.Surface' 对象没有属性 'display'

我对 python 和 pygame 有点陌生,我目前正在 pygame 中开发类似 fnf 的游戏,但是当我尝试制作下降箭头时,AttributeError: 'pygame.Surface' object has no attribute 'display' 出现.我查看了其他人的项目,但找不到问题

import pygame,sys,random

pygame.init()

win = pygame.display.set_mode((500,500))

pygame.display.set_caption("Python Night Funkin'")

upImg = pygame.image.load("up.png")
downImg = pygame.image.load("down.png")
rightImg = pygame.image.load("right.png")
leftImg = pygame.image.load("left.png")


test = 0
x = 0
y = 0
arrX = 0
arrY = 0
height = 500
width = 500
arrHeight = 20
arrWidth = 20
arrSpeed = 5

def drawWindow():
    win.fill((0,0))
    pygame.draw.rect(win,(20,20,20),(70,370,60,60))
    pygame.draw.rect(win,(170,(270,(370,(255,0),(x-20,y-20,40,40))
    if arrX == 100:
        win.display.blit(rightImg,(arrX-20,arrY-20))
    if arrX == 200:
        win.display.blit(downImg,arrY-20))
    if arrX == 300:
        win.display.blit(upImg,arrY-20))
    if arrX == 400:
        win.display.blit(leftImg,arrY-20))
    pygame.display.update()
clock = pygame.time.Clock();

run = True
arrowX = [100,200,300,400]
Arrow = []
while run:
    clock.tick(30);
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

解决方法

package hello.approach3; import java.io.IOException; import java.util.Collection; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; import org.springframework.http.HttpHeaders; public class SameSiteFilter implements javax.servlet.Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException { chain.doFilter(request,response); addSameSiteCookieAttribute((HttpServletResponse) response); // add SameSite=strict cookie attribute } private void addSameSiteCookieAttribute(HttpServletResponse response) { Collection<String> headers = response.getHeaders(HttpHeaders.SET_COOKIE); boolean firstHeader = true; for (String header : headers) { // there can be multiple Set-Cookie attributes if (firstHeader) { response.setHeader(HttpHeaders.SET_COOKIE,String.format("%s; %s",header,"SameSite=Strict")); firstHeader = false; continue; } response.addHeader(HttpHeaders.SET_COOKIE,"SameSite=Strict")); } } @Override public void destroy() { } } 是一个 win 并且没有 Surface 属性,而是一个 display 函数。

所以代替

blit

简单使用

win.display.blit(rightImg,(arrX-20,arrY-20))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。