Difference between revisions of "Message in a Bottle"
(→Questions) |
m (Added: Other Languages) |
||
(10 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
__FORCETOC__ | __FORCETOC__ | ||
− | =About= | + | ==About== |
− | This is a Message management library for LOVE. It aims to be unobtrusive and easy to use. | + | This is a Message management library for LOVE 0.7.0. It aims to be unobtrusive and easy to use. |
[[File:MessageInABottle.png]] | [[File:MessageInABottle.png]] | ||
− | ==Download== | + | ===Download=== |
− | Download the code or sample love from [http://bitbucket.org/dannyfritz/message-in-a-bottle/downloads | + | Download the code or sample love from [http://bitbucket.org/dannyfritz/message-in-a-bottle/downloads bitbucket]. |
This library requires [[MiddleClass]]. It is included. | This library requires [[MiddleClass]]. It is included. | ||
− | ==Contact== | + | |
− | + | ===Contact=== | |
+ | See the [http://love2d.org/forums/viewtopic.php?f=5&t=2153#p22671 forum post] for public questions. Go to the [http://bitbucket.org/dannyfritz/message-in-a-bottle/issues?status=new&status=open Issue Tracker] for bugs. Look around for [[User:Technocat |TechnoCat]] if you have any further questions or concerns. | ||
It would be cool if you told me if you use it in your project. I would love to see what this is used for. | It would be cool if you told me if you use it in your project. I would love to see what this is used for. | ||
− | =Features= | + | ==Features== |
* StayBottle, bottles that stay until a button is pressed. | * StayBottle, bottles that stay until a button is pressed. | ||
* TimedBottle, bottles that stay until a button is pressed or until a duration of time has passed. | * TimedBottle, bottles that stay until a button is pressed or until a duration of time has passed. | ||
Line 21: | Line 22: | ||
* Sleek and Stylish Bottle defaults | * Sleek and Stylish Bottle defaults | ||
− | ==Missing Features== | + | ===Missing Features=== |
Not implemented yet, but plan to. | Not implemented yet, but plan to. | ||
* Boolean Bottles | * Boolean Bottles | ||
* Choice Bottles | * Choice Bottles | ||
− | =Configuring= | + | ==Configuring== |
Much of the configuration you are going to want to do will take place at the top of MessageInABottle.lua. | Much of the configuration you are going to want to do will take place at the top of MessageInABottle.lua. | ||
− | =Example= | + | ==Usage== |
+ | ===Setting up Ocean=== | ||
+ | <source lang="lua"> | ||
+ | require 'MessageInABottle.lua' | ||
+ | |||
+ | function love.load() | ||
+ | ocean = Ocean:new() | ||
+ | end | ||
+ | |||
+ | function love.update(dt) | ||
+ | ocean:update(dt) | ||
+ | end | ||
+ | |||
+ | function love.draw() | ||
+ | ocean:draw() | ||
+ | end | ||
+ | </source> | ||
+ | ===Example=== | ||
<source lang="lua"> | <source lang="lua"> | ||
require 'MessageInABottle.lua' | require 'MessageInABottle.lua' | ||
Line 37: | Line 55: | ||
--Initialize the ocean to manage the bottles. | --Initialize the ocean to manage the bottles. | ||
− | --It is going to act as a | + | --It is going to act as a bottle queue. |
ocean = Ocean:new() | ocean = Ocean:new() | ||
Line 43: | Line 61: | ||
ocean:addBottle(TimeBottle:new(nil,"...",nil)) | ocean:addBottle(TimeBottle:new(nil,"...",nil)) | ||
+ | --Create a stay bottle and add it to the ocean | ||
local bottle = StayBottle:new(nil,"What is this?") | local bottle = StayBottle:new(nil,"What is this?") | ||
+ | --Change some bottle settings to non-default ones | ||
bottle:setX(310) | bottle:setX(310) | ||
bottle:setVolume(0) | bottle:setVolume(0) | ||
Line 50: | Line 70: | ||
function love.update(dt) | function love.update(dt) | ||
+ | --Required to update the bottles | ||
ocean:update(dt) | ocean:update(dt) | ||
end | end | ||
function love.draw() | function love.draw() | ||
− | |||
love.graphics.setColor(0,0,0) | love.graphics.setColor(0,0,0) | ||
+ | --This is showing some useful variables ocean stores. | ||
love.graphics.print( | love.graphics.print( | ||
'last bottle return was: '..ocean.response.. | 'last bottle return was: '..ocean.response.. | ||
' at '..(math.floor(ocean.responseTime*10)/10).. | ' at '..(math.floor(ocean.responseTime*10)/10).. | ||
's from '..ocean.responseID,12,12) | 's from '..ocean.responseID,12,12) | ||
+ | --This is all that is needed to draw the current bottle | ||
ocean:draw() | ocean:draw() | ||
end | end | ||
function love.keypressed(k,u) | function love.keypressed(k,u) | ||
+ | --You can add a bottle on the fly. | ||
if k=="d" then | if k=="d" then | ||
local x = math.floor(math.random(400)) | local x = math.floor(math.random(400)) | ||
Line 74: | Line 97: | ||
</source> | </source> | ||
− | =Constructors= | + | ==Constructors== |
− | ==Ocean== | + | ===Ocean=== |
<source lang="lua"> | <source lang="lua"> | ||
Ocean:new() | Ocean:new() | ||
</source> | </source> | ||
− | ==MessageBottle== | + | ===MessageBottle=== |
Do not use this. It is the parent class of all Bottles. | Do not use this. It is the parent class of all Bottles. | ||
<source lang="lua"> | <source lang="lua"> | ||
Line 88: | Line 111: | ||
{{param|string|text|The text to display on the Bottle. e.g. "Will you open the door?"}} | {{param|string|text|The text to display on the Bottle. e.g. "Will you open the door?"}} | ||
− | ==StayBottle== | + | ===StayBottle=== |
<source lang="lua"> | <source lang="lua"> | ||
StayBottle:new(id, text) | StayBottle:new(id, text) | ||
Line 95: | Line 118: | ||
{{param|string|text|The text to display on the Bottle. e.g. "Will you open the door?"}} | {{param|string|text|The text to display on the Bottle. e.g. "Will you open the door?"}} | ||
− | ==TimeBottle== | + | ===TimeBottle=== |
<source lang="lua"> | <source lang="lua"> | ||
TimeBottle:new(id, text, timeout) | TimeBottle:new(id, text, timeout) | ||
Line 103: | Line 126: | ||
{{param|number|timeout|The amount of time the bottle will display for.}} | {{param|number|timeout|The amount of time the bottle will display for.}} | ||
− | =Setter Functions= | + | ==Setter Functions== |
− | ==setX== | + | ===Timeout=== |
+ | <source lang="lua"> | ||
+ | TimeBottle:setTimeout(timeout) | ||
+ | </source> | ||
+ | {{param|number|timeout|The time left for a TimeBottle}} | ||
+ | |||
+ | ===setX=== | ||
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setX(x) | MessageBottle:setX(x) | ||
Line 110: | Line 139: | ||
{{param|number|x|The x position of the Bottle}} | {{param|number|x|The x position of the Bottle}} | ||
− | ==setY== | + | ===setY=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setY(y) | MessageBottle:setY(y) | ||
Line 116: | Line 145: | ||
{{param|number|y|The y position of the Bottle}} | {{param|number|y|The y position of the Bottle}} | ||
− | ==setPosition== | + | ===setPosition=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setPosition(x, y) | MessageBottle:setPosition(x, y) | ||
Line 123: | Line 152: | ||
{{param|number|y|The y position of the Bottle}} | {{param|number|y|The y position of the Bottle}} | ||
− | ==setWidth== | + | ===setWidth=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setWidth(width) | MessageBottle:setWidth(width) | ||
Line 129: | Line 158: | ||
{{param|number|width|The width of the Bottle}} | {{param|number|width|The width of the Bottle}} | ||
− | ==setHeight== | + | ===setHeight=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setHeight(height) | MessageBottle:setHeight(height) | ||
Line 135: | Line 164: | ||
{{param|number|height|The height of the Bottle}} | {{param|number|height|The height of the Bottle}} | ||
− | ==setButton== | + | ===setButton=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setButton(button) | MessageBottle:setButton(button) | ||
Line 141: | Line 170: | ||
{{param|KeyConstant|button|The button the Bottle will use.}} | {{param|KeyConstant|button|The button the Bottle will use.}} | ||
− | ==setEase== | + | ===setEase=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setEase(ease) | MessageBottle:setEase(ease) | ||
Line 147: | Line 176: | ||
{{param|function|ease|The ease function to use for easing-in.}} | {{param|function|ease|The ease function to use for easing-in.}} | ||
− | ==setEaseTime== | + | ===setEaseTime=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setEaseTime(easeTime) | MessageBottle:setEaseTime(easeTime) | ||
Line 153: | Line 182: | ||
{{param|number|easeTime|The time to spend easing-in.}} | {{param|number|easeTime|The time to spend easing-in.}} | ||
− | ==setFade== | + | ===setFade=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setFade(fade) | MessageBottle:setFade(fade) | ||
Line 159: | Line 188: | ||
{{param|function|fade|The fade function to use for fading-in.}} | {{param|function|fade|The fade function to use for fading-in.}} | ||
− | ==setFadeTime== | + | ===setFadeTime=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setFadeTime(fadeTime) | MessageBottle:setFadeTime(fadeTime) | ||
Line 165: | Line 194: | ||
{{param|number|fadeTime|The time to spend fading-in.}} | {{param|number|fadeTime|The time to spend fading-in.}} | ||
− | ==setEnterCallback== | + | ===setEnterCallback=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setEnterCallback(enterCB) | MessageBottle:setEnterCallback(enterCB) | ||
Line 171: | Line 200: | ||
{{param|function|enterCB|The callback function to call on opening a bottle.}} | {{param|function|enterCB|The callback function to call on opening a bottle.}} | ||
− | ==setExitCallback== | + | ===setExitCallback=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setEnterCallback(exitCB) | MessageBottle:setEnterCallback(exitCB) | ||
</source> | </source> | ||
− | {{param|function|exitCB|The callback function to call on exiting a bottle.}} | + | {{param|function|exitCB|The callback function to call on exiting a bottle. The return of the bottle is passed to the exitCallback.}} |
− | ==setSound== | + | ===setSound=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setSound(sound) | MessageBottle:setSound(sound) | ||
Line 183: | Line 212: | ||
{{param|string|sound|The location of a sound file.}} | {{param|string|sound|The location of a sound file.}} | ||
− | ==setVolume== | + | ===setVolume=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setVolume(volume) | MessageBottle:setVolume(volume) | ||
Line 189: | Line 218: | ||
{{param|number|volume|The volume of the sound. Normal volume is 1.0.}} | {{param|number|volume|The volume of the sound. Normal volume is 1.0.}} | ||
− | ==setIndicator== | + | ===setIndicator=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setIndicator(indicator) | MessageBottle:setIndicator(indicator) | ||
Line 195: | Line 224: | ||
{{param|string|indicator|The location of the indicator image file. The indicator is the icon that bounces up and down on certain bottles.}} | {{param|string|indicator|The location of the indicator image file. The indicator is the icon that bounces up and down on certain bottles.}} | ||
− | ==setFgColor== | + | ===setFgColor=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setFgColor(r, g, b, a) | MessageBottle:setFgColor(r, g, b, a) | ||
Line 204: | Line 233: | ||
{{param|number|a|The alpha value from 0-255.}} | {{param|number|a|The alpha value from 0-255.}} | ||
− | ==setFont== | + | ===setFont=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setFont(font, size) | MessageBottle:setFont(font, size) | ||
Line 211: | Line 240: | ||
{{param|number|size|The point value size.}} | {{param|number|size|The point value size.}} | ||
− | ==setBgColor== | + | ===setAlign=== |
+ | <source lang="lua"> | ||
+ | MessageBottle:setAlign(align) | ||
+ | </source> | ||
+ | {{param|AlignMode|align|The align mode.}} | ||
+ | |||
+ | ===setBgColor=== | ||
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setFgColor(r, g, b, a) | MessageBottle:setFgColor(r, g, b, a) | ||
Line 220: | Line 255: | ||
{{param|number|a|The alpha value from 0-255.}} | {{param|number|a|The alpha value from 0-255.}} | ||
− | ==setBgRadius== | + | ===setBgRadius=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setBgRadius(r) | MessageBottle:setBgRadius(r) | ||
Line 226: | Line 261: | ||
{{param|number|r|The radius of the corners.}} | {{param|number|r|The radius of the corners.}} | ||
− | ==setBgRadiusSegments== | + | ===setBgRadiusSegments=== |
<source lang="lua"> | <source lang="lua"> | ||
MessageBottle:setBgRadiusSegments(n) | MessageBottle:setBgRadiusSegments(n) | ||
Line 232: | Line 267: | ||
{{param|number|n|The number of segments to draw on each corner.}} | {{param|number|n|The number of segments to draw on each corner.}} | ||
− | |||
− | |||
{{#set:LOVE Version=0.7.0}} | {{#set:LOVE Version=0.7.0}} | ||
{{#set:Description=A message library for LOVE.}} | {{#set:Description=A message library for LOVE.}} | ||
+ | {{#set:Keyword=Graphical User Interface}} | ||
[[Category:Libraries]] | [[Category:Libraries]] | ||
+ | == Other Languages == | ||
+ | {{i18n|Message in a Bottle}} |
Latest revision as of 15:34, 15 December 2019
Contents
- 1 About
- 2 Features
- 3 Configuring
- 4 Usage
- 5 Constructors
- 6 Setter Functions
- 6.1 Timeout
- 6.2 setX
- 6.3 setY
- 6.4 setPosition
- 6.5 setWidth
- 6.6 setHeight
- 6.7 setButton
- 6.8 setEase
- 6.9 setEaseTime
- 6.10 setFade
- 6.11 setFadeTime
- 6.12 setEnterCallback
- 6.13 setExitCallback
- 6.14 setSound
- 6.15 setVolume
- 6.16 setIndicator
- 6.17 setFgColor
- 6.18 setFont
- 6.19 setAlign
- 6.20 setBgColor
- 6.21 setBgRadius
- 6.22 setBgRadiusSegments
- 7 Other Languages
About
This is a Message management library for LOVE 0.7.0. It aims to be unobtrusive and easy to use.
Download
Download the code or sample love from bitbucket.
This library requires MiddleClass. It is included.
Contact
See the forum post for public questions. Go to the Issue Tracker for bugs. Look around for TechnoCat if you have any further questions or concerns.
It would be cool if you told me if you use it in your project. I would love to see what this is used for.
Features
- StayBottle, bottles that stay until a button is pressed.
- TimedBottle, bottles that stay until a button is pressed or until a duration of time has passed.
- Ocean, a management object for Bottles
- Very (and hopefully easily) Configurable Bottles
- Sleek and Stylish Bottle defaults
Missing Features
Not implemented yet, but plan to.
- Boolean Bottles
- Choice Bottles
Configuring
Much of the configuration you are going to want to do will take place at the top of MessageInABottle.lua.
Usage
Setting up Ocean
require 'MessageInABottle.lua'
function love.load()
ocean = Ocean:new()
end
function love.update(dt)
ocean:update(dt)
end
function love.draw()
ocean:draw()
end
Example
require 'MessageInABottle.lua'
function love.load()
love.graphics.setBackgroundColor(255,255,255)
--Initialize the ocean to manage the bottles.
--It is going to act as a bottle queue.
ocean = Ocean:new()
--Create a timed bottle and add it to the ocean
ocean:addBottle(TimeBottle:new(nil,"...",nil))
--Create a stay bottle and add it to the ocean
local bottle = StayBottle:new(nil,"What is this?")
--Change some bottle settings to non-default ones
bottle:setX(310)
bottle:setVolume(0)
ocean:addBottle(bottle)
end
function love.update(dt)
--Required to update the bottles
ocean:update(dt)
end
function love.draw()
love.graphics.setColor(0,0,0)
--This is showing some useful variables ocean stores.
love.graphics.print(
'last bottle return was: '..ocean.response..
' at '..(math.floor(ocean.responseTime*10)/10)..
's from '..ocean.responseID,12,12)
--This is all that is needed to draw the current bottle
ocean:draw()
end
function love.keypressed(k,u)
--You can add a bottle on the fly.
if k=="d" then
local x = math.floor(math.random(400))
local y = math.floor(math.random(150))
ocean:addBottle(TimeBottle:new("PRESSED_D","Timed Box!"))
elseif k=="escape" then
love.event.push("q")
end
end
Constructors
Ocean
Ocean:new()
MessageBottle
Do not use this. It is the parent class of all Bottles.
MessageBottle:new(id, text)
string id
- The unique identifier of the Bottle. e.g. "Open Door"
string text
- The text to display on the Bottle. e.g. "Will you open the door?"
StayBottle
StayBottle:new(id, text)
string id
- The unique identifier of the Bottle. e.g. "Open Door"
string text
- The text to display on the Bottle. e.g. "Will you open the door?"
TimeBottle
TimeBottle:new(id, text, timeout)
string id
- The unique identifier of the Bottle. e.g. "Open Door"
string text
- The text to display on the Bottle. e.g. "Will you open the door?"
number timeout
- The amount of time the bottle will display for.
Setter Functions
Timeout
TimeBottle:setTimeout(timeout)
number timeout
- The time left for a TimeBottle
setX
MessageBottle:setX(x)
number x
- The x position of the Bottle
setY
MessageBottle:setY(y)
number y
- The y position of the Bottle
setPosition
MessageBottle:setPosition(x, y)
setWidth
MessageBottle:setWidth(width)
number width
- The width of the Bottle
setHeight
MessageBottle:setHeight(height)
number height
- The height of the Bottle
setButton
MessageBottle:setButton(button)
KeyConstant button
- The button the Bottle will use.
setEase
MessageBottle:setEase(ease)
function ease
- The ease function to use for easing-in.
setEaseTime
MessageBottle:setEaseTime(easeTime)
number easeTime
- The time to spend easing-in.
setFade
MessageBottle:setFade(fade)
function fade
- The fade function to use for fading-in.
setFadeTime
MessageBottle:setFadeTime(fadeTime)
number fadeTime
- The time to spend fading-in.
setEnterCallback
MessageBottle:setEnterCallback(enterCB)
function enterCB
- The callback function to call on opening a bottle.
setExitCallback
MessageBottle:setEnterCallback(exitCB)
function exitCB
- The callback function to call on exiting a bottle. The return of the bottle is passed to the exitCallback.
setSound
MessageBottle:setSound(sound)
string sound
- The location of a sound file.
setVolume
MessageBottle:setVolume(volume)
number volume
- The volume of the sound. Normal volume is 1.0.
setIndicator
MessageBottle:setIndicator(indicator)
string indicator
- The location of the indicator image file. The indicator is the icon that bounces up and down on certain bottles.
setFgColor
MessageBottle:setFgColor(r, g, b, a)
number r
- The red value from 0-255.
number g
- The green value from 0-255.
number b
- The blue value from 0-255.
number a
- The alpha value from 0-255.
setFont
MessageBottle:setFont(font, size)
setAlign
MessageBottle:setAlign(align)
AlignMode align
- The align mode.
setBgColor
MessageBottle:setFgColor(r, g, b, a)
number r
- The red value from 0-255.
number g
- The green value from 0-255.
number b
- The blue value from 0-255.
number a
- The alpha value from 0-255.
setBgRadius
MessageBottle:setBgRadius(r)
number r
- The radius of the corners.
setBgRadiusSegments
MessageBottle:setBgRadiusSegments(n)
number n
- The number of segments to draw on each corner.
Other Languages
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info