-
Notifications
You must be signed in to change notification settings - Fork 4
/
00_tlcjs_reference.txt
160 lines (106 loc) · 3.46 KB
/
00_tlcjs_reference.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
:prev_link: 15_something
:next_link: 16_something_else
= TLC.js Reference =
This is a reference for how to use the "tlc.js" JavaScript library.
=== print() ===
Requires one argument, which can be anything.
Writes or draws on the screen.
[source, javascript]
----
print(10);
----
=== circle() ===
circle(): Takes two arguments, a radius and a color, which should be a number and a string.
Returns a circle of that size and color.
[source, javascript]
----
circle(100, 'red');
----
=== rectangle() ===
Requires three arguments, a width, a height, and a color. The first two should be numbers, the last a string.
Returns a rectangle of that size and color.
[source, javascript]
----
rectangle(100, 50, 'black');
----
=== line() ===
Requires four arguments, all numbers -- StartX, StartY, EndX, EndY. Line draws a line from one point to another. The first two arguments are the X,Y coordinates of the starting point. The last two arguments are the X,Y coordinates of the eding point.
Returns a line.
[source, javascript]
----
line(0,0, 100, 200);
----
=== width() ===
Requires one argument, an image.
Returns the image's width.
[source, javascript]
----
width(circle(20, 'red'));
----
=== height() ===
Requires one argument, an image.
Returns the image's height.
[source, javascript]
----
height(circle(20, 'red'));
----
=== stringLength() ===
Requires one argument, a string.
Returns the number of characters in the string.
[source, javascript]
----
stringLength('Hello world');
----
=== text() ===
Requires two arguments, text to place in the graphic and a number, the size of the text in pixels.
Returns an image of some text.
[source, javascript]
----
text('Hello', 20);
----
=== emptyScene() ===
Requires two arguments, a width and a height, both numbers.
Returns an image with a white background and a black border.
[source, javascript]
----
emptyScene(300, 200);
----
=== overlay() ===
Requires two arguments, a foreground and a background
image.
Returns the foreground image centered horizontally and vertically over the background image.
[source, javascript]
----
overlay(circle(10, 'red'), emptyScene(100, 100));
----
=== placeImage() ===
Requires four arguments: a forgeground image, a background image, and x and y coordinates (both numbers).
Returns an image with the upper-left corner of the foreground image at the x and y coordinates of the background image.
[source, javascript]
----
placeImage(rectangle(10,10,'red'), rectangle(100,100,'black'), 40, 40);
----
=== animate() ===
Requires one argument, a function that takes a number and produces a image.
Calls that function and prints the image, with the input of a number increasing each "tick" of the clock.
[source, javascript]
----
animate(function(n) {
return overlay(circle(n, 'red'), emptyScene(100,100));
});
----
=== bigBang() ===
Requires four arguments. The first argument is the initial state of the world. The second argument is a function that takes one argument, a world, and returns an image. The third argument is a function that takes one argument, a world, and returns another world. The last argument takes a world and string.
Calls those three functions every tick. (For more detail, see Chapter 4.)
[source, javascript]
----
bigBang(0, function(n) {
return text(String(n), 16);
},
function(n) {
return n + 1;
},
function(n, key) {
return n - 10;
});
----