pygame鼠标事件不执行是event问题还是刷新不成功问题?

pygame编写游戏的过程中,程序可以执行,但是对于鼠标点击的事件过程没有反应(设定为:左键点击往左移直到鼠标松开,右键同理),在鼠标点击过程中,并没有发生任何移动,不知道这是事件的问题,还是页面刷新不成功的问题?

for event in pygame.event.get():
                                if event.type== pygame.QUIT:
                                                pygame.quit()
                                elif event.type == pygame.KEYDOWN:
                                                 if event.key==pygame.K_RIGHT:
                                                                ship.moving_right=True
                                                 if event.key==pygame.K_LEFT:
                                                                ship.moving_left=True
                                elif event.type==pygame.KEYUP:
                                                if event.key==pygame.K_RIGHT:
                                                                ship.moving_right=False
                                                if event.key==pygame.K_LEFT:
                                                                ship.moving_left=False 
while True:

                                gf.check_events(ship)
                                ship.update()
                                gf.update_screen(ai_settings,screen,ship)


Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
pygame游戏中如何实现鼠标与图片的交互

该游戏预 进入游戏时显示一个图片,通过点击该图片可以调用该游戏主代码,运行游戏。 希望代码解释

Python的pygame按键处理问题

刚刚学python的pygame,想自己做一下类似打乒乓球一类的游戏,写完后发现对于挡板的控制好像很不顺畅,代码如下: ``` if event.type==KEYDOWN: if event.key==K_w: player_left_up=True if event.key==K_s: player_left_down=True if event.type==KEYUP: if event.key == K_w: player_left_up = False if event.key == K_s: player_left_down = False #挡板移动 if player_left_up: left_player_pos_y -= 3 if player_left_down: left_player_pos_y += 3 ``` 挡板按W往上走,S往下走,这个代码在连续快速W S W S的按的时候,会出现比如W本该是False但它依旧被判定为True的情况,也就是按快了之后即使没有按下W,它也自己往上走了,然后我去网上看类似的代码,写法明明和我一样但是别人的就一点问题也没有,按键按起来很顺畅。这是为什么呀?我应该怎么做?求解

macos10.14 pygame 不显示颜色

无法显示背景颜色,不知为何。新人学python,求解答 import sys import pygame def run_game(): #初始化游戏并且创建一个屏幕对象 pygame.init() screen = pygame.display.set_mode((1200, 800)) pygame.display.set_caption("Alien Invasion") bg_color = (230, 230, 230) #开始游戏主循环 while True: #监视键盘和鼠标事件 for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() screen.fill(bg_color) #让最近绘制的屏幕可见 pygame.display.flip() run_game()

pygame 为什么飞船只能左右移动不能上下移?

``` import pygame import sys def run_game(): pygame.init() screen=pygame.display.set_mode((1200,600)) pygame.display.set_caption("game over") image=pygame.image.load('selfimages/airplane.bmp') rect=image.get_rect() screen_rect=screen.get_rect() rect.centerx=screen_rect.centerx rect.centery=screen_rect.centery xcenter=float(rect.centerx) ycenter=float(rect.centery) moving_right=False moving_left=False moving_down=False moving_up=False while True: for event in pygame.event.get(): if event.type==pygame.QUIT: sys.exit() elif event.type==pygame.KEYDOWN: if event.key==pygame.K_RIGHT: moving_right=True elif event.key==pygame.K_LEFT: moving_left=True elif event.key==pygame.K_UP: moving_up=True elif event.key==pygame.K_DOWN: moving_dowm=True elif event.type==pygame.KEYUP: if event.key==pygame.K_RIGHT: moving_right=False elif event.key==pygame.K_LEFT: moving_left=False elif event.key==pygame.K_UP: moving_up=False elif event.key==pygame.K_DOWN: moving_dowm=False if moving_right and rect.right<screen_rect.right: xcenter+=1.5 if moving_left and rect.left>0: xcenter-=1.5 if moving_up and rect.top<screen_rect.top: ycenter+=1.5 if moving_down and rect.bottom>0: ycenter-=1.5 rect.centerx=xcenter rect.centery=ycenter screen.fill((255,255,255)) screen.blit(image,rect) pygame.display.flip() run_game() ``` 麻烦帮我看看问题出在哪,谢谢大家

pygame 贪吃蛇遇到的问题

做了两个黑洞,进入一个黑洞会传送到另一个黑洞,但是timer.tick(30)帧太快导致无法从传送,改成timer.tick(2)就可以,这是为什么,应该怎么做?主程序代码如下: ``` 主程序开始 pygame.init() img_size =40 img_group = list() screen_size = 0 #pygame.FULLSCREEN screen = pygame.display.set_mode((24*img_size,18*img_size),screen_size) pygame.display.set_caption("嗷大喵贪吃蛇") face = pygame.image.load("face.png") load_pic() game_init() game_over = False last_time = 0 bgm = None auto_play = False step_time = 400 waiting =True audio_init() rePlay = True play_sound(bgm) while True: timer.tick(2) ticks = pygame.time.get_ticks() current_time = time.clock() for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() elif event.type == MOUSEBUTTONUP: if waiting == True: waiting = False game_over = False last_time = 0 auto_play = False step_time = 400 game_init() keys = pygame.key.get_pressed() if keys[K_ESCAPE]: pygame.quit() sys.exit() elif keys[K_UP] or keys[K_w]: snake.velocity = Point(0,-1) elif keys[K_DOWN] or keys[K_s]: snake.velocity = Point(0,1) elif keys[K_LEFT] or keys[K_a]: snake.velocity = Point(-1,0) elif keys[K_RIGHT] or keys[K_d]: snake.velocity = Point(1,0) elif keys[K_f]: if screen_size == pygame.FULLSCREEN: screen_size =0 else: screen_size =pygame.FULLSCREEN screen = pygame.display.set_mode((24*img_size,18*img_size),screen_size) pygame.display.set_caption("嗷大喵贪吃蛇") elif keys[K_PLUS] or keys[K_KP_PLUS]: step_time -= 10 if step_time <50: step_time=50 elif keys[K_MINUS] or keys[K_KP_MINUS]: step_time += 10 if step_time >400: step_time = 400 elif keys[K_SPACE]: if auto_play: auto_play = False step_time = 400 else: auto_play = True step_time = 100 if waiting: screen.blit(face,(0,0)) else: if not game_over: hole_group.update(ticks) snake.update(ticks) food_group.update(ticks) #检测是否捡起食物,并增加身体长度 hit_list = pygame.sprite.groupcollide(snake.segments, \ food_group, False, True) if len(hit_list) > 0: food_group.add(Food()) snake.add_segment() #检测是否碰到了自己的身体 for n in range(1, len(snake.segments)): if pygame.sprite.collide_rect(snake.segments[0], snake.segments[n]): game_over = True #检查屏幕边界 head_x = snake.segments[0].X//img_size head_y = snake.segments[0].Y//img_size if head_x < 0: snake.segments[0].X = 23 * img_size elif head_x > 24: snake.segments[0].X = 0 * img_size if head_y < 0: snake.segments[0].Y = 17 * img_size elif head_y > 18: snake.segments[0].Y = 0 * img_size #检测是否进入黑洞,并从另一个黑洞出来 holex = snake.segments[0].X holey = snake.segments[0].Y if holex == hole1.X and holey == hole1.Y: snake.segments[0].X = hole2.X snake.segments[0].Y = hole2.Y elif holex == hole2.X and holey == hole2.Y: snake.segments[0].X = hole1.X snake.segments[0].Y = hole1.Y #执行自动寻路代码 if auto_play: auto_move() backbuffer.fill((20,50,20)) snake.draw(backbuffer) food_group.draw(backbuffer) hole_group.draw(backbuffer) screen.blit(backbuffer, (0,0)) if not game_over: print_text(font, 0, 0, "Length " + str(len(snake.segments))) print_text(font, 0, 20, "Position " + str(snake.segments[0].X//img_size) + \ "," + str(snake.segments[0].Y//img_size)) else: print_text(font, 0, 0, "GAME OVER") waiting = True game_over = False #显示自动字样 if auto_play: print_text(font, 600, 0, "AUTO") #循环播放背景音乐 if int(current_time)%200 ==0 and rePlay: play_sound(bgm) rePlay = False if int(current_time)%200 == 1: rePlay = True pygame.display.update() ```

在pycharm下导入pygame模块,其后面的函数智能提示不全,什么原因?

最近在win10下用pycharm来编写python代码,比如在pygame(已在pycharm下安装了)这个包下输入pygame.init(),但init()这个函数是不提示的,后来我发现在pygame包下还有很多都不提示,但是我在cmd下用ipython来导入pygame,是可以正常提示的。请问这个问题该怎么解决?谢谢。 ![图片说明](https://img-ask.csdn.net/upload/201806/06/1528254041_459012.png)

pygame.error: video system not initialized

按照视频的代码,但是报了这个错误,网上没有找到类似的答案 报错代码如下: ![图片说明](https://img-ask.csdn.net/upload/201908/17/1566022575_856149.png) 报错如下: ![图片说明](https://img-ask.csdn.net/upload/201908/17/1566022607_7422.png) 全部代码如下: import pygame from plan_sprites import * # 游戏的初始化 pygame.init() # 创建游戏的窗口 大小:480*700 screen = pygame.display.set_mode((480, 700)) # 绘制背景图像 # 1.加载图像数据 bg = pygame.image.load(r"H:\py\飞机大作战\images\background.jpg") screen.blit(bg, (0, 0)) # 3. updata更新屏幕 # 绘制英雄的飞机 hero = pygame.image.load(r"H:\py\飞机大作战\images\me1.png") screen.blit(hero, (150, 300)) # 可以在所有绘制工作完成后,统一调用updata方法 pygame.display.update() # 创建时钟对象 clock = pygame.time.Clock() # 1.定义rect记录飞机的初始位置 hero_rect = pygame.Rect(150, 300, 102, 106) # 创建敌机的精灵 enemy = GameSprite(r"H:\py\飞机大作战\images\enemy1.png") enemy1 = GameSprite(r"H:\py\飞机大作战\images\enemy1.png") # 创建敌机的精灵组 enemy_group = pygame.sprite.Group(enemy,enemy1) # 游戏循环-->意味着游戏的正式开始! while True: # 可以指定游戏循环内部的代码执行的频率 clock.tick(60) # # 捕获事件 # event_list = pygame.event.get() # if len(event_list) > 0: # print(event_list) # 监听事件 for event in pygame.event.get(): # 判断事件类型是否是退出事件 if event.type == pygame.QUIT: print("游戏结束!!") # quit 卸载所有的模块 pygame.quit() # exit()直接终止当前正在执行的程序 exit() # 2. 修改飞机的位置 hero_rect.y -= 1 # 判断飞机的位置 if hero_rect.y <= -126: hero_rect.y = 700 # 3. 调用blit方法绘制图像 screen.blit(bg, (0, 0)) screen.blit(hero, hero_rect) # 让精灵组调用两个方法 # updata 让组中的所有精灵更新位置 enemy_group.update() # drow 在screen 上绘制所有精灵 enemy_group.draw(screen) # 4. 调用updata方法更新显示 pygame.display.update() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() pygame.quit() ``` ```

求教,pygame中怎么控制帧率,看了文档还是弄不明白

网上看了很久,都是组合 **pygame.time.get_ticks()**与**pygame.time.Clock()**这两个函数实现的,具体怎么用看了半天依然没明白,谁哪位大牛解释一下不

python3.7配置了pip,安装3.7对应的pygame一直安装不成功显示找不到对应是什么问题?

如图一,python3.7配置了pip19.3.1,安装3.7对应的pygame一直安装不成功,提示找不到对应版本,求教下这个怎么解决?![图片说明](https://img-ask.csdn.net/upload/201912/02/1575216297_77750.png) 使用powershell配置,结果如下: ![图片说明](https://img-ask.csdn.net/upload/201912/02/1575216352_197983.png)

Pygame surface.bilt方法的问题

image就是一张图片 self.rect=self.image.get_rect() self.screen.blit(self.image, self.rect) 众所周知,第二个参数用于指定绘制的位置,所以上面这种写法的第二个参数是rect,实际有4个值,于是我尝试了下面这么写也行 self.screen.blit(self.image, (self.rect.x, self.rect.y)) 而经我测试,就算指定四个值也完全没有任何影响 self.screen.blit(self.image, (self.rect.x, self.rect.y, 400, 500)) self.screen.blit(self.image, (self.rect.x, self.rect.y, 400, 600)) 绘制结果完全一样,说明后两个值根本没用 我的问题是,在我添加了一行self.rect.width = 100后,发现image在绘制时不能绘制到屏幕最右边的宽度为100的区域,这是为什么呢。。。 源码如下,一个打飞机小游戏 //ship.py import pygame class Ship(): def __init__(self, ai_settings, screen): """Initialize the ship, and set its starting position.""" self.screen = screen self.ai_settings = ai_settings # Load the ship image, and get its rect. self.image = pygame.image.load('images/ship.bmp') self.rect = self.image.get_rect() self.screen_rect = screen.get_rect() # Start each new ship at the bottom center of the screen. self.rect.centerx = self.screen_rect.centerx self.rect.bottom = self.screen_rect.bottom # Store a decimal value for the ship's center. self.center = float(self.rect.centerx) # Movement flags. self.moving_right = False self.moving_left = False def update(self): """Update the ship's position, based on movement flags.""" # Update the ship's center value, not the rect. if self.moving_right and self.rect.right < self.screen_rect.right: self.center += self.ai_settings.ship_speed_factor if self.moving_left and self.rect.left > 0: self.center -= self.ai_settings.ship_speed_factor # Update rect object from self.center. self.rect.centerx = self.center def blitme(self): """Draw the ship at its current location.""" self.rect.w = 100 self.screen.blit(self.image, self.rect) //game_function.py import sys import pygame from bullet import Bullet def check_keydown_events(event, ai_settings, screen, ship, bullets): """Respond to keypresses.""" if event.key == pygame.K_RIGHT: ship.moving_right = True elif event.key == pygame.K_LEFT: ship.moving_left = True elif event.key == pygame.K_SPACE: fire_bullet(ai_settings, screen, ship, bullets) def check_keyup_events(event, ship): """Respond to key releases.""" if event.key == pygame.K_RIGHT: ship.moving_right = False elif event.key == pygame.K_LEFT: ship.moving_left = False def check_events(ai_settings, screen, ship, bullets): """Respond to keypresses and mouse events.""" for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() elif event.type == pygame.KEYDOWN: check_keydown_events(event, ai_settings, screen, ship, bullets) elif event.type == pygame.KEYUP: check_keyup_events(event, ship) def fire_bullet(ai_settings, screen, ship, bullets): """Fire a bullet, if limit not reached yet.""" # Create a new bullet, add to bullets group. if len(bullets) < ai_settings.bullets_allowed: new_bullet = Bullet(ai_settings, screen, ship) bullets.add(new_bullet) def update_screen(ai_settings, screen, ship, bullets): """Update images on the screen, and flip to the new screen.""" # Redraw the screen, each pass through the loop. screen.fill(ai_settings.bg_color) # Redraw all bullets, behind ship and aliens. for bullet in bullets.sprites(): bullet.draw_bullet() ship.blitme() # Make the most recently drawn screen visible. pygame.display.flip() def update_bullets(bullets): """Update position of bullets, and get rid of old bullets.""" # Update bullet positions. bullets.update() # Get rid of bullets that have disappeared. for bullet in bullets.copy(): if bullet.rect.bottom <= 0: bullets.remove(bullet) //主程序 import pygame from pygame.sprite import Group from settings import Settings from ship import Ship import game_functions as gf def run_game(): # Initialize pygame, settings, and screen object. pygame.init() ai_settings = Settings() screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Alien Invasion") # Set the background color. bg_color = (230, 230, 230) # Make a ship. ship = Ship(ai_settings, screen) # Make a group to store bullets in. bullets = Group() # Start the main loop for the game. while True: gf.check_events(ai_settings, screen, ship, bullets) ship.update() gf.update_bullets(bullets) gf.update_screen(ai_settings, screen, ship, bullets) run_game() 添加了self.rect.w = 100,飞机就不能移动到最右边了,这是为什么呢。。。

如何在pygame中做一个按钮调用函数并且关闭当前界面

用tkinter写的主页面 并且在主页面中用按钮实现了调用游戏界面并且关闭主页面的方法,现在需要一个返回按钮 返回tk的主页面 我现在点按钮可以返回但是无法关闭当前的pygame的窗口 求助各位大神 import pygame, sys from pygame.locals import * import main pygame.init() #初始化pygame screen=pygame.display.set_mode([640,480]) #窗口大小:640*480 screen.fill([255,255,255])#用白色填充窗口 myimage=pygame.image.load("1.png") #把变量myimage赋给导入的图片 screen.blit(myimage,[500,0]) #在100,100的地方画出这个图片(100和100为左部和上部) pygame.display.flip() while True: for event in pygame.event.get():#获得事件 if event.type==pygame.MOUSEBUTTONDOWN and 500<=event.pos[0]<=640 and \ 0<=event.pos[1]<=57: #判断鼠标位置以及是否摁了下去。 #做需要做的事情,如开始游戏。 main.zhuyemian() pass

pygame移动方块碰撞设定边界问题

``` ```import math import sys import numpy as np import pygame class Maze(object): state_dim = 4 action_dim = 1 action_bound = [0, 2 * math.pi] def __init__(self): pygame.init() self.screen = pygame.display.set_mode((600, 500)) # self.a = np.random.random_sample() * (2 * math.pi) # action 取值范围[0, 2π] self.env = pygame.draw.rect(self.screen, (0, 0, 0), (45, 30, 500, 450), 2) # 初始化agent的信息 self.agent_pos_x = 48 self.agent_pos_y = 34 self.v = 0.7 self.vel_x = 0 self.vel_y = 0 self.agent_pos = self.agent_pos_x, self.agent_pos_y, 50, 45 # start point self.start_pos_x = 48 self.start_pos_y = 34 self.start_pos = self.start_pos_x, self.start_pos_y, 50, 45 # hell位置信息 self.hell_pos_x = 300 # hell initial position self.hell_pos_y = 250 self.vel_xh = 0 # .1 * np.random.random_sample() # make hell move self.vel_yh = 0 # .1 * np.random.random_sample() # hell point self.hell_pos_x += self.vel_xh self.hell_pos_y += self.vel_yh self.hell_pos = self.hell_pos_x, self.hell_pos_y, 50, 45 if self.hell_pos_x > 490 or self.hell_pos_x < 48: self.vel_xh = -self.vel_xh if self.hell_pos_y > 430 or self.hell_pos_y < 34: self.vel_yh = -self.vel_yh # end point self.end_pos_x = 490 self.end_pos_y = 430 self.end_pos = self.end_pos_x, self.end_pos_y, 50, 45 # self.end = pygame.draw.rect(self.screen, (255, 0, 0), self.end_pos, 0) # pygame.display.set_caption("Simple Moving") ########################################################################################### def step(self, action): done = False # action = np.clip(action, a_min=0, a_max=2 * math.pi) action = np.clip(action, *self.action_bound) self.vel_x = self.v * math.cos(action) self.vel_y = self.v * math.sin(action) self.agent_pos_x = self.agent_pos_x + self.vel_x self.agent_pos_y = self.agent_pos_y + self.vel_y # def colliderect(self): # self.agent = pygame.draw.rect(self.screen, (255, 255, 0), (self.agent_pos_x, self.agent_pos_y, 50, 45), 0) # normalize features dist1 = [(self.end_pos_x - self.agent_pos_x), (self.end_pos_y - self.agent_pos_y)] if self.agent.colliderect(self.hell): # 智能体与障碍物是否相碰 reward = -1 print(reward) print("misson failed") done = True elif self.agent.colliderect(self.end): reward = 1 print("victory") done = True else: reward = 0 done = False s = np.concatenate(([self.agent_pos_x, self.agent_pos_y], dist1)) if done: pygame.quit() sys.exit() return s, reward, done def outside(self): if self.agent_pos_y > 490 or self.agent_pos_y < 48: # 碰到边界线反弹 self.vel_x = -self.vel_x if self.agent_pos_y > 430 or self.agent_pos_y < 34: self.vel_y = -self.vel_y def reset(self): self.agent_pos_x = 48 self.agent_pos_y = 34 self.vel_x = 0 self.vel_y = 0 self.agent_pos = self.agent_pos_x, self.agent_pos_y, 50, 45 self.agent = pygame.draw.rect(self.screen, (255, 255, 0), (self.agent_pos_x, self.agent_pos_y, 50, 45), 0) dist1 = [(self.end_pos_x - self.agent_pos_x), (self.end_pos_y - self.agent_pos_y)] s = np.concatenate(([self.agent_pos_x, self.agent_pos_y], dist1)) return s def render(self): self.screen = pygame.display.set_mode((600, 500)) self.screen.fill((255, 255, 255)) pygame.draw.rect(self.screen, (0, 0, 0), (45, 30, 500, 450), 2) pygame.draw.rect(self.screen, (0, 0, 0), self.start_pos, 2) self.hell = pygame.draw.rect(self.screen, (0, 0, 0), self.hell_pos, 0) self.end = pygame.draw.rect(self.screen, (255, 0, 0), self.end_pos, 0) self.agent = pygame.draw.rect(self.screen, (255, 255, 0), (self.agent_pos_x, self.agent_pos_y, 50, 45), 0) pygame.display.flip() def sample_action(self): return np.random.random_sample() * (2 * math.pi) # action 取值范围[0, 2π] # def run(self): # env = Maze() # '''''''''''''''''''''''''' # while True: # for event in pygame.event.get(): # if event.type == pygame.QUIT: # pygame.quit() # exit(0) # env.render() # env.step(env.sample_action()) # # if env.colliderect() is True: # # env.reset() if __name__ == '__main__': env = Maze() '''''''''''''''''''''''''' while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() exit(0) env.render() env.outside() env.step(env.sample_action()) 1. **** 网上大多碰到边缘都是按照我写的outside进行的,但是我的怎么运行还是会出边界,求解

安装pygame遇到问题,该如何解决?

通过教程安装了pygame,并在命令窗口和IDLE中输入import pygame,均无报错。但在pycharm中导入pygame时会报错,这是怎么回事呢?求大神指点,如何解决。 ![图片说明](https://img-ask.csdn.net/upload/201811/27/1543286645_365194.png) ![图片说明](https://img-ask.csdn.net/upload/201811/27/1543286728_649532.png)

ubuntu18.04运行pygame时很卡很卡。

小白请教一下各位,为什么我ubuntu18.04下运行pygame会很卡,但是在CentOS7下运行又不卡。 ``` import sys import pygame def run_game(): #初始化游戏并创建一个屏幕对象 pygame.init() screen = pygame.display.set_mode((1200,800)) pygame.display.set_caption("Alien Invasion") #设置背景色 bg_color = (230, 230, 230) #开始游戏的主循环 while True: #监视键盘和鼠标事件 for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() #每次循环时都重绘屏幕 screen.fill(bg_color) #让最近绘制的屏幕可见 pygame.display.flip() run_game() ```

pygame.display.flip()为什么无法如程序设计的更新屏幕

``` import pygame import sys def run_game: pygame.init() scareen=pygame.display.set_mode((1200,800)) pygame.dispaly.set_caption("Alien Invasion") while True: for event in pygame.event.get(): if event.type==pygame.QUIT: sys.exit() pygame.display.flip() run_game ``` 我前段时间macOS更新了Catalina后,再次使用这个程序,就出现了当程序跑到pygame.display.flip()就不再运行,卡在那儿的情况,该怎么处理

pygame 没有报错,但是加载不出应该加载的图片

import pygame from pygame.locals import * import time class HeroPlane(object): def __init__(self,screen_temp): self.x = 150 self.y = 420 self.scree = screen_temp self.image = pygame.image.load("E:/Python.py/FJDZ/FJ/aip01.png") self.bullet_list = []#存储发射出去的子弹 def display(self): self.scree.blit(self.image,(self.x,self.y)) for bullet in self.bullet_list: bullet.display() bullet.move() def move_left(self): self.x -= 5 def move_right(self): self.x += 5 def fire(self): self.bullet_list.append(Bullet(self.screen, self.x, self.y)) class Bullet(object): def __init__(self,screen_temp, x, y): self.x = 150 self.y = 200![图片说明](https://img-ask.csdn.net/upload/201909/30/1569827633_558153.jpg) self.scree = screen_temp self.image = pygame.image.load("E:/Python.py/FJDZ/FJ/airbool.png") def display(self): self.screen.blit(self.image,(self.x, self.y)) def move(self): self.y-=20 def key_control(hero_temp): for event in pygame.event.get(): #获取事件,比如按键等 if event.type == QUIT: #判断是否点击了推出按钮 print("exit") exit() elif event.type == KEYDOWN:#判断是否按下了键 if event.key == K_d or event.key == K_RIGHT:#判断是否按下了d或者right print("right") hero_temp.move_right() elif event.key == K_a or event.key == K_LEFT: #判断是否按下了A或者LEFT print("left") hero_temp.move_left() elif event.key == K_SPACE: #检测是否按下了空格键 print("space") def main(): screen = pygame.display.set_mode((480,652),0,32)#创建一个窗口 background = pygame.image.load("E:/Python.py/FJDZ/FJ/sky.png") #将背景图片载入 hero = HeroPlane(screen) #将自己的飞机载入 while True: screen.blit(background,(0,0))#用背景图片的左上角对齐窗口的左上角开始填充 hero.display()#载入自己的飞机在x y的位置 pygame.display.update() key_control(hero) time.sleep(0) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() if __name__ == "__main__": main() ``` ``` 本来应该加载出子弹的图片的,但是加载不出来。 python新手一个,希望大神能帮忙看一下。

pygame无法加载图片,不停空转

初学python , 用 pygame 编飞机大战,在导入背景图片时遇到困难 代码如下: 运行时没显示错误,但是在一张空白 pygame window 下空转。我用的是 mac python 3.7.1, pygame 1.9.4版本。请教大神代码有什么问题啊?多谢! import pygame from pygame.locals import * import time def main(): screen = pygame.display.set_mode((480, 852),0,32) background = pygame.image.load("./feiji/background.png") plane = pygame.image.load("./feiji/hero1.png") screen.blit(background, (0, 0)) pygame.display.update() while True: pass main()

pygame中怎样让背景图片适应游戏窗体的大小变化?

# 怎样实现背景图片自动随着窗体的大小而变化? 加载的图片与窗体大小不一致 ~~~~python import pygame,sys pygame.init() size = 600, 400 black = 0, 0, 0 screen = pygame.display.set_mode(size, pygame.RESIZABLE) pygame.display.set_aption("Aspioder") bg = pygame.image.load(".\\Pictures\\galaxy.jpeg") fclock = pygame.time.Clock() fps = 1000 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() screen.blit(bg, (0, 0)) pygame.display.update() fclock.tick(fps) ~~~~

属性错误:模块“pygame”没有属性“diasplay”.

没有找到相关资料解决问题,已经重装过pycharm. 代码如下: ![图片说明](https://img-ask.csdn.net/upload/201908/16/1565962554_528367.png) 报错截图如下: ![图片说明](https://img-ask.csdn.net/upload/201908/16/1565962593_457524.png) 全部代码如下: import pygame from plan_sprites import * # 游戏的初始化 pygame.init() # 创建游戏的窗口 大小:480*700 screen = pygame.diasplay.set_mode((480, 700)) # 绘制背景图像 # 1.加载图像数据 bg = pygame.image.load(r"H:\py\飞机大作战\images\background") screen.blit(bg, (0, 0)) # 3. updata更新屏幕 # 绘制英雄的飞机 hero = pygame.image.load(r"H:\py\飞机大作战\images\me1.png") screen.blit(hero, (150, 300)) # 可以在所有绘制工作完成后,统一调用updata方法 pygame.display.update() # 创建时钟对象 clock = pygame.time.Clock() # 1.定义rect记录飞机的初始位置 hero_rect = pygame.Rect(150, 300, 102, 106) # 创建敌机的精灵 enemy = GameSprite(r"H:\py\飞机大作战\images\enemy1.png") enemy1 = GameSprite(r"H:\py\飞机大作战\images\enemy1.png") # 创建敌机的精灵组 enemy_group = pygame.sprite.Group(enemy,enemy1) # 游戏循环-->意味着游戏的正式开始! while True: # 可以指定游戏循环内部的代码执行的频率 clock.tick(60) # 监听事件 for event in pygame.event.get(): # 判断事件类型是否是退出事件 if event.type == pygame.QUIT: print("游戏结束!!") # quit 卸载所有的模块 pygame.quit() # exit()直接终止当前正在执行的程序 exit() # 2. 修改飞机的位置 hero_rect.y -= 1 # 判断飞机的位置 if hero_rect.y <= -126: hero_rect.y = 700 # 3. 调用blit方法绘制图像 screen.blit(bg, (0, 0)) screen.blit(hero, hero_rect) # 让精灵组调用两个方法 # updata 让组中的所有精灵更新位置 enemy_group.update() # drow 在screen 上绘制所有精灵 enemy_group.draw(screen) # 4. 调用updata方法更新显示 pygame.display.update() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() pygame.quit() 望大神指点

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Python可以这样学(第四季:数据分析与科学计算可视化)

Python可以这样学(第四季:数据分析与科学计算可视化)

组成原理课程设计(实现机器数的真值还原等功能)

实现机器数的真值还原(定点小数)、定点小数的单符号位补码加减运算、定点小数的补码乘法运算和浮点数的加减运算。

javaWeb图书馆管理系统源码mysql版本

系统介绍 图书馆管理系统主要的目的是实现图书馆的信息化管理。图书馆的主要业务就是新书的借阅和归还,因此系统最核心的功能便是实现图书的借阅和归还。此外,还需要提供图书的信息查询、读者图书借阅情况的查询等

土豆浏览器

土豆浏览器可以用来看各种搞笑、电影、电视剧视频

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

Java8零基础入门视频教程

Java8零基础入门视频教程

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

TTP229触摸代码以及触摸返回值处理

自己总结的ttp229触摸代码,触摸代码以及触摸按键处理

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

Ubuntu18.04安装教程

Ubuntu18.04.1安装一、准备工作1.下载Ubuntu18.04.1 LTS2.制作U盘启动盘3.准备 Ubuntu18.04.1 的硬盘空间二、安装Ubuntu18.04.1三、安装后的一些工作1.安装输入法2.更换软件源四、双系统如何卸载Ubuntu18.04.1新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列...

快速排序---(面试碰到过好几次)

原理:    快速排序,说白了就是给基准数据找其正确索引位置的过程.    如下图所示,假设最开始的基准数据为数组第一个元素23,则首先用一个临时变量去存储基准数据,即tmp=23;然后分别从数组的两端扫描数组,设两个指示标志:low指向起始位置,high指向末尾.    首先从后半部分开始,如果扫描到的值大于基准数据就让high减1,如果发现有元素比该基准数据的值小(如上图中18&amp;lt...

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

HTML期末大作业

这是我自己做的HTML期末大作业,花了很多时间,稍加修改就可以作为自己的作业了,而且也可以作为学习参考

Python数据挖掘简易入门

Python数据挖掘简易入门

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

C++语言基础视频教程

C++语言基础视频教程

UnityLicence

UnityLicence

软件测试2小时入门

软件测试2小时入门

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

Python数据分析师-实战系列

系列课程主要包括Python数据分析必备工具包,数据分析案例实战,核心算法实战与企业级数据分析与建模解决方案实战,建议大家按照系列课程阶段顺序进行学习。所有数据集均为企业收集的真实数据集,整体风格以实战为导向,通俗讲解Python数据分析核心技巧与实战解决方案。

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

超详细MySQL安装及基本使用教程

一、下载MySQL 首先,去数据库的官网http://www.mysql.com下载MySQL。 点击进入后的首页如下:  然后点击downloads,community,选择MySQL Community Server。如下图:  滑到下面,找到Recommended Download,然后点击go to download page。如下图:  点击download进入下载页面选择No...

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

董付国老师Python全栈学习优惠套餐

购买套餐的朋友可以关注微信公众号“Python小屋”,上传付款截图,然后领取董老师任意图书1本。

爬取妹子图片(简单入门)

安装第三方请求库 requests 被网站禁止了访问 原因是我们是Python过来的 重新给一段 可能还是存在用不了,使用网页的 编写代码 上面注意看匹配内容 User-Agent:请求对象 AppleWebKit:请求内核 Chrome浏览器 //请求网页 import requests import re //正则表达式 就是去不规则的网页里面提取有规律的信息 headers = { 'User-Agent':'存放浏览器里面的' } response = requests.get

web网页制作期末大作业

分享思维,改变世界. web网页制作,期末大作业. 所用技术:html css javascript 分享所学所得

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

相关热词 c# cad插入影像 c#设计思想 c#正则表达式 转换 c#form复制 c#写web c# 柱形图 c# wcf 服务库 c#应用程序管理器 c#数组如何赋值给数组 c#序列化应用目的博客园
立即提问