日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python方向键控制角色_用python和pygame游戏编程入门-控制角色移动

發布時間:2024/7/19 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python方向键控制角色_用python和pygame游戏编程入门-控制角色移动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在上一節中我們知道了事件,以及如何捕捉鍵盤事件進行響應,本屆我們結合第一節何上一節的內容,做一個用鍵盤控制角色移動的功能,代碼如下:

#!/usr/bin/env python

#指定圖像文件名稱

background_image_filename = './img/Underwater.png'

mouse_image_filename = './img/octopus.png'

#導入pygame庫

import pygame

#導入一些常用的函數和常量

from pygame.locals import *

#向sys模塊借一個exit函數用來退出程序

from sys import exit

#初始化pygame,為使用硬件做準備

pygame.init()

#創建了一個窗口

screen = pygame.display.set_mode((960, 720), 0, 32)

#設置窗口標題

pygame.display.set_caption("海底世界")

#加載并轉換圖像

background = pygame.image.load(background_image_filename).convert()

kcursor = pygame.image.load(mouse_image_filename).convert_alpha()

#游戲主循環

x, y = 0, 0

move_x, move_y = 0, 0

while True:

for event in pygame.event.get():

if event.type == QUIT:

exit()

if event.type == KEYDOWN:

#鍵盤有按下?

if event.key == K_LEFT:

#按下的是左方向鍵的話,把x坐標減一

move_x = -1

elif event.key == K_RIGHT:

#右方向鍵則加一

move_x = 1

elif event.key == K_UP:

#類似了

move_y = -1

elif event.key == K_DOWN:

move_y = 1

elif event.type == KEYUP:

#如果用戶放開了鍵盤,圖就不要動了

move_x = 0

move_y = 0

#計算出新的坐標

x+= move_x

y+= move_y

screen.fill((0,0,0))

screen.blit(background, (0,0))

screen.blit(kcursor, (x,y))

#在新的位置上畫圖

pygame.display.update()

當我們運行這個程序的時候,按下方向鍵就可以把章魚移動,但是等等!為什么我只能按一下動一下啊……

因為KEYDOWN事件只有在你按下鍵的那一刻才發生一次,也就是for循環需要有事件發生才會再次執行,你可以試試在按下方向鍵不松開的時候不停的移動鼠標,這時候章魚就會一直移動了。

啊??這么麻煩,怎么修改呢?

因為當你按下按鍵的時候變量值已經進行了修改,所以只需要把計算新坐標后面的代碼縮進調整一下,放在跟for循環并列的位置,這樣事件發生只會修改坐標的變化數據,不斷更新坐標的任務就在while循環里執行了。

修改后的代碼;

#!/usr/bin/env python

#指定圖像文件名稱

background_image_filename = './img/Underwater.png'

mouse_image_filename = './img/octopus.png'

#導入pygame庫

import pygame

#導入一些常用的函數和常量

from pygame.locals import *

#向sys模塊借一個exit函數用來退出程序

from sys import exit

#初始化pygame,為使用硬件做準備

pygame.init()

#創建了一個窗口

screen = pygame.display.set_mode((960, 720), 0, 32)

#設置窗口標題

pygame.display.set_caption("海底世界")

#加載并轉換圖像

background = pygame.image.load(background_image_filename).convert()

kcursor = pygame.image.load(mouse_image_filename).convert_alpha()

#游戲主循環

x, y = 0, 0

move_x, move_y = 0, 0

while True:

for event in pygame.event.get():

if event.type == QUIT:

exit()

if event.type == KEYDOWN:

#鍵盤有按下?

if event.key == K_LEFT:

#按下的是左方向鍵的話,把x坐標減一

move_x = -1

elif event.key == K_RIGHT:

#右方向鍵則加一

move_x = 1

elif event.key == K_UP:

#類似了

move_y = -1

elif event.key == K_DOWN:

move_y = 1

elif event.type == KEYUP:

#如果用戶放開了鍵盤,圖就不要動了

move_x = 0

move_y = 0

#計算出新的坐標

x+= move_x

y+= move_y

screen.fill((0,0,0))

screen.blit(background, (0,0))

screen.blit(kcursor, (x,y))

#在新的位置上畫圖

pygame.display.update()

本站內容未經許可,禁止任何網站及個人進行轉載。

總結

以上是生活随笔為你收集整理的python方向键控制角色_用python和pygame游戏编程入门-控制角色移动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。