中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

天城建設(shè)網(wǎng)站免費(fèi)創(chuàng)建屬于自己的網(wǎng)站

天城建設(shè)網(wǎng)站,免費(fèi)創(chuàng)建屬于自己的網(wǎng)站,網(wǎng)站建設(shè)需求設(shè)計(jì),怎樣局域網(wǎng)站建設(shè)學(xué)習(xí) Python 之 Pygame 開發(fā)魂斗羅(二)魂斗羅的需求開始編寫魂斗羅1. 搭建主類框架2. 設(shè)置游戲運(yùn)行遍歷和創(chuàng)建窗口3. 獲取窗口中的事件4. 創(chuàng)建角色5. 完成角色更新函數(shù)魂斗羅的需求 魂斗羅游戲中包含很多個物體,現(xiàn)在要對這些物體進(jìn)行總結(jié) 類…

學(xué)習(xí) Python 之 Pygame 開發(fā)魂斗羅(二)

    • 魂斗羅的需求
    • 開始編寫魂斗羅
      • 1. 搭建主類框架
      • 2. 設(shè)置游戲運(yùn)行遍歷和創(chuàng)建窗口
      • 3. 獲取窗口中的事件
      • 4. 創(chuàng)建角色
      • 5. 完成角色更新函數(shù)

魂斗羅的需求

魂斗羅游戲中包含很多個物體,現(xiàn)在要對這些物體進(jìn)行總結(jié)

類名包含的操作包含的屬性
玩家1類跳躍、行走、落下、更新生命,速度,傷害,方向,類型
玩家2類跳躍、行走、落下、更新生命,速度,傷害,方向,類型
敵人類跳躍、行走、落下、更新生命,速度,傷害,方向,類型
子彈類移動,顯示方向,傷害,發(fā)射源,速度
橋類、陷阱類、獎勵類、BOSS類
音效類播放,停止,設(shè)置音樂-
爆炸效果類顯示是否可以摧毀
主類

物體總結(jié)完畢后,規(guī)劃一下窗口的大小,下面是我設(shè)置的窗口大小

由于地圖素材的大小限制,下面這個窗口的大小剛剛合適
在這里插入圖片描述

開始編寫魂斗羅

那么我們開始來編寫魂斗羅吧

1. 搭建主類框架

同樣地,先寫主類,主類是整個游戲運(yùn)作的類,我們也可以不用這樣的方式,可以使用函數(shù)代替

import pygameclass MainGame:window = Nonedef __init__(self):passdef run(self):passif __name__ == '__main__':pass

2. 設(shè)置游戲運(yùn)行遍歷和創(chuàng)建窗口

魂斗羅游戲不像坦克大戰(zhàn),坦克大戰(zhàn)中坦克移動是把圖片放到不同的位置,而魂斗羅中,人物移動有移動的動畫,跳躍也有跳躍的動畫,我們需要設(shè)置幀率,通過控制幀率來實(shí)現(xiàn)動畫效果

首先創(chuàng)建一個常量Constants.py文件,用于存放游戲中使用的常量

from enum import Enum# 玩家的四種狀態(tài)
class State(Enum):STAND = 1WALK = 2JUMP = 3FALL = 4# 玩家的方向
class Direction(Enum):RIGHT = 1LEFT = 2# 設(shè)置窗口大小
SCREEN_HEIGHT = 600
SCREEN_WIDTH = 800
GROUND_HEIGHT = 63# 玩家x方向速度
PLAYER_X_SPEED = 3

設(shè)置遍歷和創(chuàng)建窗口

def __init__(self):# 初始化展示模塊pygame.display.init()SCREEN_SIZE = (SCREEN_WIDTH, SCREEN_HEIGHT)# 初始化窗口MainGame.window = pygame.display.set_mode(SCREEN_SIZE)# 設(shè)置窗口標(biāo)題pygame.display.set_caption('魂斗羅角色')# 是否結(jié)束游戲self.isEnd = False# 獲取按鍵self.keys = pygame.key.get_pressed()# 幀率self.fps = 60self.clock = pygame.time.Clock()

修改一下run()函數(shù)

def run(self):while not self.isEnd:# 設(shè)置背景顏色pygame.display.get_surface().fill((0, 0, 0))# 更新窗口pygame.display.update()# 設(shè)置幀率self.clock.tick(self.fps)fps = self.clock.get_fps()caption = '魂斗羅 - {:.2f}'.format(fps)pygame.display.set_caption(caption)else:sys.exit()

完整主類代碼

import sys
import pygame
from Constants import *class MainGame:window = Nonedef __init__(self):# 初始化展示模塊pygame.display.init()SCREEN_SIZE = (SCREEN_WIDTH, SCREEN_HEIGHT)# 初始化窗口MainGame.window = pygame.display.set_mode(SCREEN_SIZE)# 設(shè)置窗口標(biāo)題pygame.display.set_caption('魂斗羅角色')# 是否結(jié)束游戲self.isEnd = False# 獲取按鍵self.keys = pygame.key.get_pressed()# 幀率self.fps = 60self.clock = pygame.time.Clock()def run(self):while not self.isEnd:# 設(shè)置背景顏色pygame.display.get_surface().fill((0, 0, 0))# 更新窗口pygame.display.update()# 設(shè)置幀率self.clock.tick(self.fps)fps = self.clock.get_fps()caption = '魂斗羅 - {:.2f}'.format(fps)pygame.display.set_caption(caption)else:sys.exit()if __name__ == '__main__':MainGame().run()

運(yùn)行一下,看看窗口

在這里插入圖片描述

3. 獲取窗口中的事件

在魂斗羅中,玩家移動是必不可少的操作,因此鍵盤事件響應(yīng)是必不可少的

def getPlayingModeEvent(self):# 獲取事件列表for event in pygame.event.get():# 點(diǎn)擊窗口關(guān)閉按鈕if event.type == pygame.QUIT:self.isEnd = True# 鍵盤按鍵按下elif event.type == pygame.KEYDOWN:self.keys = pygame.key.get_pressed()# 鍵盤按鍵抬起elif event.type == pygame.KEYUP:self.keys = pygame.key.get_pressed()

獲取窗口中的事件,用于玩家角色移動、發(fā)射子彈等操作

在這個游戲中,我規(guī)定aswd操控玩家移動,j攻擊,k跳躍

import sys
import pygame
from Constants import *class MainGame:window = Nonedef __init__(self):# 初始化展示模塊pygame.display.init()SCREEN_SIZE = (SCREEN_WIDTH, SCREEN_HEIGHT)# 初始化窗口MainGame.window = pygame.display.set_mode(SCREEN_SIZE)# 設(shè)置窗口標(biāo)題pygame.display.set_caption('魂斗羅角色')# 是否結(jié)束游戲self.isEnd = False# 獲取按鍵self.keys = pygame.key.get_pressed()# 幀率self.fps = 60self.clock = pygame.time.Clock()def run(self):while not self.isEnd:# 設(shè)置背景顏色pygame.display.get_surface().fill((0, 0, 0))# 獲取窗口中的事件self.getPlayingModeEvent()# 更新窗口pygame.display.update()# 設(shè)置幀率self.clock.tick(self.fps)fps = self.clock.get_fps()caption = '魂斗羅 - {:.2f}'.format(fps)pygame.display.set_caption(caption)else:sys.exit()def getPlayingModeEvent(self):# 獲取事件列表for event in pygame.event.get():# 點(diǎn)擊窗口關(guān)閉按鈕if event.type == pygame.QUIT:self.isEnd = True# 鍵盤按鍵按下elif event.type == pygame.KEYDOWN:self.keys = pygame.key.get_pressed()# 鍵盤按鍵抬起elif event.type == pygame.KEYUP:self.keys = pygame.key.get_pressed()if __name__ == '__main__':MainGame().run()

4. 創(chuàng)建角色

創(chuàng)建一個玩家類,實(shí)現(xiàn)玩家的移動和射擊,玩家類需要繼承
pygame.sprite.Sprite類,用來實(shí)現(xiàn)物體的碰撞檢測

import pygame
from Constants import *class PlayerOne(pygame.sprite.Sprite):def __init__(self, currentTime):pygame.sprite.Sprite.__init__(self)passdef update(self, playerBulletList, keys, currentTime):pass

創(chuàng)建玩家類后,先把玩家圖片加載進(jìn)來,這里需要寫一個函數(shù),用來處理圖片

在常量Constants.py文件中,寫一個函數(shù),用來加載圖片

def loadImage(filename, hReverse = False):image = pygame.image.load(filename)if hReverse:image = pygame.transform.flip(image, True, False)rect = image.get_rect()image = pygame.transform.scale(image,(int(rect.width * 2.5), int(rect.height * 2.5)))image = image.convert_alpha()return image

這個函數(shù)用來設(shè)置圖片放縮和水平翻轉(zhuǎn)

因?yàn)樗夭闹写蠖鄶?shù)圖片都是向右的,如果要得到向左的,必須要進(jìn)行翻轉(zhuǎn),為了方便,我就沒有處理素材,直接使用了翻轉(zhuǎn)

文件中翻轉(zhuǎn)和縮放代碼,在學(xué)習(xí) Python 之 Pygame 開發(fā)魂斗羅(一)中已經(jīng)見過了

完整的常量文件

from enum import Enum
import pygameclass State(Enum):STAND = 1WALK = 2JUMP = 3FALL = 4SQUAT = 5class Direction(Enum):RIGHT = 1LEFT = 2def loadImage(filename, hReverse = False):image = pygame.image.load(filename)if hReverse:image = pygame.transform.flip(image, True, False)rect = image.get_rect()image = pygame.transform.scale(image,(int(rect.width * 2.5), int(rect.height * 2.5)))image = image.convert_alpha()return image# 設(shè)置窗口大小
SCREEN_HEIGHT = 600
SCREEN_WIDTH = 800
GROUND_HEIGHT = 63# 玩家x方向速度
PLAYER_X_SPEED = 3

這里需要注意一點(diǎn),由于玩家移動時有動畫效果,所有我們載入的圖片是連續(xù)的好幾張

下面是圖片的素材

鏈接:https://pan.baidu.com/s/1X7tESkes_O6nbPxfpHD6hQ?pwd=hdly
提取碼:hdly

有了素材,開始讀取圖片吧,修改玩家類的__init__()函數(shù)

def __init__(self, currentTime):pygame.sprite.Sprite.__init__(self)# 加載角色圖片self.standRightImage = loadImage('../Image/Player/Player1/Right/stand.png')self.standLeftImage = loadImage('../Image/Player/Player1/Left/stand.png')self.upRightImage = loadImage('../Image/Player/Player1/Up/upRight(small).png')self.upLeftImage = loadImage('../Image/Player/Player1/Up/upLeft(small).png')self.downRightImage = loadImage('../Image/Player/Player1/Down/down.png')self.downLeftImage = loadImage('../Image/Player/Player1/Down/down.png', True)self.obliqueUpRightImages = [loadImage('../Image/Player/Player1/Up/rightUp1.png'),loadImage('../Image/Player/Player1/Up/rightUp2.png'),loadImage('../Image/Player/Player1/Up/rightUp3.png'),]self.obliqueUpLeftImages = [loadImage('../Image/Player/Player1/Up/rightUp1.png', True),loadImage('../Image/Player/Player1/Up/rightUp2.png', True),loadImage('../Image/Player/Player1/Up/rightUp3.png', True),]self.obliqueDownRightImages = [loadImage('../Image/Player/Player1/ObliqueDown/1.png'),loadImage('../Image/Player/Player1/ObliqueDown/2.png'),loadImage('../Image/Player/Player1/ObliqueDown/3.png'),]self.obliqueDownLeftImages = [loadImage('../Image/Player/Player1/ObliqueDown/1.png', True),loadImage('../Image/Player/Player1/ObliqueDown/2.png', True),loadImage('../Image/Player/Player1/ObliqueDown/3.png', True),]# 角色向右的全部圖片self.rightImages = [loadImage('../Image/Player/Player1/Right/run1.png'),loadImage('../Image/Player/Player1/Right/run2.png'),loadImage('../Image/Player/Player1/Right/run3.png')]# 角色向左的全部圖片self.leftImages = [loadImage('../Image/Player/Player1/Left/run1.png'),loadImage('../Image/Player/Player1/Left/run2.png'),loadImage('../Image/Player/Player1/Left/run3.png')]# 角色跳躍的全部圖片self.upRightImages = [loadImage('../Image/Player/Player1/Jump/jump1.png'),loadImage('../Image/Player/Player1/Jump/jump2.png'),loadImage('../Image/Player/Player1/Jump/jump3.png'),loadImage('../Image/Player/Player1/Jump/jump4.png'),]self.upLeftImages = [loadImage('../Image/Player/Player1/Jump/jump1.png', True),loadImage('../Image/Player/Player1/Jump/jump2.png', True),loadImage('../Image/Player/Player1/Jump/jump3.png', True),loadImage('../Image/Player/Player1/Jump/jump4.png', True),]self.rightFireImages = [loadImage('../Image/Player/Player1/Right/fire1.png'),loadImage('../Image/Player/Player1/Right/fire2.png'),loadImage('../Image/Player/Player1/Right/fire3.png'),]self.leftFireImages = [loadImage('../Image/Player/Player1/Right/fire1.png', True),loadImage('../Image/Player/Player1/Right/fire2.png', True),loadImage('../Image/Player/Player1/Right/fire3.png', True),]

圖片讀取好后,我們需要設(shè)置一些索引,用來記錄當(dāng)前應(yīng)該加載哪一張圖片

舉個簡單的例子,人物向右行走的圖片有三張,如下圖

在這里插入圖片描述
我們需要在人物跑動的時候,循環(huán)加載這三張圖片,所以要設(shè)置一個索引,用來記錄當(dāng)前加載到了哪一張,如果是第三張,那么把索引再變?yōu)?,這樣下次就又開始加載第一張圖片了,循環(huán)下去,就可以看到人物跑動的動畫了

好,那我們就來設(shè)置索引

def __init__(self, currentTime):...# 角色左右移動下標(biāo)self.imageIndex = 0# 角色跳躍下標(biāo)self.upImageIndex = 0# 角色斜射下標(biāo)self.obliqueImageIndex = 0...

有了下標(biāo)還要考慮加載圖片的間隔,這個游戲中,在前面我們已經(jīng)設(shè)置了游戲的幀率,為60,就是一秒加載60張圖片,如果不設(shè)置時間間隔,玩家移動的時候,加載的圖片是閃的,因?yàn)樘炝?#xff0c;看不清楚,所以要設(shè)置間隔

首先記錄下上次加載的圖片的時間,然后在顯示玩家圖片時,用當(dāng)前的時間減去上次加載圖片的時間,如果相差一定的間隔,那么就讓索引+1,超過圖片個數(shù)就把索引置為0

下面是設(shè)置上一次加載圖片的時間變量

def __init__(self, currentTime):...# 上一次顯示圖片的時間self.runLastTimer = currentTimeself.fireLastTimer = currentTime...

這里要區(qū)分一下,因?yàn)橥婕乙苿拥臅r候也可以射擊,所以移動射擊的圖片和移動不射擊的圖片要分開索引,防止混淆

之后設(shè)置一下玩家的其他屬性

	# 選擇當(dāng)前要顯示的圖片self.image = self.standRightImage# 獲取圖片的rectself.rect = self.image.get_rect()# 設(shè)置角色的狀態(tài)self.state = State.FALL# 角色的方向self.direction = Direction.RIGHT# 速度self.xSpeed = PLAYER_X_SPEEDself.ySpeed = 0self.jumpSpeed = -11# 人物當(dāng)前的狀態(tài)標(biāo)志self.isStanding = Falseself.isWalking = Falseself.isJumping = Trueself.isSquating = Falseself.isFiring = False# 重力加速度self.gravity = 0.7# 玩家上下的朝向self.isUp = Falseself.isDown = False

角色一開始是降落的狀態(tài),是因?yàn)殚_始的時候角色從天而降

# 人物當(dāng)前的狀態(tài)標(biāo)志
self.isStanding = False
self.isWalking = False
self.isJumping = True
self.isSquating = False
self.isFiring = False# 玩家上下的朝向
self.isUp = False
self.isDown = False

這兩組屬性,用來畫出當(dāng)前角色的圖片

完整的角色類代碼

import pygame
from Constants import *class PlayerOne(pygame.sprite.Sprite):def __init__(self, currentTime):pygame.sprite.Sprite.__init__(self)# 加載角色圖片self.standRightImage = loadImage('../Image/Player/Player1/Right/stand.png')self.standLeftImage = loadImage('../Image/Player/Player1/Left/stand.png')self.upRightImage = loadImage('../Image/Player/Player1/Up/upRight(small).png')self.upLeftImage = loadImage('../Image/Player/Player1/Up/upLeft(small).png')self.downRightImage = loadImage('../Image/Player/Player1/Down/down.png')self.downLeftImage = loadImage('../Image/Player/Player1/Down/down.png', True)self.obliqueUpRightImages = [loadImage('../Image/Player/Player1/Up/rightUp1.png'),loadImage('../Image/Player/Player1/Up/rightUp2.png'),loadImage('../Image/Player/Player1/Up/rightUp3.png'),]self.obliqueUpLeftImages = [loadImage('../Image/Player/Player1/Up/rightUp1.png', True),loadImage('../Image/Player/Player1/Up/rightUp2.png', True),loadImage('../Image/Player/Player1/Up/rightUp3.png', True),]self.obliqueDownRightImages = [loadImage('../Image/Player/Player1/ObliqueDown/1.png'),loadImage('../Image/Player/Player1/ObliqueDown/2.png'),loadImage('../Image/Player/Player1/ObliqueDown/3.png'),]self.obliqueDownLeftImages = [loadImage('../Image/Player/Player1/ObliqueDown/1.png', True),loadImage('../Image/Player/Player1/ObliqueDown/2.png', True),loadImage('../Image/Player/Player1/ObliqueDown/3.png', True),]# 角色向右的全部圖片self.rightImages = [loadImage('../Image/Player/Player1/Right/run1.png'),loadImage('../Image/Player/Player1/Right/run2.png'),loadImage('../Image/Player/Player1/Right/run3.png')]# 角色向左的全部圖片self.leftImages = [loadImage('../Image/Player/Player1/Left/run1.png'),loadImage('../Image/Player/Player1/Left/run2.png'),loadImage('../Image/Player/Player1/Left/run3.png')]# 角色跳躍的全部圖片self.upRightImages = [loadImage('../Image/Player/Player1/Jump/jump1.png'),loadImage('../Image/Player/Player1/Jump/jump2.png'),loadImage('../Image/Player/Player1/Jump/jump3.png'),loadImage('../Image/Player/Player1/Jump/jump4.png'),]self.upLeftImages = [loadImage('../Image/Player/Player1/Jump/jump1.png', True),loadImage('../Image/Player/Player1/Jump/jump2.png', True),loadImage('../Image/Player/Player1/Jump/jump3.png', True),loadImage('../Image/Player/Player1/Jump/jump4.png', True),]self.rightFireImages = [loadImage('../Image/Player/Player1/Right/fire1.png'),loadImage('../Image/Player/Player1/Right/fire2.png'),loadImage('../Image/Player/Player1/Right/fire3.png'),]self.leftFireImages = [loadImage('../Image/Player/Player1/Right/fire1.png', True),loadImage('../Image/Player/Player1/Right/fire2.png', True),loadImage('../Image/Player/Player1/Right/fire3.png', True),]# 角色左右移動下標(biāo)self.imageIndex = 0# 角色跳躍下標(biāo)self.upImageIndex = 0# 角色斜射下標(biāo)self.obliqueImageIndex = 0# 上一次顯示圖片的時間self.runLastTimer = currentTimeself.fireLastTimer = currentTime# 選擇當(dāng)前要顯示的圖片self.image = self.standRightImage# 獲取圖片的rectself.rect = self.image.get_rect()# 設(shè)置角色的狀態(tài)self.state = State.FALL# 角色的方向self.direction = Direction.RIGHT# 速度self.xSpeed = PLAYER_X_SPEEDself.ySpeed = 0self.jumpSpeed = -11# 人物當(dāng)前的狀態(tài)標(biāo)志self.isStanding = Falseself.isWalking = Falseself.isJumping = Trueself.isSquating = Falseself.isFiring = False# 重力加速度self.gravity = 0.7self.isUp = Falseself.isDown = Falsedef update(self, playerBulletList, keys, currentTime):pass

5. 完成角色更新函數(shù)

先根據(jù)狀態(tài)讀取下一次操作,再更新玩家位置,再根據(jù)方向和狀態(tài)標(biāo)志覺得玩家顯示的圖片

def update(self, keys, currentTime):# 更新站或者走的狀態(tài)# 根據(jù)狀態(tài)響應(yīng)按鍵if self.state == State.STAND:self.standing(keys, currentTime)elif self.state == State.WALK:self.walking(keys, currentTime)elif self.state == State.JUMP:self.jumping(keys, currentTime)elif self.state == State.FALL:self.falling(keys, currentTime)# 更新位置# 記錄前一次的位置坐標(biāo)pre = self.rect.xself.rect.x += self.xSpeedself.rect.y += self.ySpeed# 如果x位置小于0了,就不能移動,防止人物跑到屏幕左邊if self.rect.x <= 0:self.rect.x = pre

根據(jù)狀態(tài)標(biāo)志設(shè)置角色圖片

    # 更新動畫# 跳躍狀態(tài)if self.isJumping:# 根據(jù)方向if self.direction == Direction.RIGHT:# 方向向右,角色加載向右跳起的圖片self.image = self.upRightImages[self.upImageIndex]else:# 否則,方向向左,角色加載向左跳起的圖片self.image = self.upLeftImages[self.upImageIndex]# 角色蹲下if self.isSquating:if self.direction == Direction.RIGHT:# 加載向右蹲下的圖片self.image = self.downRightImageelse:# 加載向左蹲下的圖片self.image = self.downLeftImage# 角色站著if self.isStanding:if self.direction == Direction.RIGHT:if self.isUp:# 加載向右朝上的圖片self.image = self.upRightImageelif self.isDown:# 加載向右蹲下的圖片self.image = self.downRightImageelse:# 加載向右站著的圖片self.image = self.standRightImageelse:# 向左也是同樣的效果if self.isUp:self.image = self.upLeftImageelif self.isDown:self.image = self.downLeftImageelse:self.image = self.standLeftImage# 角色移動if self.isWalking:if self.direction == Direction.RIGHT:if self.isUp:# 加載斜右上的圖片self.image = self.obliqueUpRightImages[self.obliqueImageIndex]elif self.isDown:# 加載斜右下的圖片self.image = self.obliqueDownRightImages[self.obliqueImageIndex]else:# 加載向右移動的圖片,根據(jù)開火狀態(tài)是否加載向右開火移動的圖片if self.isFiring:self.image = self.rightFireImages[self.imageIndex]else:self.image = self.rightImages[self.imageIndex]else:if self.isUp:self.image = self.obliqueUpLeftImages[self.obliqueImageIndex]elif self.isDown:self.image = self.obliqueDownLeftImages[self.obliqueImageIndex]else:if self.isFiring:self.image = self.leftFireImages[self.imageIndex]else:self.image = self.leftImages[self.imageIndex]

完整的update()函數(shù)

def update(self, playerBulletList, keys, currentTime):# 更新站或者走的狀態(tài)# 根據(jù)狀態(tài)響應(yīng)按鍵if self.state == State.STAND:self.standing(keys, currentTime, playerBulletList)elif self.state == State.WALK:self.walking(keys, currentTime, playerBulletList)elif self.state == State.JUMP:self.jumping(keys, currentTime, playerBulletList)elif self.state == State.FALL:self.falling(keys, currentTime, playerBulletList)# 更新位置# 記錄前一次的位置坐標(biāo)pre = self.rect.xself.rect.x += self.xSpeedself.rect.y += self.ySpeed# 如果x位置小于0了,就不能移動,防止人物跑到屏幕左邊if self.rect.x <= 0:self.rect.x = pre# 更新動畫# 跳躍狀態(tài)if self.isJumping:# 根據(jù)方向if self.direction == Direction.RIGHT:# 方向向右,角色加載向右跳起的圖片self.image = self.upRightImages[self.upImageIndex]else:# 否則,方向向左,角色加載向左跳起的圖片self.image = self.upLeftImages[self.upImageIndex]# 角色蹲下if self.isSquating:if self.direction == Direction.RIGHT:# 加載向右蹲下的圖片self.image = self.downRightImageelse:# 加載向左蹲下的圖片self.image = self.downLeftImage# 角色站著if self.isStanding:if self.direction == Direction.RIGHT:if self.isUp:# 加載向右朝上的圖片self.image = self.upRightImageelif self.isDown:# 加載向右蹲下的圖片self.image = self.downRightImageelse:# 加載向右站著的圖片self.image = self.standRightImageelse:# 向左也是同樣的效果if self.isUp:self.image = self.upLeftImageelif self.isDown:self.image = self.downLeftImageelse:self.image = self.standLeftImage# 角色移動if self.isWalking:if self.direction == Direction.RIGHT:if self.isUp:# 加載斜右上的圖片self.image = self.obliqueUpRightImages[self.obliqueImageIndex]elif self.isDown:# 加載斜右下的圖片self.image = self.obliqueDownRightImages[self.obliqueImageIndex]else:# 加載向右移動的圖片,根據(jù)開火狀態(tài)是否加載向右開火移動的圖片if self.isFiring:self.image = self.rightFireImages[self.imageIndex]else:self.image = self.rightImages[self.imageIndex]else:if self.isUp:self.image = self.obliqueUpLeftImages[self.obliqueImageIndex]elif self.isDown:self.image = self.obliqueDownLeftImages[self.obliqueImageIndex]else:if self.isFiring:self.image = self.leftFireImages[self.imageIndex]else:self.image = self.leftImages[self.imageIndex]

之后就是對四個狀態(tài)函數(shù)進(jìn)行完善啦

http://www.risenshineclean.com/news/5010.html

相關(guān)文章:

  • 如何在網(wǎng)站上做淘寶客推廣蘭州網(wǎng)站seo優(yōu)化
  • 網(wǎng)站建設(shè)價(jià)格是多少直通車推廣技巧
  • 網(wǎng)站建設(shè)視頻vsseo網(wǎng)站優(yōu)化培訓(xùn)價(jià)格
  • 做網(wǎng)站好的框架昆明seo外包
  • 網(wǎng)站建設(shè)業(yè)務(wù)拓展思路北海seo快速排名
  • 外貿(mào)網(wǎng)站 建站上海搜索seo
  • 做展廳 參考什么網(wǎng)站備案域名出售平臺
  • 石家莊科技網(wǎng)站建設(shè)安徽seo推廣公司
  • 網(wǎng)站怎么做訂單關(guān)鍵詞分析工具
  • 湖南網(wǎng)站建設(shè)價(jià)格百度移動應(yīng)用
  • 山東網(wǎng)站制作團(tuán)隊(duì)網(wǎng)店培訓(xùn)教程
  • 蘇州網(wǎng)站建設(shè)網(wǎng)搜索引擎網(wǎng)站提交入口
  • 微信上發(fā)的鏈接網(wǎng)站怎么做的青島網(wǎng)站制作seo
  • 網(wǎng)站里怎樣做點(diǎn)擊量查詢常州網(wǎng)站推廣公司
  • 充值代理平臺志鴻優(yōu)化設(shè)計(jì)答案網(wǎng)
  • 個人做的好的淘寶客網(wǎng)站網(wǎng)站推廣開戶
  • 做貨到付款的購物網(wǎng)站廣州做網(wǎng)站的公司哪家好
  • 2024年5月新冠高峰優(yōu)化設(shè)計(jì)四年級上冊語文答案
  • 長春純手工seoseo高級教程
  • 做淘寶這種網(wǎng)站網(wǎng)站服務(wù)費(fèi)一年多少錢
  • 找別人做網(wǎng)站怎么防止別人修改公司產(chǎn)品營銷廣告宣傳
  • 專業(yè)的武漢網(wǎng)站推廣阿里云建網(wǎng)站
  • 政府網(wǎng)站高效化建設(shè)方案各大網(wǎng)址收錄查詢
  • 網(wǎng)站開發(fā)華企云商seo管理
  • 美國人做的漢字網(wǎng)站個人博客網(wǎng)站怎么做
  • 如何使用記事本做網(wǎng)站互聯(lián)網(wǎng)醫(yī)療的營銷策略
  • 網(wǎng)站怎么做內(nèi)容網(wǎng)頁設(shè)計(jì)軟件dreamweaver
  • 網(wǎng)站懸浮廣告素材教育培訓(xùn)機(jī)構(gòu)平臺
  • 網(wǎng)站建設(shè)模板的淘寶推廣方式
  • 廣東制作公司網(wǎng)站網(wǎng)上營銷方法