调整大小使精灵消失 love2d

问题描述 投票:0回答:1

所以,当我有这个枪精灵时,我正在做我的 love2d 项目,它太大了,所以我虽然因为 love2d 的 love.graphics.draw() 函数有 sx 和 sy 作为参数,我可以把它放在那里。但是当我这样做时,精灵消失了。 这是我的 love.draw() 函数:

function love.draw()
    if playerRotation == 0 then
        love.graphics.draw(player.sprite, playerCollider:getX() - player.width + player.width / 3, playerCollider:getY() - player.height * 2 + player.height / 2)
    elseif playerRotation == 1 then
        love.graphics.draw(player.spriteLeft, playerCollider:getX() - player.width + player.width / 3, playerCollider:getY() - player.height * 2 + player.height / 2)
    end
    love.graphics.draw(ground.sprite, ground.x, ground.y, 0, love.graphics.getWidth(), love.graphics.getHeight())
    love.graphics.draw(gun.sprite, playerCollider:getX(), playerCollider:getY(), 0, gun.width, gun.height)
end

我的播放器“类”:

local class = require('libraries/middleclass')

local Player = class('Player')

function Player:init()
    self.x = 350
    self.y = 100
    self.width = 80
    self.height = 80
    self.sprite = love.graphics.newImage('sprites/player.png')
    self.spriteLeft = love.graphics.newImage('sprites/player-left.png')
    self.jumps = 0
    self.maxJumps = 1
end

return Player

枪“类”:

local class = require('libraries/middleclass')
local Player = require('player')
local Gun = Player:subclass('gun')

Gun:init()
Gun.sprite = love.graphics.newImage('sprites/gun.png')

return Gun

我尝试将宽度更改为单个数字,但是没有用。由于某种原因,它一直在消失。

lua game-development love2d
1个回答
0
投票

sx
sy
参数是缩放因子,
1.0
表示精灵将在选定的轴上以原始大小绘制。默认情况下
sx = 1
sy = sx
。见
love.graphics.draw
供参考。

您定义

Gun
的方式将其
width
height
设置为
80
,因为
Gun:init()
调用调用
Player.init(Gun)
。除了中产阶级的使用,这是一个荒谬的大因素,可能是枪的透明部分被绘制到屏幕上,造成没有绘制任何东西的错觉。

你想让枪更小 - 将因子设置为介于

0
1
之间的值。

© www.soinside.com 2019 - 2024. All rights reserved.