欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

先看一下我做的demo效果:

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

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

那么啥是事件呢?

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

'''
  事件             產(chǎn)生途徑              參數(shù)
  QUIT            用戶按下關(guān)閉按鈕          none
  ATIVEEVENT         Pygame被激活或者隱藏          gain, state
  KEYDOWN          鍵盤被按下              unicode, key, mod
  KEYUP           鍵盤被放開              key, mod
  MOUSEMOTION        鼠標移動              pos, rel, buttons
  MOUSEBUTTONDOWN      鼠標按下              pos, button
  MOUSEBUTTONUP       鼠標放開              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ā)了一個用戶事件          code
'''

如鼠標按下事件,鼠標放開事件,鍵盤按下事件.....

這些事件的發(fā)生都伴隨著一個動作的發(fā)生,正是因為有動作的發(fā)生,所以我們才可以撲捉到這些動作,從而做出相應的反應

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

代碼部分如下:

#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         鼠標移動              pos, rel, buttons
  MOUSEBUTTONDOWN     鼠標按下              pos, button
  MOUSEBUTTONUP     鼠標放開              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ā)了一個用戶事件          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返回的是一個數(shù)字值,而K_LEFT,K_UP,K_RIGHT,K_DOWN等都是常量,
      #他們代表的也是一個數(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()

完整實例代碼代碼點擊此處本站下載。

希望本文所述對大家Python程序設計有所幫助。

相關(guān)文章

  • django 擴展user用戶字段inlines方式

    django 擴展user用戶字段inlines方式

    這篇文章主要介紹了django 擴展user用戶字段inlines方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python os.listdir()亂碼解決方案

    python os.listdir()亂碼解決方案

    在本篇文章里小編給大家整理的是一篇關(guān)于python os.listdir()亂碼解決方案,對此有興趣的朋友們可以學習下。
    2021-01-01
  • 微信跳一跳python輔助腳本(總結(jié))

    微信跳一跳python輔助腳本(總結(jié))

    本篇文章為大家整理了關(guān)于微信跳一跳的輔助腳本內(nèi)容,這次我們給大家整理的是關(guān)于python的腳本內(nèi)容,一起來學習下。
    2018-01-01
  • python實現(xiàn)根據(jù)主機名字獲得所有ip地址的方法

    python實現(xiàn)根據(jù)主機名字獲得所有ip地址的方法

    這篇文章主要介紹了python實現(xiàn)根據(jù)主機名字獲得所有ip地址的方法,涉及Python解析IP地址的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • python dataframe如何選擇某一列非空的行

    python dataframe如何選擇某一列非空的行

    這篇文章主要介紹了python dataframe如何選擇某一列非空的行問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python2.7的編碼問題與解決方法

    python2.7的編碼問題與解決方法

    這篇文章主要介紹了在python2.7中遇到的編碼問題與解決方法,文章介紹了直接在python文件內(nèi)修改系統(tǒng)編碼和在輸入輸出的時候,修改編碼格式的方法,有需要的朋友們可以參考借鑒。
    2016-10-10
  • django模型查詢操作的實現(xiàn)

    django模型查詢操作的實現(xiàn)

    一旦創(chuàng)建好了數(shù)據(jù)模型,Django就會自動為我們提供一個數(shù)據(jù)庫抽象API,允許創(chuàng)建、檢索、更新和刪除對象操作,本文就詳細的介紹一下,感興趣的可以了解一下
    2021-08-08
  • Python實現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫的方法示例

    Python實現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫的方法示例

    這篇文章主要介紹了Python實現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫的方法,涉及Python同時進行SQLServer與MongoDB數(shù)據(jù)庫的連接、查詢、讀取、寫入等相關(guān)操作實現(xiàn)技巧,需要的朋友可以參考下
    2018-06-06
  • Python標準庫之多進程(multiprocessing包)介紹

    Python標準庫之多進程(multiprocessing包)介紹

    這篇文章主要介紹了Python標準庫之多進程(multiprocessing包)介紹,本文講解了進程池、共享資源、共享內(nèi)存、Manager等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • python?接口返回的json字符串實例

    python?接口返回的json字符串實例

    下面小編就為大家分享一篇python?接口返回的json字符串實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03

最新評論