-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJsMobileBasic.txt
More file actions
260 lines (175 loc) · 11.2 KB
/
JsMobileBasic.txt
File metadata and controls
260 lines (175 loc) · 11.2 KB
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
*JsMobileBasic.txt* for JsMobileBasic-IDE (Vim modded). Modified: 2016
November 5
Документация по языку программирования JsMobileBasic ~
Про JsMobileBasic: *JsMobileBasic*
*JsMB*
*jsmobilebasic*
*jsmb*
*jsmb-about*
JsMobileBasic (JsMB) - это новый высокоуровневый кроссплатформенный
интерпретируемый язык программирования, основаный на JavaScript.
#########################################################
#=============Оглавление=============# #
#------------------------------------# #
# 1. Пополняемая история развития # |jsmb-history| #
# 2. От Mobile Basic к JsMobileBasic # |jsmb_frommbasic|
# 3. Синтаксис языка # |jsmb-syntax| #
# 4. Основные операторы # |jsmb-base| #
# 5. Графические операторы # |jsmb-graphic| #
# 6. Работа с градиентами # |jsmb-gradients| #
# 7. Математические функции # |jsmb-math| #
# 8. Операторы интерфейса # |jsmb-interface| #
# 9. Операторы ввода-вывода # |jsmb-io| #
# 10. Работа со звуком # |jsmb-sound| #
#########################################################
==============================================================================
0. История развития *jsmb-history*
Разработка языка началась 3 мая 2016 г. в связи с окончательной гибелью
платформы J2ME.
Тогда в сообществе MobileBasicPRO было решено использовать наработки Mobile
Basic для создания нового кроссплатформенного языка программирования.
Разработкой языка занялся PROPHESSOR (создатель сообщества MobileBasicPRO).
Основной идеей создания было объеденить простоту языка Mobile Basic с
синтаксом JavaScript, и заставить его работать на большинстве современных
платформ.
6 мая 2016 г. к разработке подключился Sagleft, который внёс большой вклад в
развитие языка.
Так же на его сервере по сей день хостятся установочные файлы и SDK.
11 июня 2016 г. началась разработка IDE (JSMOBILEBASIC Crystall).
За разработку взялся Sagleft, но 14 августа 2016 г. покинул проект, так и не
доделав IDE.
В связи с этим разработка IDE отложилась ещё на несколько месяцев, пока её не
занялся PROPHESSOR.
27 июля 2016 г. в проект вступил GIFO как тестер.
13 августа 2016 г. вышел компилятор(сборщик) для JsMB.
14 августа вышел интерактивный редактор JsMB-Editor, основаный на Light Table,
но в связи с тем, что мало подходил в качестве IDE - больше не обновлялася.
23 августа вышло первое JsMB приложение для android - "The Tunnel".
30 августа началась разработка IDE для android, но в связи со сложностью
реализации отложена до "лучших времён".
25 октября 2016 г. было решено использовать модифицированный VIM в качестве
IDE, и 30 октября вышла первая версия JsMobileBasic-IDE (которая, судя по
всему, у вас сейчас и запущена).
Продолжение следует...~
Состав команды:~
*PROPHESSOR*
*Sagleft*
*GIFO*
==============================================================================
1. C Mobile Basic к JsMobileBasic *jsmb_frommbasic*
Comming soon....~
==============================================================================
2. Синтаксис языка *jsmb-syntax*
Comming soon...~
==============================================================================
3. Основные операторы *jsmb-basic*
Comming soon...~
==============================================================================
4. Графические опетаторы *jsmb-graphic*
*clearRect* (x, y, w, h)
Описание:~
Очищает прямоугольную область, начиная от точки с координатой (x, y)
px, шириной w px и высотой h px.
Параметры:~
x, y: координаты левого верхнего угла очищаемой прямоугольной области, px;
w: ширина очищаемой прямоугольной области;
h: высота очищаемой прямоугольной области.
Возвращаемое значение: отсутствует.
Пример использования:~
clearRect(0,0,100,100);
*cls* ()
Описание:~
Очищает экран.
Возвращаемое значение:~
отсутствует.
Пример использования:~
cls();
*drawArc* (x, y, radius, startAngle, endAngle, direction)
Описание:~
Рисует дугу(круг) с центром в точке (x,y) радиусом radius, берущей
начало в точке, имеющей полярную координату startAngle и заканчивающуюся в
точке, имеющую полярную координату endAngle. Переменная direction задает
направление движения: 0 - положительное, другие значения - отрицательное.
Внимание!~
В стандарте JSMB начало координат находится в верхнем левом углу,
соответственно, положительное направление в полярной системе координат
противоположно общепринятому в математике.
Параметры:~
x, y: координаты полюса (центра дуги/круга), px;
radius: радиальная координата дуги/круга (радиус);
startAngle (необязательно): полярная координата начала дуги;
endAngle (необязательно): полярная координата конца дуги;
direction (необязательно): направление рисования дуги.
Возвращаемое значение: ~
отсутствует.
Пример использования:~
drawArc(100,100,10);//круг с центром в точке (100,100) и радусом 10 px.
drawArc(100,100,10,PI,0);//нижний полукруг с центром в точке (100,100) и
радиусом 10 px.
*drawCube* (x, y, x1, y1, q)
Описание:~
Рисует проекцию куба, имеющую левый верхний угол в точке (x, y) и
правый нижний угол в точке (x1, y1). Расстояние между проекциями
противоположных граней (глубина куба) равняется q px.
Параметры:~
x, y: координаты левого верхнего угла проекции куба, px;
x1, y1: координаты правого нижнего угла проекции куба, px;
q: расстояние между проекциями противоположных граней (глубина куба), px.
Возвращаемое значение: отсутствует.
Пример использования:~
drawCube(10,10,100,100,10);
*drawLine* (x, y, x1, y1)
Описание:~
Рисует линию от точки с координатой (x,y) до точки с координатой (x1, y1).
Параметры: ~
x, y: координаты начала линии, px;
x1, y1: координаты конца линии, px.
Возвращаемое значение:~
отсутствует.
Пример использования:~
drawLine(10,10,100,100);
*drawRect* (x, y, w, h)
Описание:~
Рисует прямоугольник, имеющий левый верхний угол в точке с
координатой (x, y) px, шириной w px и высотой h px.
Параметры:~
x, y: координаты левого верхнего угла рисуемого прямоугольника, px;
w: ширина рисуемого прямоугольника, px;
h: высота рисуемого прямоугольника, px;
Возвращаемое значение:~
отсутствует.
Пример использования:~
drawRect(10,10,100,100);
*drawPlot* (x, y)
Описание:~
Рисует точку с координатой (x,y).
Параметры:~
x, y: координаты рисуемой точки, px.
Возвращаемое значение: отсутствует.
Пример использования:~
drawPlot(10,100);
----------Будет оформлено позже----------
*setColor* (color) - задать цвет/градиент
Поддерживает:
RGB: 'rgb(255,128,64);'
HEX: '#4c4c4c'
COLOR: 'red'
*fillScreen* (color) - заливает экран указанным цветом/градиентом color
*setLineWidth* (width) - задать толщину линий
*setFont* (family) - задать шрифт
*setFontSize* (size) - задать размер шрифта (в px) (кегль)
*fillRect* (x,y,w,h) - заливает прямоугольник от x;y с шириной w и высотой h
*fillArc* (x,y,radius,startAngle, endAngle, drection) - тоже самое, что и drawArc, но залитое
*drawRect4* (x,y,x1,y1,x2,y2,x3,y3) - рисует 4-хугольник (рамку) по 4-м точкам
*fillRect4* (x,y,x1,y1,x2,y2,x3,y3) - рисует 4-хугольник (залитый) по 4-м точкам
*drawTriangle* (x,y,x1,y1,x2,y2) - рисует треугольник по 3-м точкам
*fillTriangle* (x,y,x1,y1,x2,y2) - рисует залитый треугольник по 3-м точкам
*makeLinearGradient* (x,y,x1,y1) - создаёт линейный градиент (подробнее позже)
*makeRadialGradient* (x,y,r,x1,y1,r1) - создаёт круговой градиент (подробнее
позже)
*setGragientColor* (name, num, color) - задаёт цвет color градиенту name. num -
номер цвета (начиная с 0)
*makeTexture* (url,repetion) - создаёт текстуру url с повторением
(repeat/no-repeat/repeat-x/repeat-y)
==============================================================================
vim:tw=78:noet:ts=8:ft=help:norl: