Skip to content

Instantly share code, notes, and snippets.

@01010111
Created December 13, 2019 14:30
Show Gist options
  • Save 01010111/ed81775984c8d8590b57772183f208e1 to your computer and use it in GitHub Desktop.
Save 01010111/ed81775984c8d8590b57772183f208e1 to your computer and use it in GitHub Desktop.
Scrollable Text Area
package states;
import flixel.FlxG;
import flixel.FlxState;
import flixel.math.FlxRect;
import flixel.text.FlxText;
using Math;
class PlayState extends FlxState {
var text:ScrollText;
override function create() {
text = new ScrollText(10, 10, FlxG.width - 20, FlxG.height - 20, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis viverra nibh cras pulvinar mattis nunc sed. Et malesuada fames ac turpis egestas sed tempus urna. Sed arcu non odio euismod lacinia at. Sit amet cursus sit amet. Aliquet risus feugiat in ante metus dictum at tempor commodo. Vulputate odio ut enim blandit volutpat maecenas volutpat. Adipiscing elit pellentesque habitant morbi. Aenean sed adipiscing diam donec adipiscing tristique risus. Quis lectus nulla at volutpat diam ut. Massa tincidunt dui ut ornare lectus. Urna id volutpat lacus laoreet non.\n\nPurus in mollis nunc sed id semper risus in hendrerit. Est lorem ipsum dolor sit amet consectetur adipiscing elit pellentesque. Vitae nunc sed velit dignissim sodales ut. Mauris commodo quis imperdiet massa tincidunt nunc. Euismod lacinia at quis risus. Semper eget duis at tellus at urna. Cras semper auctor neque vitae tempus quam pellentesque nec. Sed felis eget velit aliquet sagittis id consectetur. Sem fringilla ut morbi tincidunt augue. Egestas sed sed risus pretium quam vulputate.\n\nPulvinar neque laoreet suspendisse interdum consectetur libero id faucibus. Ornare suspendisse sed nisi lacus sed viverra tellus in hac. Integer eget aliquet nibh praesent tristique. Accumsan lacus vel facilisis volutpat est. Aliquam malesuada bibendum arcu vitae elementum. Est ante in nibh mauris cursus mattis molestie a iaculis. Velit aliquet sagittis id consectetur. Non blandit massa enim nec dui nunc mattis enim ut. Sit amet cursus sit amet dictum sit amet justo. Nec nam aliquam sem et tortor. Tempor nec feugiat nisl pretium fusce id velit ut tortor. Egestas quis ipsum suspendisse ultrices gravida. Enim nulla aliquet porttitor lacus luctus accumsan tortor posuere ac.\n\nEgestas erat imperdiet sed euismod nisi. Nisi est sit amet facilisis magna etiam. Malesuada fames ac turpis egestas sed. Mauris rhoncus aenean vel elit scelerisque mauris. Tortor aliquam nulla facilisi cras fermentum odio eu. Aenean sed adipiscing diam donec adipiscing tristique. Viverra nibh cras pulvinar mattis. Feugiat nisl pretium fusce id. Dignissim sodales ut eu sem integer vitae. Erat imperdiet sed euismod nisi porta.\n\nPharetra magna ac placerat vestibulum. Eu mi bibendum neque egestas congue quisque egestas diam. Amet mauris commodo quis imperdiet massa tincidunt nunc. Rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt lobortis feugiat. In hac habitasse platea dictumst vestibulum. Aliquet sagittis id consectetur purus. Ut ornare lectus sit amet est. Morbi tristique senectus et netus et malesuada fames. Placerat in egestas erat imperdiet sed. Tristique risus nec feugiat in fermentum. Euismod in pellentesque massa placerat duis ultricies lacus sed. Dictumst vestibulum rhoncus est pellentesque elit. Risus commodo viverra maecenas accumsan lacus vel facilisis. Urna neque viverra justo nec ultrices dui. Nisi vitae suscipit tellus mauris a diam maecenas sed. Sollicitudin aliquam ultrices sagittis orci a.');
add(text);
}
}
class ScrollText extends FlxText {
var textbox_height:Int = 500;
var textbox_y:Float;
public function new(x:Float, y:Float, width:Int, height:Int, text:String) {
super(x, y, width, text);
textbox_height = height;
textbox_y = y;
}
override function update(elapsed:Float) {
// Move it
if (FlxG.keys.pressed.UP) y++;
if (FlxG.keys.pressed.DOWN) y--;
// Clamp it
y = y.min(textbox_y).max(textbox_y - height + textbox_height);
// Clip it
clipRect = FlxRect.get(0, textbox_y - y, width, textbox_height);
super.update(elapsed);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment