亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將我的圖像列表放入 Hitbox 中?

如何將我的圖像列表放入 Hitbox 中?

九州編程 2022-11-24 15:25:57
好的所以我發現我的碰撞是基于這個方塊并且它沒有與我的圖像發生碰撞因為我的圖像不在方塊內或者你可以稱之為碰撞箱它有沒有辦法將我的玩家放在碰撞箱內所以它可以很好地工作這是我的玩家類我的游戲視頻我知道這個問題,但我只是不知道如何在不移動碰撞箱的情況下移動我的播放器,這樣我就可以很好地碰撞class player:    def __init__(self,x,y,height,width,color):        self.x = x        self.y = y        self.height  = height        self.width = width        self.speed = 5        self.isJump = False        self.JumpCount = 10        self.fall = 0        self.stand = pygame.image.load("stands.png")        self.lefts = [        pygame.image.load("Sprite-0001.png"),        pygame.image.load("Sprite-0002.png"),        pygame.image.load("Sprite-0003.png"),        pygame.image.load("Sprite-0004.png"),        pygame.image.load("Sprite-0005.png"),        pygame.image.load("Sprite-0006.png"),        pygame.image.load("Sprite-0007.png"),        pygame.image.load("Sprite-0008.png"),        pygame.image.load("Sprite-0009.png")         ]        self.rights = [        pygame.image.load("Sprite-50.png"),         pygame.image.load("Sprite-51.png"),         pygame.image.load("Sprite-52.png"),         pygame.image.load("Sprite-53.png"),         pygame.image.load("Sprite-54.png"),         pygame.image.load("Sprite-55.png"),         pygame.image.load("Sprite-56.png"),         pygame.image.load("Sprite-57.png"),         pygame.image.load("Sprite-58.png")         ]        self.rights = [pygame.transform.scale(image,(image.get_width()*4,image.get_height()*4)) for image in self.rights]        self.lefts = [pygame.transform.scale(image,(image.get_width()*4,image.get_height()*4)) for image in self.lefts]        self.stand = pygame.transform.scale(self.stand,(self.stand.get_width()*4,self.stand.get_height()*4))        self.bo_index = 0        self.anim_index = 0        self.stans_index = 0        self.direction = "right"        self.direction = "left"        self.direction = "standing"        self.rect = pygame.rect = pygame.Rect(self.x,self.y,width, height)
查看完整描述

1 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

class enemy:

   def __init__(self,x,y,height,width,color):

       self.x = x

       self.y = y

       self.height = height

       self.platforms = pygame.image.load("level5.png") #get the image so can find width

       self.platforms = pygame.transform.scale(self.platforms,(self.platforms.get_width()*5,self.platforms.get_height()*5))

       self.width = self.platforms.get_width() #get the width of the image

       self.color = color

       self.rect = pygame.Rect(x,y,height,width)

       self.anim_index = 0

       self.rect = self.platforms.get_rect(topleft = (self.x, self.y)) 

       self.rect = pygame.Rect(x,y, self.platforms.get_width(), self.platforms.get_height())

圖像和碰撞箱(你可以站立的部分)是兩種不同的尺寸,你希望它們是一樣的。所以不是給平臺寬度。計算圖像的寬度,以便您知道它們的大小相同


如果pygame.draw.rect(window, (0,0,0), self.rect)在 enemy 的 draw 方法中添加一個,那么你可以準確地看到玩家可以站立的位置,然后我們可以查看問題是圖像還是碰撞


def draw:

     self.rect.topleft = (self.x,self.y)

     pygame.draw.rect(window,(0,0,0),self.rect)

     window.blit(self.platforms,self.rect) #making sure that you draw the image on top of the square


查看完整回答
反對 回復 2022-11-24
  • 1 回答
  • 0 關注
  • 75 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號