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:// ...
随机推荐
- Weblogic常见故障之二:XAER_NOTA XAException问题的解决
在weblogic执行XA操作的时候,我们会碰到如下的错误,后来发现是JDBC配置的问题.主要报错:java.sql.SQLException: XA error: XAER_NOTA : The X ...
- ISP图像调试工程师——色彩还原(熟悉图像预处理和后处理技术)
http://blog.sina.com.cn/s/blog_5e125dcf0100k8s3.html 色彩还原: https://wenku.baidu.com/view/123fb51a6edb ...
- JavaScript 中的不可变对象(Immutable Objects)
默认情况下,JavaScript 中的对象是可变的.我们可以更改原始值(字符串,数字等)和对象.我们来看看这个对象: let obj = { num: , obj: { content: " ...
- xml文件中配置JDBC源遇到问题 : The reference to entity "characterEncoding" must end with the ';' delimiter
数据源配置时加上编码转换格式后出问题了: The reference to entity"characterEncoding" must end with the ';' deli ...
- UVA270-Lining Up
斜率斜率斜率......... #include<iostream> #include<cstdio> #include<algorithm> #include&l ...
- Win7开机提示group policy client无法登陆怎么办
1 开机按F8,进入安全模式 2 进入系统之后运行注册表,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prof ...
- 小程序show-confirm-bar完成按钮不能隐藏
<textarea>show-confirm-bar="false"></textarea> 不生效怎么办>? 改成 show-confir ...
- 物联网通信协议——比较-MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP
物联网通信协议——比较-MQTT. DDS. AMQP.XMPP. JMS. REST. CoAP AMQP & MQTT & DDS (https://www.youtube.c ...
- Paper Reading 1 - Playing Atari with Deep Reinforcement Learning
来源:NIPS 2013 作者:DeepMind 理解基础: 增强学习基本知识 深度学习 特别是卷积神经网络的基本知识 创新点:第一个将深度学习模型与增强学习结合在一起从而成功地直接从高维的输入学习控 ...
- LAMP架构三
PHP相关配置 1.查找php配置文件/usr/local/php/bin/php -i或者phpinfo() [root@bogon admin]# /usr/local/php/bin/php - ...