用Python和Pygame写游戏-从入门到精通(2)事件
来源:互联网 发布:bose qc35淘宝假货 编辑:程序博客网 时间:2024/05/21 11:29
1、理解事件
import pygamepygame.init()SCREEN_SIZE = (640, 480)screen = pygame.display.set_mode(SCREEN_SIZE, 0, 32) font = pygame.font.SysFont("arial", 16);font_height = font.get_linesize()event_text = [] while True: event = pygame.event.wait() event_text.append(str(event)) #获得时间的名称 event_text = event_text[-SCREEN_SIZE[1]//font_height:] #这个切片操作保证了event_text里面只保留一个屏幕的文字 if event.type == pygame.QUIT: pygame.quit() break screen.fill((255, 255, 255)) y = SCREEN_SIZE[1]-font_height #找一个合适的起笔位置,最下面开始但是要留一行的空 for text in reversed(event_text): screen.blit( font.render(text, True, (0, 0, 0)), (0, y) ) #以后会讲 y-=font_height #把笔提一行 pygame.display.update()
background_image_filename = 'sushiplate.jpg'close = False import pygame#from pygame.locals import *from sys import exit pygame.init()screen = pygame.display.set_mode((640, 480), 0, 32)background = pygame.image.load(background_image_filename).convert() x, y = 0, 0#move = {pygame.K_LEFT:0, pygame.K_RIGHT:0, pygame.K_UP:0, pygame.K_DOWN:0}move_x, move_y = 0, 0 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() exit close = True elif event.type == pygame.KEYDOWN: #键盘有按下? if event.key == pygame.K_LEFT: #按下的是左方向键的话,把x坐标减一 move_x = -1 elif event.key == pygame.K_RIGHT: #右方向键则加一 move_x = 1 elif event.key == pygame.K_UP: #类似了 move_y = -1 elif event.key == pygame.K_DOWN: move_y = 1 elif event.type == pygame.KEYUP:# #如果用户放开了键盘,图就不要动了 move_x = 0 move_y = 0 # 如果不break系统会报error: display Surface quit if close == True: break #计算出新的坐标 x+= move_x y+= move_y screen.fill((0,0,0)) screen.blit(background, (x,y)) #在新的位置上画图 pygame.display.update()"""while True: for event in pygame.event.get():# if event.type == QUIT:# exit() if event.type == pygame.KEYDOWN: if event.key in move: move[event.key] = 1 elif event.type == pygame.KEYUP: if event.key in move: move[event.key] = 0 x -= move[pygame.K_LEFT] x += move[pygame.K_RIGHT] y -= move[pygame.K_UP] y += move[pygame.K_DOWN] screen.fill((0,0,0)) screen.blit(background, (x,y)) pygame.display.update()"""# 会导致系统卡顿# event_quit = pygame.event.poll()# if event_quit.type == pygame.QUIT:# pygame.quit()# exit# break
阅读全文
0 0
- 用Python和Pygame写游戏-从入门到精通(2)事件
- 用Python和Pygame写游戏-从入门到精通
- 用Python和Pygame写游戏-从入门到精通
- 用Python和Pygame写游戏-从入门到精通
- 用Python和Pygame写游戏-从入门到精通
- 用Python和Pygame写游戏-从入门到精通
- 用 Python 和 Pygame 写游戏 - 从入门到精通
- 用Python和Pygame写游戏-从入门到精通(2)
- 用Python和Pygame写游戏-从入门到精通(2)
- 用Python和Pygame写游戏-从入门到精通(2)
- 用Python和Pygame写游戏-从入门到精通(实战一:涂鸦画板2)
- 用Python和Pygame写游戏-从入门到精通(2)
- 用Python和Pygame写游戏-从入门到精通(2)
- 用Python和Pygame写游戏-从入门到精通(实战一:涂鸦画板2)
- 用Python和Pygame写游戏-从入门到精通(2)
- 用Python和Pygame写游戏-从入门到精通(13)简单的AI游戏
- Pygame 教程:《用 Python 和 Pygame 写游戏 - 从入门到精通》
- Pygame 教程:《用 Python 和 Pygame 写游戏 - 从入门到精通》
- 如何在R语言中使用Logistic回归模型 详解
- 【C++复习】易错的小问题
- Nginx学习问答
- SSH框架的工作原理
- Maven学习总结(七)——eclipse中使用Maven创建Web项目
- 用Python和Pygame写游戏-从入门到精通(2)事件
- 【荐】Angular 最佳实践
- Python获取帮助详解
- C++ 零碎知识点集锦 一
- keepalive+nginx负载均衡
- WrapPanel
- 时间段重复校验-js
- Retrofit源码分析 (四. Retrofit 官网说明,Copy)
- Mysql时区问题