亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python基于pygame實(shí)現(xiàn)響應(yīng)游戲中事件的方法(附源碼)

 更新時(shí)間:2015年11月11日 12:31:16   作者:Hongten  
這篇文章主要介紹了python基于pygame實(shí)現(xiàn)響應(yīng)游戲中事件的方法,實(shí)例分析了Python基于pygame針對鍵盤及鼠標(biāo)事件的響應(yīng)方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了python基于pygame實(shí)現(xiàn)響應(yīng)游戲中事件的方法。分享給大家供大家參考,具體如下:

先看一下我做的demo效果:

當(dāng)玩家按下鍵盤上的:上,下,左,右鍵的時(shí)候,后臺會打印出玩家所按鍵的數(shù)字值,而圖形會隨之移動

這是客觀上面存在的現(xiàn)象。

那么啥是事件呢?

你叫我做出定義,我不知道,我只能舉個(gè)例子說明,例如接下來的代碼中,列出來一些關(guān)于游戲中的事件

'''
  事件             產(chǎn)生途徑              參數(shù)
  QUIT            用戶按下關(guān)閉按鈕          none
  ATIVEEVENT         Pygame被激活或者隱藏          gain, state
  KEYDOWN          鍵盤被按下              unicode, key, mod
  KEYUP           鍵盤被放開              key, mod
  MOUSEMOTION        鼠標(biāo)移動              pos, rel, buttons
  MOUSEBUTTONDOWN      鼠標(biāo)按下              pos, button
  MOUSEBUTTONUP       鼠標(biāo)放開              pos, button
  JOYAXISMOTION       游戲手柄(Joystick or pad)移動      joy, axis, value
  JOYBALLMOTION       游戲球(Joy ball)?移動      joy, axis, value
  JOYHATMOTION        游戲手柄(Joystick)?移動      joy, axis, value
  JOYBUTTONDOWN       游戲手柄按下              joy, button
  JOYBUTTONUP        游戲手柄放開              joy, button
  VIDEORESIZE        Pygame窗口縮放          size, w, h
  VIDEOEXPOSE        Pygame窗口部分公開(expose)      none
  USEREVENT         觸發(fā)了一個(gè)用戶事件          code
'''

如鼠標(biāo)按下事件,鼠標(biāo)放開事件,鍵盤按下事件.....

這些事件的發(fā)生都伴隨著一個(gè)動作的發(fā)生,正是因?yàn)橛袆幼鞯陌l(fā)生,所以我們才可以撲捉到這些動作,從而做出相應(yīng)的反應(yīng)

如,我們按下鍵盤的左鍵,圖片就向左移動一段距離...

代碼部分如下:

#handle the key event
import pygame
from pygame.locals import *
from sys import exit
'''
  事件             產(chǎn)生途徑              參數(shù)
  QUIT         用戶按下關(guān)閉按鈕          none
  ATIVEEVENT         Pygame被激活或者隱藏          gain, state
  KEYDOWN         鍵盤被按下              unicode, key, mod
  KEYUP         鍵盤被放開              key, mod
  MOUSEMOTION         鼠標(biāo)移動              pos, rel, buttons
  MOUSEBUTTONDOWN     鼠標(biāo)按下              pos, button
  MOUSEBUTTONUP     鼠標(biāo)放開              pos, button
  JOYAXISMOTION     游戲手柄(Joystick or pad)移動      joy, axis, value
  JOYBALLMOTION     游戲球(Joy ball)?移動      joy, axis, value
  JOYHATMOTION     游戲手柄(Joystick)?移動      joy, axis, value
  JOYBUTTONDOWN     游戲手柄按下              joy, button
  JOYBUTTONUP         游戲手柄放開              joy, button
  VIDEORESIZE         Pygame窗口縮放          size, w, h
  VIDEOEXPOSE         Pygame窗口部分公開(expose)      none
  USEREVENT         觸發(fā)了一個(gè)用戶事件          code
'''
__author__ = {'name' : 'Hongten',
       'mail' : 'hongtenzone@foxmail.com',
       'QQ'  : '648719819',
       'Version' : '1.0'}
BG_IMAGE = 'C:\\py\\ball.png'
pygame.init()
screen = pygame.display.set_mode((500, 500), 0, 32)
bg = pygame.image.load(BG_IMAGE).convert()
x, y = 0, 0
move_x, move_y = 0, 0
while 1:
  for event in pygame.event.get():
    #print(event.type)
    if event.type == QUIT:
      exit()
    if event.type == KEYDOWN:
      print(event.key)
      #event.key返回的是一個(gè)數(shù)字值,而K_LEFT,K_UP,K_RIGHT,K_DOWN等都是常量,
      #他們代表的也是一個(gè)數(shù)字值,這些數(shù)字值可以用:print(event.key)獲取到
      #如:K_LEFT = 276
      #  K_UP = 273
      #所以下面的代碼可以替換為:
      #if event.key == 276:
      #  move_x = -10
      if event.key == K_LEFT:
        move_x = -10
      elif event.key == K_UP:
        move_y = -10
      elif event.key == K_RIGHT:
        move_x = 10
      elif event.key == K_DOWN:
        move_y = 10
    elif event.type == KEYUP:
      move_x = 0
      move_y = 0
    x += move_x
    y += move_y
    #print(x, y)
    screen.fill((0, 0, 0))
    screen.blit(bg, (x, y))
    pygame.display.update()

完整實(shí)例代碼代碼點(diǎn)擊此處本站下載。

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論