Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
pmgl committed Feb 28, 2022
2 parents 96c2794 + 0b1dd4a commit 4cf277d
Show file tree
Hide file tree
Showing 22 changed files with 2,339 additions and 18 deletions.
2 changes: 1 addition & 1 deletion static/doc/ru/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
* FeniXb3 (перевод на Польский язык)
* TinkerSmith (перевод на Немецкий язык)
* HomineLudens (перевод на Итальянский язык)
* Ondinha (перевод на бразильский Потругальский язык)
* Ondinha (перевод на бразильский Португальский язык)

<i class="fab fa-discord"></i> Присоединяйся к нам в Discord: [https://discord.gg/BDMqjxd](https://discord.gg/BDMqjxd)

Expand Down
130 changes: 128 additions & 2 deletions static/doc/ru/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -520,7 +520,7 @@ if gamepad.UP then y += 1 end
|volume|[необязательно] Выходная громкость для воспроизведения этого звука, в диапазоне от 0 до 1|
|pitch|[необязательно] Выходной тон для воспроизведения этого звука, 1 - это тон по умолчанию|
|pan|[необязательно] Настройка скорости для этого звукового воспроизведения, в диапазоне от -1 (слева) до 1 (справа)|
|loop|[optional] Установите значение 1 (true), если вы хотите, чтобы звук зацикливался бесконечно|
|loop|[необязательно] Установите значение 1 (true), если вы хотите, чтобы звук зацикливался бесконечно|

Вызов функции возвращает объект. Этот объект позволяет управлять настройками воспроизведения во время воспроизведения звука:

Expand All @@ -546,7 +546,7 @@ my_sound.setVolume(0.5)
##### Аргументы
|Аргумент|Описание|
|-|-|
|name|Название музыки (из вкладки music вашего проекта) для воспроизведения|
|name|Название музыки (из раздела "Музыка" вашего проекта) для воспроизведения|
|volume|[необязательно] Выходная громкость для воспроизведения этой музыки, в диапазоне от 0 до 1|
|loop|[необязательно] Установите значение 1 (true), если вы хотите, чтобы музыка зацикливалась бесконечно|

Expand Down Expand Up @@ -636,6 +636,132 @@ mymap = maps["map1"]

*Примечание: другие поля и собственные методы могут казаться доступными, когда вы осматриваете объект карты в консоли. Такие недокументированные поля и методы могут быть отключены в будущем, поэтому не полагайтесь на них слишком сильно!

## Ассеты
Менеджер ассетов в microStudio позволяет импортировать различные типы файлов в ваш проект и загружать их из вашего кода.
В настоящее время он поддерживает следующие типы файлов:
* **.TTF**: файлы шрифтов, которые могут быть использованы для отображения текста на экране
* **.JSON**: структурированные данные JSON загружаются как объект microScript
* **.GLB**, **.OBJ**: 3D модели (могут быть загружены и использованы только с Babylon.js или micro3D)
* **.TXT**: обычные текстовые файлы, которые могут быть загружены как строковое значение
* **.CSV**: файлы значений, разделенных запятыми, также могут быть загружены как строковое значение

### Вкладка Ассеты
Вкладка "Ассеты" должна быть активирована для вашего проекта, что можно сделать на вкладке опций проекта.

### Загрузка ассетов
В отличие от спрайтов, карт и других встроенных ассетов, импортируемые вами пользовательские ассеты не загружаются при запуске проекта microStudio. Вам
необходимо загрузить их из вашего кода. Загрузка происходит асинхронно, и у вас есть два способа проверить, загружен ли ваш ассет и готов ли он к использованию:
* Вы можете установить необязательную функцию обратного вызова; эта функция будет вызвана, когда актив будет загружен, с данными, переданными в качестве аргумента.
* Функция загрузки также возвращает объект `loader`, который имеет свойство `.ready`. Как только вы убедитесь, что свойство установлено в 1 (true), данные готовы и присоединены как свойство объекта loader.

<!--- suggest_start asset_manager.loadFont --->.
##### asset_manager.loadFont("myfolder/myfont" )
Инициирует загрузку шрифта.
<!--- suggest_end --->.

Затем вы можете проверить, готов ли шрифт, и использовать его так же, как и встроенные шрифты:

```
if screen.isFontReady("myfont") then ... end
screen.setFont("myfont")
```

<!--- suggest_start asset_manager.loadJSON --->
##### loader = asset_manager.loadJSON( "myfolder/myjsonfile", callback )
Инициирует загрузку JSON-файла. Результатом будет объект microScript, содержащий все данные.
<!--- suggest_end --->.

Загрузка является асинхронной, у вас есть два способа проверить, когда загрузка завершена:

###### Пример с использованием функции обратного вызова
```
asset_manager.loadJSON("somefolder/myjsonfile", function(data)
myobject = data
end)
```

###### Пример использования объекта загрузчика
```
loader = asset_manager.loadJSON("somefolder/myjsonfile")
(...)
if loader.ready then
myobject = loader.data
end
```

<!--- suggest_start asset_manager.loadText --->
##### loader = asset_manager.loadText( "myfolder/myjsonfile", callback )
Инициирует загрузку текстового файла. Результатом будет строка microScript, содержащая весь текст.
<!--- suggest_end --->.

Загрузка происходит асинхронно, у вас есть два способа проверить завершение загрузки:

###### Пример с использованием функции обратного вызова
```
asset_manager.loadText("somefolder/mytextfile", function(text)
mytext = text
end)
```

###### Пример использования объекта loader
```
loader = asset_manager.loadText("somefolder/mytextfile")
(...)
if loader.ready then
mytext = loader.text
end
```

<!--- suggest_start asset_manager.loadCSV --->
##### loader = asset_manager.loadCSV( "myfolder/mycsvfile", callback )
Инициирует загрузку CSV-файла. Результатом будет строка microScript, содержащая весь текст файла.
<!--- suggest_end --->.

Примечание: содержимое CSV-файла возвращается, как если бы это был обычный текстовый файл. Вы должны обработать весь парсинг из вашего кода.
Загрузка происходит асинхронно, у вас есть два способа проверить, когда загрузка завершена:

###### Пример с использованием функции обратного вызова
```
asset_manager.loadCSV("somefolder/mycsvfile", function(text)
mytext = text
end)
```

###### Пример использования объекта loader
```
loader = asset_manager.loadCSV("somefolder/mycsvfile")
(...)
if loader.ready then
mytext = loader.text
end
```

<!--- suggest_start asset_manager.loadModel --->
##### loader = asset_manager.loadModel( "myfolder/mymodelfile", callback )
Инициирует загрузку 3D модели. Это работает, только если вы выбрали Babylon.js или micro3D в качестве графических движков для вашего проекта.
Результатом является объект `container`, содержащий все данные модели.
<!--- suggest_end --->.

Загрузка происходит асинхронно, у вас есть два способа проверить завершение загрузки:

###### Пример с использованием функции обратного вызова
```
asset_manager.loadModel("somefolder/mymodelfile", function(container)
container.addAllToScene()
// или посмотрите документацию Babylon.js для других способов обработки результата
// asset_manager.loadModel отображается на BABYLON.SceneLoader.LoadAssetContainer
end)
```

###### Пример использования объекта загрузчика
```
loader = asset_manager.loadModel("somefolder/mymodelfile")
(...)
if loader.ready then
loader.container.addAllToScene()
end
```

## Система
Объект ``System`` позволяет получить доступ к функции ``time``, которая возвращает прошедшее время в миллисекундах (с 1 января 1970 года). Но прежде всего, вызываемая в разное время, она позволяет измерять разницу во времени.

Expand Down
12 changes: 6 additions & 6 deletions static/doc/ru/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

```
draw = function()
screen.drawSprite ("icon",0,0,100,100)
screen.drawSprite ("icon", 0, 0, 100, 100)
end
```

Expand All @@ -48,8 +48,8 @@ update = function()
end
draw = function()
screen.fillRect(0,0,400,400,"#000")
screen.drawSprite("icon",x,y,20,20)
screen.fillRect(0, 0, 400, 400, "#000")
screen.drawSprite("icon", x, y, 20, 20)
end
```

Expand Down Expand Up @@ -125,14 +125,14 @@ end
draw = function()
// заполняем экран черным цветом
screen.clear()
// нарисуйте спрайт "icon" в центре экрана, размером 100x100
screen.drawSprite("icon",0,0,100,100)
// отрисовываем спрайт "icon" в центре экрана, размером 100x100
screen.drawSprite("icon", 0, 0, 100, 100)
end
```

В большинстве случаев ``update`` происходит 60 раз в секунду. Но некоторые компьютеры или планшеты могут обновлять экран 120 раз в секунду или даже больше. Также может случиться, что устройство, на котором запущена программа, перегружено и не может обновлять экран 60 раз в секунду, в этом случае функция ``draw`` будет вызываться реже. Вот почему ``update`` и ``draw`` - это две отдельные функции: что бы ни случилось, ``update`` будет вызываться ровно 60 раз в секунду, а когда вызывается ``draw``, значит, пора перерисовывать экран.

###Выполнение
### Выполнение

В разделе "Код" правая часть экрана позволяет увидеть вашу программу в действии, продолжая модифицировать ее исходный код. Чтобы запустить программу, просто нажмите на кнопку <i class="fa fa-play"></i>. Вы можете прервать выполнение программы в любое время, нажав на кнопку <i class="fa fa-pause"></i>.

Expand Down
152 changes: 152 additions & 0 deletions static/tutorials/ru/drawing/1_shapes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
<!-- 1. Shapes (Rect, Round, RoundRect) -->
<!-- 2. Colors -->
<!-- 3. Lines, Polygons -->
<!-- 4. Text -->
<!-- 5. Sprites and Maps -->
<!-- 6. Gradients -->
<!-- 7. Rotating, Scaling, Transparency -->


# Tutorial

:project Tutorial: Drawing

## Drawing

:position 30,30,40,40

:overlay

### Drawing

In microStudio, you can consider the computer screen as a drawing board.
You will be able to draw shapes, text, lines, polygons, images (sprites) and
maps with code, by calling predefined functions.

Let's start by drawing shapes!


## Rectangle

### Drawing a rectangle

:position 50,50,40,40

For this tutorial you can delete all the default code contents in the code window.
Now just start with the following line of code:

```
screen.fillRect(0,0,50,50,"#F00")
```

## Rectangle

### Drawing a rectangle

:position 50,50,40,40

:highlight #run-button

Click the button "Run". Your program starts and you will see it draws a red
square in the center of the run window. Let's have a closer look at the code:

* ```screen``` is the base object representing the screen
* ```fillRect``` is a member function of screen, which fills a rectangle, at given coordinates, with the given color
* ```0,0,50,50``` are the drawing coordinates in this order: 0,0 are the x and y coordinates of the center of our rectangle ; 50,50 are the width and height of our rectangle.
* ```"#F00"``` defines the color as red. You will learn more about colors in the next tutorial.


## Rectangle

### Drawing a rectangle

:position 50,50,40,40

To better understand your code, you can start playing with the values: click in your code
on one of the values (```0,0,50,50```) then hold down the CTRL key of your computer keyboard. A slider
will show up, use it to change the value and see how it affects the rectangle being drawn in the
execution window.

You may also click on the color ```"#F00"``` and hold down CTRL to pick other colors.

## Screen coordinates

### Screen coordinates

In *microStudio*, the coordinate system is based on the center of the screen. Thus the center
of the screen has the coordinates 0,0. In portrait mode, the x coordinate will range from -100 (leftmost point) to +100 (rightmost point).
In landcape mode, the y coordinate will range from -100 to 100 as well. This is illustrated below:

![Screen coordinates](/doc/img/screen_coordinates.png "Screen coordinates")

This coordinate system will help you to scale your content correctly and fit any screen size regardless of the actual,
physical pixel resolution of the screen.

## Rectangle outline

### Drawing a rectangle outline

:position 50,50,40,40

You can draw a rectangle outline by changing your code to:

```
screen.drawRect(0,0,50,50,"#F00")
```

When before drawing outlines, you can use ```screen.setLineWidth``` to define the
thickness of the lines. The default line width is 1. Try for example:

```
screen.setLineWidth(4)
screen.drawRect(0,0,50,50,"#F00")
```

## Round shapes

### Drawing circles and ellipses

:position 50,50,40,40

Similarly, you can draw a round shape (circle, ellipse depending on the size used) using ```fillRound``` or
```drawRound``` methods. Examples:

```
screen.fillRound(0,0,50,50,"#F00")
```

or

```
screen.drawRound(0,0,50,50,"#FFF")
```


## Rounded rectangle

### Rounded rectangle

:position 50,50,40,40

You can draw rounded rectangles with ```fillRoundRect``` and ```drawRoundRect```. The corners of your
rectangle area will be rounded. There is an additional parameter here which is the radius of the rounding
for the corners. Try for example:

```
screen.fillRoundRect(0,0,50,50,10,"#F00")
```

or

```
screen.drawRoundRect(0,0,50,50,10,"#FFF")
```

The rounding radius in the examples above is 10. You can change its value and see how it affects the drawing.


## Move to colors

### Time to learn about colors!

You can now continue with the next tutorial, where you will learn about colors.
Loading

0 comments on commit 4cf277d

Please sign in to comment.