love2d游戏1--1942game(一)

这一路来我感觉对love2d已经基本了解,但对于如何做游戏还是不太熟悉,于是便有
看一些的love2d游戏代码的想法。1942game来自此处,版权归其作者我只是略作修

改,我将分两篇来讲解,此篇为游戏启动画面。

当我们玩游戏时,进入我们的第一个界面便是启动画面了,启动画面一来可以作为游

戏的宣传,二来可以用来预加载游戏资源。我们可以先建一个类,在里面放上启动画

面的代码,代码里放上状态变量和时间控制。然后在main.lua里检测状态变量的值,

并执行相应的操作。具体如下:

main.lua

复制代码
require('splash')
function love.load()
  
  font = love.graphics.newFont("assets/font.ttf",14*scale)
  love.graphics.setFont(font)
  
  --初始化
  splash.load("splash","assets/title.gif","assets/music.mp3")
end

function love.draw()
  
  if splash.state == "splash" then
    splash.draw()
  end
  if splash.state=="game" then
    love.graphics.printf("Welcome to the game!",0,80*scale,love.graphics.getWidth(),"center")
  end
end

function love.update(dt)
 
  if splash.state == "splash" then
    splash.update(dt)
  end
  
end

function love.keypressed(key)
 
  if splash.state == "splash" then
    splash.keypressed(key)
  end

end
复制代码

splash.lua

复制代码
splash = {}
--初始化
function splash.load(state,img,music)
  splash.dt_temp = 0
  splash.state=state
  --加载资源
  splash.img=love.graphics.newImage(img)
  splash.music=love.audio.newSource(music, "stream" )
  splash.music:setLooping(true)
  love.audio.play(splash.music)
end

function splash.draw()
  love.graphics.draw(splash.img,0,(splash.dt_temp-1)*32*scale,0,scale,scale)
 
  -- 2.5s  后显示提示
  if splash.dt_temp == 2.5 then
    love.graphics.printf("Press Start",
      0,80*scale,love.graphics.getWidth(),"center")
  end
  
end

function splash.update(dt)
  
  splash.dt_temp = splash.dt_temp + dt
  -- 计时2.5s
  if splash.dt_temp > 2.5 then
    splash.dt_temp = 2.5
  end
  
    
    
end

function splash.keypressed(key)
  --改变游戏状态
  splash.state = "game"
  love.audio.stop(splash.music)
end
复制代码

代码下载,请点击

 

 

 

posted @   半山th  阅读(1516)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示