love2d教程33--window模块
--love的window模块比较简单,直接贴代码了
function love.load()
io.stdout:setvbuf("no") -- 设置io为无缓存模式 --获取显示模式
local w1, h1, flags = love.window.getMode()
--[[ flags是一个表,默认属性如下
fullscreen false
resizable false
fsaa 0
fullscreentype normal
vsync true
minwidth 1
centered true
minheight 1
borderless false
display 1
]]
--love.window.setMode( width, height, flags ) --设置显示模式,flags参数同上 --获取显示器的分辨率,参数是第i个显示器
local w2, h2 = love.window.getDesktopDimensions(flags.display)
--获取love2d程序的窗口大小
local w3, h3 = love.window.getWidth( ) ,love.window.getHeight()
local w4, h4 = love.window.getDimensions( )--同上 --窗口标题
love.window.setTitle("测试window模块")
print(love.window.getTitle()) --获取love2d所在显示器的所有显示模式
local modes = love.window.getFullscreenModes(flags.display)
table.sort(modes, function(a, b) return a.width*a.height < b.width*b.height end) --按宽x高结果大小排序
print("显示器模式")
for k,v in pairs(modes) do
print(k,v.width,v.height)
end -- love.window.getDisplayCount()--获取显示器数量
-- love.window.getFullscreen() --是否全屏 --设置全屏,两种模式 "normal"和desktop",缺省normal模式
--normal会改变屏幕分辨率
--desktop是无边框窗口,窗口自动适应屏幕分辩率,不改变屏幕分辩率大小
--当love2d窗口大小设为800x600可以发现使用desktop鼠标大小不变,而noraml变大
--love.window.setFullscreen( true, "normal" )
--设置图标 任务栏上的图标,图片大小有限制
--love.window.setIcon(love.image.newImageData("1.jpg") )
--love.window.getIcon() --获取图标
--love.window.isCreated() --窗口是否创建
-- scale = love.window.getPixelScale( ) --和mac视网膜显示屏相关,love2d 0.9.1才有这个函数 end local msg=""
local kfocus,mfocus="",""
function love.draw()
love.graphics.print("press 'c' resize,'n' normal fullscreen,'d' desktop fullscreen",,)
love.graphics.print(msg, , )
love.graphics.print(kfocus, , )
love.graphics.print(mfocus, , ) end function love.update() --窗口焦点事件,当失去焦点时,应该让游戏暂停
if love.window.hasFocus() then
kfocus="window has keyboard focus"
else
kfocus="window lose keyboard focus"
end if love.window.hasMouseFocus() then
mfocus="window has mouse focus"
else
mfocus="window lose mouse focus"
end
--窗口是否可见
if love.window.isVisible() then
msg="Window is visible!"
else
msg="Window is not visible!"
end
end function love.keypressed(key)
if key == "escape" then
love.event.quit()
end
--测试love.resize
if key == "c" then
love.window.setMode(,)
end
if key== "n" then
love.window.setFullscreen( true, "normal" )
end
if key=="d" then
love.window.setFullscreen( true, "desktop" )
end end --love.window.isVisible的回调模式
function love.visible(v)
if v then
print("Window is visible!")
else
print("Window is not visible!")
end
end
--窗口大小改变事件,只有不满足love.window.setMode设置的大小时引发
function love.resize(w, h)
msg=("resize width: %d and height: %d."):format(w, h)
print(msg)
end --love.window.hasFocus的回调模式
function love.focus(f)
if not f then
text = "UNFOCUSED!!"
print("LOST FOCUS")
else
text = "FOCUSED!"
print("GAINED FOCUS")
end
end
--love.window.hasMouseFocus的回调模式
function love.mousefocus(f)
if not f then
text = "Mouse is not in the window!"
print("LOST MOUSE FOCUS")
else
text = "Mouse is in the window!"
print("GAINED MOUSE FOCUS")
end
end
love2d教程33--window模块的更多相关文章
- love2d教程34--thread模块
love的thread是一个单独的lua运行环境,与主线程平行.因此可以用线程来处理 处理复杂的计算,不过由于隔离,线程不能访问主线程的变量和方法,而且进程 间通信也受限. 可以在线程里共享lov ...
- [译]Vulkan教程(33)多重采样
[译]Vulkan教程(33)多重采样 Multisampling 多重采样 Introduction 入门 Our program can now load multiple levels of d ...
- [SQL基础教程] 3-3 HAVING
[SQL基础教程] 3-3 HAVING HAVING子句 SELECT col_1,col_2 FROM table GROUP BY col_1,col_2 HAVING col_1 = '2'; ...
- Pytest权威教程07-Monkeypatching,对模块和环境进行Mock
目录 Monkeypatching,对模块和环境进行Mock 简单示例如: 猴子补丁方法 Monkeypatching 返回对象: 构建mock类 全局补丁示例如:阻止"requests&q ...
- Directx11教程(33) 纹理映射(3)
原文:Directx11教程(33) 纹理映射(3) 现在我们在myTutorialD3D11_5的基础上,来逐步编码实现纹理映射,之所以在myTutorialD3D11_5基础上改写,是 ...
- Play Framework Web开发教程(33): 结构化页面-组合使用模板
和你编写代码相似,你编写的页面也能够由多个小的片段组合而成,这些小的片段本身也能够由更小的片段构成.这些小片段一般是能够在其他页面反复使用的:有些部分能够用在全部页面,而有些部分是某些页面特定的.本篇 ...
- 【Amaple教程】2. 模块
正如它的名字,模块用于amaplejs单页应用的页面分割,所有的跳转更新和代码编写都是以模块为单位的. 定义一个模块 一个模块由<module>标签对包含,内部分为template模板.J ...
- XAF应用开发教程(五)验证模块
数据验证是应用程序开发中使用频率最高的功能模块,本节详细介绍一下XAF中如何使用验证模块. XAF 验证模块内置了下面的一些验证规则: 验证规则类型 说明 RuleCombinationOfPrope ...
- 13-(基础入门篇)系统教程演示(GPRS模块)
https://www.cnblogs.com/yangfengwu/p/9966702.html 前几节作为基础教程和系统教程的开端,有了前面的基础才更好的学习基础教程和系统教程. https:// ...
随机推荐
- myEclipse的配置
- 试用cocos2dx 3.1.1
最终有时间,開始全力投入cocos2dx开发了.之前也积累了不少.只是都是基于2.2.2的,3.1.1的版本号也出来一段时间,应该算是成熟了,今天就试试.一个最大的变化就是不须要cygwin了,直接使 ...
- Node.js m03122图片批量下载爬虫1.00
//====================================================== // m03122图片批量下载爬虫1.00 // 2017年11月18日 //==== ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何修改代码字体
工具-选项 TwinCAT,PLC Environment,Text editor,然后在文本区域中修改字体 更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i. ...
- ModelAndView command
new ModelAndView("student", "command", new Student()); 对“如果在JSP中使用<form:form& ...
- 分布式消息系统Jafka入门指南
分布式消息系统Jafka入门指南 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.JafkaMQ简单介绍 JafkaMQ是一个分布式的公布/订阅消息系 ...
- url 传值
js获取url参数值: index.htm?参数1=数值1&参数2=数值2&参数3=数据3&参数4=数值4&...... 静态html文件js读取url参数 根据获取h ...
- DNS message解析
案例吐个槽,命苦啊,要自己动手解包. 另外,这里的内容是半路找来的,如果有冲突,自行翻阅rfc1035.我还没校正过. The Structure 如下图: 所有的DNS message都包含了下面这 ...
- IOS Exception 1(libc++abi.dylib: terminating with uncaught exception of type NSException)
2014-08-05 22:18:46.455 SwiftUI[1329:40871] -[_TtC7SwiftUI14MViewControler clickMe]: unrecognized se ...
- HTML5学习笔记 视频
许多时髦的网站都提供视频.html5提供了展示视频的标准 检测您的浏览器是否支持html5视频 Web上的视频 直到现在,仍然不存在一项旨在网页上显示视频的标准. 今天,大多数视频是通过插件(比如Fl ...