--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模块的更多相关文章

  1. love2d教程34--thread模块

    love的thread是一个单独的lua运行环境,与主线程平行.因此可以用线程来处理 处理复杂的计算,不过由于隔离,线程不能访问主线程的变量和方法,而且进程 间通信也受限.   可以在线程里共享lov ...

  2. [译]Vulkan教程(33)多重采样

    [译]Vulkan教程(33)多重采样 Multisampling 多重采样 Introduction 入门 Our program can now load multiple levels of d ...

  3. [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'; ...

  4. Pytest权威教程07-Monkeypatching,对模块和环境进行Mock

    目录 Monkeypatching,对模块和环境进行Mock 简单示例如: 猴子补丁方法 Monkeypatching 返回对象: 构建mock类 全局补丁示例如:阻止"requests&q ...

  5. Directx11教程(33) 纹理映射(3)

    原文:Directx11教程(33) 纹理映射(3)       现在我们在myTutorialD3D11_5的基础上,来逐步编码实现纹理映射,之所以在myTutorialD3D11_5基础上改写,是 ...

  6. Play Framework Web开发教程(33): 结构化页面-组合使用模板

    和你编写代码相似,你编写的页面也能够由多个小的片段组合而成,这些小的片段本身也能够由更小的片段构成.这些小片段一般是能够在其他页面反复使用的:有些部分能够用在全部页面,而有些部分是某些页面特定的.本篇 ...

  7. 【Amaple教程】2. 模块

    正如它的名字,模块用于amaplejs单页应用的页面分割,所有的跳转更新和代码编写都是以模块为单位的. 定义一个模块 一个模块由<module>标签对包含,内部分为template模板.J ...

  8. XAF应用开发教程(五)验证模块

    数据验证是应用程序开发中使用频率最高的功能模块,本节详细介绍一下XAF中如何使用验证模块. XAF 验证模块内置了下面的一些验证规则: 验证规则类型 说明 RuleCombinationOfPrope ...

  9. 13-(基础入门篇)系统教程演示(GPRS模块)

    https://www.cnblogs.com/yangfengwu/p/9966702.html 前几节作为基础教程和系统教程的开端,有了前面的基础才更好的学习基础教程和系统教程. https:// ...

随机推荐

  1. fiddler在ios10.3系统抓包https失败原因解决

    一直是按照以往的设置抓包,设置代理ip,通过Safari下载安装证书,抓包https怎么显示证书无效呢?难道证书被apple设为黑名单了?google后发现,IOS10.3以后,安装了证书不是默认启用 ...

  2. Item 33: 避免覆盖(hiding)“通过继承得到的名字”

    莎士比亚有一个关于名字的说法."What's in a name?" 他问道,"A rose by any other name would smell as sweet ...

  3. Because, since, as, for

    because, as, for, since这几个词都是表示“原因”的连词,语气由强至弱依次为:because→since→as→for;其中because, since, as均为从属连词,引导原 ...

  4. http://blog.csdn.net/xingfuzhijianxia/article/details/6433918

    http://blog.csdn.net/xingfuzhijianxia/article/details/6433918

  5. SVN-项目 XXX 受源代码管理。向源代码管理注册此项目时出错。建议不要对此项目进行任何修改

    错误描述:  项目 XXX 受源代码管理.向源代码管理注册此项目时出错.建议不要对此项目进行任何修改 解决办法: 使用记事本打开,项目csproj文件删除图中几行,重新打开解决方案就可以了 原因分析: ...

  6. 十招让Ubuntu 16.04用起来更得心应手

    Ubuntu 16.04是一种长期支持版本(LTS),是Canonical承诺发布五年的更新版.也就是说,你可以让这个版本在电脑上运行五年!这样一来,一开始就设置好显得特别重要.你应该确保你的软件是最 ...

  7. c#跟objective-c语言特性的对比

    拿c#语言跟objective-c做个对比,记录下自己认为是差不多的东西. 学过objc的人相信对category这个东西肯定不陌生,它可以让我们在没有源码的基础上对原先的类添加额外的一些方法,写到这 ...

  8. Content Provider

    Content Provider:提供了数据的接口,可以共享数据 基本概念:1:为存储和获取数据提供了同一的接口2:可以在不同的应用程序之间共享数据3:Android为常见的一些数据提供了Conten ...

  9. 【菜鸟也疯狂UML系列】——浅析UML四种关系

    在UML中.关系是很重要的.它抽象出对象之间的联系,让对象构成某个联系起来的结构.以下将简要分析一下UML中的四种关系:关联.依赖,泛化,实现. 一.举例罗列 1.关联(Association) 关联 ...

  10. 如何使用angularjs实现表单验证

    <!DOCTYPE html> <html ng-app="myApp"> <head> <title>angularjs-vali ...