1. 程式人生 > >Pygame鍵盤輸入和滑鼠操作

Pygame鍵盤輸入和滑鼠操作

'''
================Pygame模擬鍵盤輸入和滑鼠操作----------------------------------------
姓名 : 昔年
時間 : 2018/10/9
'''
import sys

##初始化

pygame.init()

##變數存放處

size = width,height = 600,400
bgColor = (0,0,0)

##設定介面寬高

screen = pygame.display.set_mode(size)

##設定標題

pygame.display.set_caption("Pygame事件")
~~# event_texts = []~~ 

##要在Pygame中使用文字,必須建立Font物件

##第一個引數指定字型 ,第二個引數指定字型大小

font =pygame.font.Font(None,20)

##呼叫get_linesize()方法獲得每行文字的高度

line_height = font.get_linesize()
position = 0
screen.fill(bgColor)

##建立一個存放的文字TXT

f = open("record.txt",'w')

while True:
      for event in pygame.event.get():
            f.write(str(event) + '\n')
            if event.type == pygame.QUIT:
	  # 關閉檔案
                  f.close()
                  sys.exit()

            # render()將文字渲染成Surface物件
            # 第一個引數是帶渲染的文字
            # 第二個引數指定是否消除鋸齒
            # 第三個引數指定文字的顏色
            screen.blit(font.render(str(event) , True , (0,255,0)) , (0,position))
            position += line_height
            if position >= height:
                  position = 0
                  screen.fill(bgColor)
      pygame.display.flip()

一些常用鍵盤輸入操作 :

send_keys(Keys.LEFT) 左

send_keys(Keys.RIGHT) 右

send_keys(Keys.UP) 上

send_keys(Keys.DOWN) 下

send_keys(Keys.BACK_SPACE) 刪除鍵(BackSpace)

send_keys(Keys.SPACE) 空格鍵(Space)

send_keys(Keys.TAB) 製表鍵(Tab)

send_keys(Keys.ESCAPE) 回退鍵(Esc)

send_keys(Keys.ENTER) 回車鍵(Enter)

send_keys(Keys.CONTROL,’a’) 全選(Ctrl+A)

send_keys(Keys.CONTROL,’c’) 複製(Ctrl+C)

send_keys(Keys.CONTROL,’x’) 剪下(Ctrl+X)

send_keys(Keys.CONTROL,’v’) 貼上(Ctrl+V)

列舉 :鍵盤輸入的使用

'''

================初學Pygame-------------------------------------------------
 姓名 : 昔年 
 時間 : 2018/10/9

'''

    import pygame
    import sys   ##退出時要用
    from pygame.locals import * # pygame 的所有常亮名匯入進來
    
    ##初始化Pygame , 待命隨時呼叫
    
    pygame.init()
    
    ##變數存放區
    
    size = width,height = 600,400 #是一個數組
    speed = [0,0]
    bgColor = (255,255,255)
    fullscreen = False
    
    
    ##創建制定大小視窗 返回一個 Surface
    
    screen = pygame.display.set_mode(size)
    
    ##設定視窗標題
    
    pygame.display.set_caption("初次見面 , 請多多關照 !")
    
    ##載入圖片
    
    turtle = pygame.image.load("Hello.jpg(要開啟的圖片名)")
    
    ##獲取圖片的位置
    
    position = turtle.get_rect()
    
    l_head = turtle
    r_head = pygame.transform.flip(turtle,True,False)
    
    
    ##獲取當前電腦支援的解析度
    
    a = pygame.display.list_modes()
    F11size = width,height = a[0][0],a[0][1]
    while True:
          for event in pygame.event.get():
                if event.type == QUIT:
                      sys.exit()
                if event.type == KEYDOWN:
                       if event.key == K_LEFT:
                            speed = [-1,0]
                            turtle = l_head
                             
                       if event.key == K_RIGHT:
                            speed = [1,0]
                            turtle = r_head
    
                       if event.key == K_UP:
                             speed = [0,-1]
    
                       if event.key == K_DOWN:
                             speed = [0,1]
    
                      # 全屏設定
                       if event.key == K_F11:
                             fullscreen = not fullscreen
                             if fullscreen:
                                   screen = pygame.display.set_mode(F11size, FULLSCREEN | HWSURFACE)
                             else:
                                   screen = pygame.display.set_mode(size)
                       if event.key == K_ESCAPE:
                             fullscreen = False
                             screen = pygame.display.set_mode(size)
                      
    
          #移動影象
          position = position.move(speed)
    
          if position.left < 0 or position.right > width:
                # 翻轉圖片 第一個引數:圖片 第二個引數:左右反轉 第三個引數:上下反轉
                turtle = pygame.transform.flip(turtle,True,False)
                # 翻轉方向
                speed[0] = -speed[0]
          if position.top < 0 or position.bottom > height:
                speed[1] = -speed[1]
    
          # 填充背景
          screen.fill(bgColor)
          # 更新影象
          screen.blit(turtle,position)
          # 更新介面
          pygame.display.flip()
          # 延遲10毫秒
          pygame.time.delay(10)