love2d的输入包括love.keyboard,love.mouse,love.joystick(手柄)
键盘:
按键检测是否按下可以用love.keyboard.isDown("键值"),如love.keyboard.isDown("up"),
检测向上键是否按下,按下返回真.
还可以用love.keyboard.setKeyRepeat(delay, interval)设置重复按键的延时和间隔,
当延时(delay)设为0时,不允许按住一个键不放,interval没明白怎么回事.如果你知道,请告诉我.
也可以在love.keypressed(key)回调函数中检测是哪个按键(key),我试了一下,不支持按住一个
键不放.
鼠标:
鼠标在love.mouse模块中,函数很多,可以自己查看wiki
手柄:
手柄在love.joystick模块中,由于没手柄,没有试验,与键盘,鼠标应该类似.

love2d的音乐功能在love.audio模块里,底层使用openal,支持20多种音乐格式.
音乐只有一种数据类型"source".使用love.audio.newSource可以创建一个source对象
sound = love.audio.newSource("pling.wav", "static") --有static和stream两种模式,分别对应短和长的音乐
默认是stream模式.
wiki上两种模式的对比如下,可见对长音乐应该使用strem模式
Keep in mind that, if you pass love.audio.newSource "static" as a second argument,
the sound file will be expanded into memory, so if you load a 5MB compressed .ogg file
that way, it would consume ~50MB RAM when fully decompressed. Consider not using "static"
in such cases.

接着可以使用source对象的方法控制音乐的一些效果如:
sound:setVolume(0.9) -- 音量为90%
sound:setPitch(0.5) -- 音调为50%,类似频率的高低

下面是我的示例程序,演示了鼠标轨迹的捕捉和音乐的播放.

tutor3.lua

local mousePos={}
qx,qy=100,100
playSound=false
function drawQuad(x,y,width,height)love.graphics.setColor(0, 255, 0)love.graphics.quad("fill",x,y,x+width,y,x+width,y+height,x,y+height)
endfunction drawMouseTrack()love.graphics.setPointSize( 3 )local x, y = love.mouse.getPosition( )table.insert(mousePos,x)table.insert(mousePos,y)love.graphics.setColor(255,0,0)--取出mousePos table里的元素,下面即c语言的for(int i=1,i<mousePos.legth;i+=2)for i=1,#mousePos,2 dolove.graphics.point(mousePos[i],mousePos[i+1])end
end

main.lua

require("tutor03")function love.load()
sound = love.audio.newSource("assets/sound.wav", "static")
music = love.audio.newSource("assets/music.mp3") --默认是stream,动态加载,适合播放时间长的音乐
music:setVolume(0.5)
love.audio.play(music)
endfunction love.draw()drawMouseTrack()drawQuad(qx,qy,20,20)love.graphics.print("qx=" .. qx .. "  qy=" .. qy,20,20)endfunction love.update(dt)--按键检测if(love.keyboard.isDown("up")) thenqy=qy-5endif(love.keyboard.isDown("down")) thenqy=qy+5endif(love.keyboard.isDown("left")) thenqx=qx-5endif(love.keyboard.isDown("right")) thenqx=qx+5end--检测小方块是否运动到窗口边界if(qx>=780)thenqx=780playSound=trueelseif(qx<0)thenqx=0playSound=trueendif(qy>=580)thenqy=580playSound=trueelseif(qy<=0)thenqy=0playSound=trueendif(playSound==true) thenlove.audio.play(sound)playSound=falseendendfunction love.keypressed(key)
--~     if(key=="up") then
--~     qy=qy-5
--~     elseif(key=="down") then
--~     qy=qy+5
--~     elseif(key=="left") then
--~     qx=qx-5
--~     elseif(key=="right") then
--~     qx=qx+5
--~     end
end

源码下载http://pan.baidu.com/share/link?shareid=123821&uk=1913510140

love2d教程3--输入和音乐相关推荐

  1. 使用lua开发游戏--love2d教程汇总

    说明,我只是在网上浏览时发现了"金庸群侠传lua复刻版",有源码,基于sdl使用C语言,我大概看了 一下不是很懂.后来发现了love2d,也是基于sdl,于是便有了用love2d再 ...

  2. java半角英数check_jQuery教程之输入内容控制为半角英数字+限定符号问题如何解决...

    本篇文章探讨了jQuery教程之输入内容控制为半角英数字+限定符号问题如何解决,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 需要控制一个输入框的可输入内容, 在此记 ...

  3. html网页设置音频,HTML教程 - 插入声音和音乐到HTML页面里

    HTML - 音频 » HTML  » HTML教程 - 插入声音和音乐到HTML页面里 前一段时间,在网页上插入音乐或声音是相当复杂的.如今,这个问题就解决了,添加声音成为相当简单的事.html 建 ...

  4. Axure教程:能播放音乐的播放器(含视频教程)

    今天作者教大家用中继器以及网易云外联播放器,做一个真的能够播放音乐列表的音乐播放器原型,快点学起来吧! 一.原型预览效果 原型预览地址:https://axhub.im/ax9/40a17c8ae07 ...

  5. python基础教程网易云_Python爬虫教程:网易云音乐歌词

    开发工具 **Python版本:**3.5.4 相关模块: requests模块: bs4模块: win_unicode_console模块: jieba模块: matplotlib模块: xlwt模 ...

  6. STM32掌机教程7,演奏音乐

    使用定时器来计算时间   在电子琴这节中,我们已经讲述了蜂鸣器的原理,知道如何用蜂鸣器演示不同音调的音乐,本节改进根据频率计算周期的方法,改为定时器,精确度更高,且不再阻塞CPU.   首先,我们不再 ...

  7. android在线音乐播放器教程,android实现简单音乐播放器

    本文实例为大家分享了android音乐播放器的具体代码,供大家参考,具体内容如下 话不多说先上效果 前言 写这个音乐播放器实在是迫不得已.因为我们Andoird课程要求写一个音乐播放器.所以就有了此项 ...

  8. Apache Pivot教程 -- SuggestionPopup输入建议

    Apache Pivot教程 – SuggestionPopup 在HTML中<input>总是可以提示之前输入过的内容,在Apache Pivot里面怎么做到呢?答案已经在标题里了,用S ...

  9. love2d教程27--菜单

    说明 现在已经开始复刻"金庸群侠传"了,对于通用的love2d用法我已经写的较多了,希望大家看后 可以做一些自己的游戏.之后可能不会再像以前一样更新了,若是遇到通用love2d用法 ...

最新文章

  1. 阶乘在c语言代码大全,求10000的阶乘(c语言代码实现)
  2. php header下载中文名称,PHP Header下载文件在IE文件名中文乱码问题
  3. 安装alien,DEB与RPM互换
  4. log4j中用变量配置日志输出文件位置
  5. 使用工作单元UnitOfWork实现事务
  6. pytorch学习笔记(二十二):Pooling
  7. 李开复给中国学生的四封信(转载)
  8. 个人投资课 张潇雨_张潇雨《个人投资课》学习笔记
  9. 对不起,学会这些 Linux 知识后,我有点飘
  10. Ubuntu 11.04 安装配置过程
  11. Debian 10安装教程
  12. 一键批量替换文本工具
  13. MP40N120-ASEMI场效应管MP40N120
  14. mysql mmm 虚拟ip不通_mysql-mmm故障解决一例
  15. php gif裁剪,ci裁剪gif图片如何让gif保持是动态的。
  16. PC与Android通过USB连接进行Socket通信
  17. 全国计算机二级vb 文库,全国计算机二级考试VB题目
  18. 知到网课个人理财(西安欧亚学院)考试试题(含答案)
  19. 0 地道英语口语/发音 | 高效提升攻略
  20. BP神经网络在双色球彩票上的预测实验及实现

热门文章

  1. php+mysql 注入基本过程
  2. 一个大数据排序问题的巧妙解法
  3. 大叔也说Xamarin~Android篇~Activity之间传递数组
  4. Android上下左右滑动,显示底层布局
  5. Linux搭建FTP
  6. VS.NET2003调试出现的问题及相关解决方法
  7. WINCE注册表应用
  8. 苹果ipa签名工具免越狱下载_苹果iphone免越狱使用iTunes 一键下载旧版本app
  9. php imagetextouter,CSS_你不知道的outerText,innerText 区别说明,首先,看我们的html定义- phpStudy...
  10. P7 频域分析法-《Matlab/Simulink与控制系统仿真》程序指令总结