如何解决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 举报,一经查实,本站将立刻删除。