Шина-01 | Bus-01

This commit is contained in:
Михаил Капелько
2024-01-05 09:16:21 +03:00
parent d427352dfd
commit 7910d044d2
20 changed files with 540 additions and 220 deletions

View File

@@ -0,0 +1,46 @@
Title: Шина-01
Date: 2024-01-04 00:00
Category: News
Slug: bus-01
Lang: ru
# На пути к портируемому коду
Для достижения портируемости кода необходимо разделить весь код на две части:
* повторяющееся: логика
* уникальное: взаимодействие с окружением
Для упрощения конструирования портируемого кода нужна возможность размещать
любой код - и повторяющийся, и уникальный - без учёта иерархии конечной платформы.
Для этого лучше всего подходит шаблон проектирования «Шина». Шина все куски
кода делает равными, т.к. они взаимодействуют друг с другом через Шину.
# Шина-01
На текущий момент получился следующий результат:
<iframe width="560" height="315" src="https://www.youtube.com/embed/XAlIlG9tVL4?si=5HYRDkNuYE0zeoyo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
Структура модуля:
![YML модуля][yml]
<yml>
Часть визуального представления:
![Визуальное представление][v]
Основная функциональность:
1. Форматирование ввода таким образом, чтобы оставить лишь числа
1. Активация кнопки при наличии не менее, чем трёх чисел
1. Симуляция загрузки при нажатии кнопки
Это пример единственного экземпляра сущности.
Далее предстоит разобраться с множественными экземплярами сущности.
[yml]: ../../images/2024_bus-01_yml.jpg
[v]: ../../images/2024_bus-01_v.jpg

88
ru/news/bus-01.html Normal file
View File

@@ -0,0 +1,88 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
<link rel="stylesheet" href="../../style.css">
</head>
<body>
<script data-goatcounter="https://services.opengamestudio.org:443/count" async src="//services.opengamestudio.org:443/count.js"></script>
<div id="header">
<div>
<strong id="title">Open Game Studio</strong>
<div id="lang">
<a href="../../en/news/bus-01.html">EN</a>
<a href="../../ru/news/bus-01.html">RU</a>
</div>
</div>
<div class="header2">
<div class="menu">
<a href="../../ru/news/index.html">Новости</a>
<a href="../../ru/game/index.html">Игры</a>
<a href="../../ru/tool/index.html">Инструменты</a>
<a href="../../ru/page/about.html">О нас</a>
</div>
<a class="discord" href="https://discord.gg/3A6THQabNf">
<img src="../../images/discord.png"></img>
</a>
<div class="clear"></div>
</div>
</div>
<h3 class="left_item_title">В новостях...</h3>
<center>
<div class="news_item">
<h2 class="news_item_title">
<a href="bus-01.html">Шина-01</a>
</h2>
<p class="news_item_date">
2024-01-04 00:00
</p>
<div class="news_item_contents">
<h1 id="">На пути к портируемому коду</h1>
<p>Для достижения портируемости кода необходимо разделить весь код на две части:</p>
<ul>
<li>повторяющееся: логика</li>
<li>уникальное: взаимодействие с окружением</li>
</ul>
<p>Для упрощения конструирования портируемого кода нужна возможность размещать
любой код - и повторяющийся, и уникальный - без учёта иерархии конечной платформы.
Для этого лучше всего подходит шаблон проектирования «Шина». Шина все куски
кода делает равными, т.к. они взаимодействуют друг с другом через Шину.</p>
<h1 id="01">Шина-01</h1>
<p>На текущий момент получился следующий результат:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/XAlIlG9tVL4?si=5HYRDkNuYE0zeoyo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p>Структура модуля:</p>
<p><img src="../../images/2024_bus-01_yml.jpg" alt="YML модуля" /></p>
<p><yml></p>
<p>Часть визуального представления:</p>
<p><img src="../../images/2024_bus-01_v.jpg" alt="Визуальное представление" /></p>
<p>Основная функциональность:</p>
<ol>
<li>Форматирование ввода таким образом, чтобы оставить лишь числа</li>
<li>Активация кнопки при наличии не менее, чем трёх чисел</li>
<li>Симуляция загрузки при нажатии кнопки</li>
</ol>
<p>Это пример единственного экземпляра сущности. </p>
<p>Далее предстоит разобраться с множественными экземплярами сущности.</p>
</div>
</div>
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = "https://opengamestudio.org/ru/news/bus-01.html";
this.page.identifier = "bus-01.html";
};
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = 'https://opengamestudio.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Пожалуйста, включите JavaScript для просмотра <a href="https://disqus.com/?ref_noscript">комментариев на платформе Disqus.</a></noscript>
<div id="footer">
Сайт сгенерирован <a href="http://opengamestudio.org/pskov/ru">ПСКОВОМ</a>
из <a href="http://github.com/ogstudio/site-opengamestudio">этого исходного кода</a>.
</div>
</center>
</body>
</html>

View File

@@ -30,6 +30,31 @@
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="bus-01.html">Шина-01</a>
</h2>
<p class="news_item_date">
2024-01-04 00:00
</p>
<div class="news_item_contents">
<h1 id="">На пути к портируемому коду</h1>
<p>Для достижения портируемости кода необходимо разделить весь код на две части:</p>
<ul>
<li>повторяющееся: логика</li>
<li>уникальное: взаимодействие с окружением</li>
</ul>
<p>Для упрощения конструирования портируемого кода нужна возможность размещать
любой код - и повторяющийся, и уникальный - без учёта иерархии конечной платформы.
Для этого лучше всего подходит шаблон проектирования «Шина». Шина все куски
кода делает равными, т.к. они взаимодействуют друг с другом через Шину.</p>
<h1 id="01">Шина-01</h1>
<p>На текущий момент получился следующий результат:. . .</p>
</div>
<div class="news_item_more">
<a href="bus-01.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="rpg-ends.html">Изменение целей проекта</a>
@@ -191,22 +216,6 @@ Ubuntu Edge</a>. Особенностью продукта должна была
<a href="teaching-kids-to-program.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2019-year-of-rethinking.html">Год переосмысления</a>
</h2>
<p class="news_item_date">
2019-01-01 0:01
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-12-31-celebration.jpg" alt="Бенгальский огонь" /></p>
<p>Этот год во-многом стал для нас годом переосмысления и определенности. Как некоторые из вас помнят, мы начинали этот проект, для создания среды для разработки игр. В течение многих лет идея развивалась от одной формы к другой, иногда изменения были значительными, в других случаях мы отбрасывали весь код и начинали заново.</p>
<p>В результате всех этих изменений мы подошли к концу 2018 года без готового инструмента, но с четким пониманием того, что за инструмент мы создаем.. . .</p>
</div>
<div class="news_item_more">
<a href="2019-year-of-rethinking.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 1 из 7</p>
<p>

View File

@@ -30,6 +30,22 @@
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="2019-year-of-rethinking.html">Год переосмысления</a>
</h2>
<p class="news_item_date">
2019-01-01 0:01
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-12-31-celebration.jpg" alt="Бенгальский огонь" /></p>
<p>Этот год во-многом стал для нас годом переосмысления и определенности. Как некоторые из вас помнят, мы начинали этот проект, для создания среды для разработки игр. В течение многих лет идея развивалась от одной формы к другой, иногда изменения были значительными, в других случаях мы отбрасывали весь код и начинали заново.</p>
<p>В результате всех этих изменений мы подошли к концу 2018 года без готового инструмента, но с четким пониманием того, что за инструмент мы создаем.. . .</p>
</div>
<div class="news_item_more">
<a href="2019-year-of-rethinking.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="ideal-gamedev.html">Идеальные игры и средства для их разработки</a>
@@ -192,24 +208,6 @@
<a href="the-year-of-lessons.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2017-summary.html">Итоги 2017-го</a>
</h2>
<p class="news_item_date">
2017-11-22 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-11-22-2017-summary.png" alt="Игра на память в фоне" /></p>
<p>Настало время сделать ревизию наших достижений в 2017 году и проверить, насколько они следуют основной цели проекта Opensource Game Studio.</p>
<p><strong>Краткая история</strong></p>
<p>Проекту Opensource Game Studio уже 12 лет.</p>
<p><strong>2005.</strong> Мы начали проект с <a href="https://unixforum.org/index.php?showtopic=9989">фанатичного призыва</a> к созданию самой лучшей игры. Видимо, сразу же после прохождения Half-Life 2 или Morrowind. 99.99% тех, кто хотел участвовать, отвалились в течение первых двух лет. Остались лишь два человека: Михаил (программирование) и Иван (всё остальное). Проект находился в стадии постоянного беспорядка, т.к. у нас не было ни чёткой цели, ни дисциплины. Неудивительно, что за этот период мы можем похвастаться лишь небольшим набором сумбурных демонстраций.. . .</p>
</div>
<div class="news_item_more">
<a href="2017-summary.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 2 из 7</p>
<p>

View File

@@ -30,6 +30,24 @@
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="2017-summary.html">Итоги 2017-го</a>
</h2>
<p class="news_item_date">
2017-11-22 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-11-22-2017-summary.png" alt="Игра на память в фоне" /></p>
<p>Настало время сделать ревизию наших достижений в 2017 году и проверить, насколько они следуют основной цели проекта Opensource Game Studio.</p>
<p><strong>Краткая история</strong></p>
<p>Проекту Opensource Game Studio уже 12 лет.</p>
<p><strong>2005.</strong> Мы начали проект с <a href="https://unixforum.org/index.php?showtopic=9989">фанатичного призыва</a> к созданию самой лучшей игры. Видимо, сразу же после прохождения Half-Life 2 или Morrowind. 99.99% тех, кто хотел участвовать, отвалились в течение первых двух лет. Остались лишь два человека: Михаил (программирование) и Иван (всё остальное). Проект находился в стадии постоянного беспорядка, т.к. у нас не было ни чёткой цели, ни дисциплины. Неудивительно, что за этот период мы можем похвастаться лишь небольшим набором сумбурных демонстраций.. . .</p>
</div>
<div class="news_item_more">
<a href="2017-summary.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="back-to-the-static.html">Назад в Статику</a>
@@ -170,25 +188,6 @@
<a href="lets-go.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="the-year-of-challenges.html">Год испытаний</a>
</h2>
<p class="news_item_date">
2017-01-25 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-01_the-year-of-challenges.png" alt="Запуск ракеты на Байконуре" /></p>
<p>Эта статья содержит наши планы на 2017 год.</p>
<p>Наши предыдущие планы предполагали, что сейчас у нас уже будет поддержка платформы Android. Тем не менее, у нас впереди ещё очень много работы, прежде чем мы сможем объявить о поддержке Android. Судите сами:</p>
<p><img src="../../images/2017-01_mjin-android-gles.png" alt="Отображение кубов на Android" /></p>
<p>Кто-нибудь может посчитать это неудачей. Но не мы. Мы видим шанс начать с низкого старта и прыгнуть высоко!</p>
<p>Т.к. ранее мы имели опыт работы лишь с либеральным и всё прощающим настольным ПК, Android стал для нас полной неожиданностью. На каждом шагу нас ожидало наказание за фривольное использование памяти, ресурсов, графики. Чаще всего в ответ на наши действия мы получали либо падение приложения, либо пустой экран.. . .</p>
</div>
<div class="news_item_more">
<a href="the-year-of-challenges.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 3 из 7</p>
<p>

View File

@@ -30,6 +30,25 @@
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="the-year-of-challenges.html">Год испытаний</a>
</h2>
<p class="news_item_date">
2017-01-25 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-01_the-year-of-challenges.png" alt="Запуск ракеты на Байконуре" /></p>
<p>Эта статья содержит наши планы на 2017 год.</p>
<p>Наши предыдущие планы предполагали, что сейчас у нас уже будет поддержка платформы Android. Тем не менее, у нас впереди ещё очень много работы, прежде чем мы сможем объявить о поддержке Android. Судите сами:</p>
<p><img src="../../images/2017-01_mjin-android-gles.png" alt="Отображение кубов на Android" /></p>
<p>Кто-нибудь может посчитать это неудачей. Но не мы. Мы видим шанс начать с низкого старта и прыгнуть высоко!</p>
<p>Т.к. ранее мы имели опыт работы лишь с либеральным и всё прощающим настольным ПК, Android стал для нас полной неожиданностью. На каждом шагу нас ожидало наказание за фривольное использование памяти, ресурсов, графики. Чаще всего в ответ на наши действия мы получали либо падение приложения, либо пустой экран.. . .</p>
</div>
<div class="news_item_more">
<a href="the-year-of-challenges.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2017-happy-new-year.html">Счастливого 2017-го</a>
@@ -180,23 +199,6 @@
<a href="september-live-session-announcement-tomorrow.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="september-live-session-announcement.html">Прямой эфир: 25 сентября 2016</a>
</h2>
<p class="news_item_date">
2016-09-17 00:00
</p>
<div class="news_item_contents">
<iframe width="560" height="315" src="https://www.youtube.com/embed/Y5hOGKcQ8wA" frameborder="0" allowfullscreen></iframe>
<p><a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=%D0%9F%D1%80%D1%8F%D0%BC%D0%BE%D0%B9+%D1%8D%D1%84%D0%B8%D1%80+Open+Game+Studio%3A+%D0%A1%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8C+2016&iso=20160925T13&p1=166&ah=2">25 сентября 2016 в 13:00 MSK</a> мы проведём <a href="https://www.livecoding.tv/kornerr">прямой эфир</a>.
Самое время создать простой пасьянс Маджонг</p>
<p>. . .</p>
</div>
<div class="news_item_more">
<a href="september-live-session-announcement.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 4 из 7</p>
<p>

View File

@@ -30,6 +30,23 @@
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="september-live-session-announcement.html">Прямой эфир: 25 сентября 2016</a>
</h2>
<p class="news_item_date">
2016-09-17 00:00
</p>
<div class="news_item_contents">
<iframe width="560" height="315" src="https://www.youtube.com/embed/Y5hOGKcQ8wA" frameborder="0" allowfullscreen></iframe>
<p><a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=%D0%9F%D1%80%D1%8F%D0%BC%D0%BE%D0%B9+%D1%8D%D1%84%D0%B8%D1%80+Open+Game+Studio%3A+%D0%A1%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8C+2016&iso=20160925T13&p1=166&ah=2">25 сентября 2016 в 13:00 MSK</a> мы проведём <a href="https://www.livecoding.tv/kornerr">прямой эфир</a>.
Самое время создать простой пасьянс Маджонг</p>
<p>. . .</p>
</div>
<div class="news_item_more">
<a href="september-live-session-announcement.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2016-august-recap.html">Август 2016 кратко</a>
@@ -166,21 +183,6 @@
<a href="rolling-ball-live-session-pt2.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="january-live-session-announcement.html">Создание игры в прямом эфире: 31 января 2016</a>
</h2>
<p class="news_item_date">
2016-01-25 00:00
</p>
<div class="news_item_contents">
<p>Мы рады сообщить, что трансляция <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится <a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio%3A+%D0%9F%D1%80%D1%8F%D0%BC%D0%B0%D1%8F+%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F+%D0%B8%D0%B3%D1%80%D1%8B&iso=20160131T14&p1=166&ah=3">31 января 2016 в 14:00 MSK</a>. Присоединяйтесь!</p>
<p>. . .</p>
</div>
<div class="news_item_more">
<a href="january-live-session-announcement.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 5 из 7</p>
<p>

View File

@@ -30,6 +30,21 @@
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="january-live-session-announcement.html">Создание игры в прямом эфире: 31 января 2016</a>
</h2>
<p class="news_item_date">
2016-01-25 00:00
</p>
<div class="news_item_contents">
<p>Мы рады сообщить, что трансляция <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится <a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio%3A+%D0%9F%D1%80%D1%8F%D0%BC%D0%B0%D1%8F+%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D1%8F+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F+%D0%B8%D0%B3%D1%80%D1%8B&iso=20160131T14&p1=166&ah=3">31 января 2016 в 14:00 MSK</a>. Присоединяйтесь!</p>
<p>. . .</p>
</div>
<div class="news_item_more">
<a href="january-live-session-announcement.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="january-live-session-decision.html">СКОРО: Создание простой игры в прямом эфире (Редактор 0.8)</a>
@@ -172,30 +187,6 @@
<a href="2015-roadmap.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="editor-06.html">Редактор 0.6.0</a>
</h2>
<p class="news_item_date">
2015-06-28 00:00
</p>
<div class="news_item_contents">
<p>Мы завершили работу над версией 0.6.0 редактора. Вы можете <a title="Editor 0.6.0" href="https://youtu.be/q85GcC6l4Tw" target="_blank">увидеть 0.6.0 в действии здесь</a>. </p>
<p>Список новых возможностей Редактора 0.6.0:</p>
<ol>
<li>Позиционирование узлов с камерой и светом</li>
<li>Вращение узлов по оси X</li>
<li>Поддержка скриптов у узлов</li>
<li>Диалог для предпросмотра моделей при редактировании моделей у узла</li>
<li>Копирование и вставка узлов</li>
<li>Выбор узла с помощью клика мышью в сцене</li>
<li>Восстановление позиции и состояния окна после перезапуска. . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="editor-06.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 6 из 7</p>
<p>

View File

@@ -30,6 +30,30 @@
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="editor-06.html">Редактор 0.6.0</a>
</h2>
<p class="news_item_date">
2015-06-28 00:00
</p>
<div class="news_item_contents">
<p>Мы завершили работу над версией 0.6.0 редактора. Вы можете <a title="Editor 0.6.0" href="https://youtu.be/q85GcC6l4Tw" target="_blank">увидеть 0.6.0 в действии здесь</a>. </p>
<p>Список новых возможностей Редактора 0.6.0:</p>
<ol>
<li>Позиционирование узлов с камерой и светом</li>
<li>Вращение узлов по оси X</li>
<li>Поддержка скриптов у узлов</li>
<li>Диалог для предпросмотра моделей при редактировании моделей у узла</li>
<li>Копирование и вставка узлов</li>
<li>Выбор узла с помощью клика мышью в сцене</li>
<li>Восстановление позиции и состояния окна после перезапуска. . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="editor-06.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="editor-06-roadmap.html">Редактор 0.5.0 и планы для 0.6.0</a>