LOVE2D android竖屏的问题

本文介绍如何在Love2D中实现游戏画面的屏幕旋转,包括两种方法:使用Love2D内置函数和使用shader来完成。此外还提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接把AndroidManifest.xml的activity里修改
android:screenOrientation="portrait"竖屏

android:screenOrientation="landscape"横屏
即可,如果您不想这样可以用下面的方法翻转。


触屏方面可能需要进行调整才能够正确使用。

-- 第一种方法 使用love2d自带的函数进行翻转
local m_width,m_height = 800,600 --与conf里的宽高相同
function love.draw()
    love.graphics.translate(0, m_height)
    love.graphics.rotate(math.rad(-90))

    love.graphics.push()
    love.graphics.scale(m_height/love.graphics.getWidth(),m_width/love.graphics.getHeight()) --自适应

    --[[ 此处放置渲染代码 --]]

    love.graphics.pop()
end

-- 第二种方法 使用shader进行翻转
local m_width,m_height = 800,600 --与conf里的宽高相同
function love.load()    
    local code = [[ 
        mat4 rotatev = mat4(
        vec4(-0.000000, 1.000000, 0.000000, 0.000000),
        vec4(-1.000000, -0.000000, 0.000000, 0.000000),
        vec4(0.000000, 0.000000, 1.000000, 0.000000),
        vec4(0.000000, 0.000000, 0.000000, 1.000000)
        );
        vec4 position(mat4 transform, vec4 pos)
        {
        return rotatev * transform * pos ;
        }
    ]]
    shader = love.graphics.newShader(code)
    love.graphics.setShader(shader)
end

function love.draw()
    love.graphics.push()
    love.graphics.scale(m_width/love.graphics.getWidth(),m_height/love.graphics.getHeight()) --自适应

    --[[ 此处放置渲染代码 --]]

   love.graphics.pop()
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值