浏览代码

Июльская статья | July article

master
Михаил Капелько 4 个月前
父节点
当前提交
80da9b0e2e
共有 21 个文件被更改,包括 499 次插入245 次删除
  1. +31
    -0
      en/news/2024-07_memory-gui.md
  2. +22
    -18
      en/news/index.html
  3. +18
    -18
      en/news/index2.html
  4. +18
    -16
      en/news/index3.html
  5. +16
    -22
      en/news/index4.html
  6. +22
    -18
      en/news/index5.html
  7. +18
    -15
      en/news/index6.html
  8. +15
    -16
      en/news/index7.html
  9. +16
    -0
      en/news/index8.html
  10. +74
    -0
      en/news/memory-gui.html
  11. 二进制
      images/2024_memory-gui_notebook.jpg
  12. +31
    -0
      ru/news/2024-07_memory-gui.md
  13. +22
    -18
      ru/news/index.html
  14. +18
    -18
      ru/news/index2.html
  15. +18
    -16
      ru/news/index3.html
  16. +16
    -21
      ru/news/index4.html
  17. +21
    -18
      ru/news/index5.html
  18. +18
    -15
      ru/news/index6.html
  19. +15
    -16
      ru/news/index7.html
  20. +16
    -0
      ru/news/index8.html
  21. +74
    -0
      ru/news/memory-gui.html

+ 31
- 0
en/news/2024-07_memory-gui.md 查看文件

@@ -0,0 +1,31 @@
Title: "Memory" GUI
Date: 2024-07-04 00:00
Category: News
Slug: memory-gui
Lang: en

# "Memory" GUI

In June I implemented GUI for "Memory" game in Python with the help of
[Python Arcade][arcade].

While searching for the most convenient tool to create resources (assets), I found
notebooks lined with graph paper to work the best:

![Texture of a notebook][ntex]

To see the portable code architecture in real life, I participated in the 3-day long
gamejam of ["Start the game"][jam]. "Memory" game was used with a customized look to satisfy jam requirements.

Here's how the customized version looks like ([Windows64 build][w64]):

<iframe width="560" height="315" src="https://www.youtube.com/embed/yd9vS62Ypro?si=iJcEKH6Vj1yRudvK" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

# July plans

I'll make the instrument support Python to JavaScript code translation.

[arcade]: https://arcade.academy
[w64]: https://ims.cr5.space/app/p/4FvJS4fk/Вредные-продукты/about
[ntex]: ../../images/2024_memory-gui_notebook.jpg
[jam]: https://dtf.ru/games/2783053-nachni-igru-ocenka-videorolikov

+ 22
- 18
en/news/index.html 查看文件

@@ -30,6 +30,28 @@
<center>
<h1>News</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="memory-gui.html">"Memory" GUI</a>
</h2>
<p class="news_item_date">
2024-07-04 00:00
</p>
<div class="news_item_contents">
<h1 id="memorygui">"Memory" GUI</h1>
<p>In June I implemented GUI for "Memory" game in Python with the help of
<a href="https://arcade.academy">Python Arcade</a>.</p>
<p>While searching for the most convenient tool to create resources (assets), I found
notebooks lined with graph paper to work the best:</p>
<p><img src="../../images/2024_memory-gui_notebook.jpg" alt="Texture of a notebook" /></p>
<p>To see the portable code architecture in real life, I participated in the 3-day long
gamejam of <a href="https://dtf.ru/games/2783053-nachni-igru-ocenka-videorolikov">"Start the game"</a>. "Memory" game was used with a customized look to satisfy jam requirements.</p>
<p>Here's how the customized version looks like (<a href="https://ims.cr5.space/app/p/4FvJS4fk/Вредные-продукты/about">Windows64 build</a>):. . .</p>
</div>
<div class="news_item_more">
<a href="memory-gui.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="memory-text-ui.html">"Memory" text UI</a>
@@ -214,24 +236,6 @@ not the hardware one. Today I can confidently say I found the necessary. . .</p>
<a href="git-budget.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="teaching-to-program-2019.html">Teaching folks to program 2019, a.k.a. in the search of an ideal program: Sequence</a>
</h2>
<p class="news_item_date">
2020-02-12 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2020-02-11_teaching-to-program-2019_screenshot.png" alt="MUROM" /></p>
<p>In this article Michael shares his thoughts on teaching folks to program in 2019.</p>
<p><strong>Preface</strong></p>
<p>Autumn 2019 was the third time I participated as one of the teachers in the course to teach 10-15-year-old folks to program. The course took place from mid. September to mid. December. Each Saturday, we were studying from 10 AM to 12 PM. More details about the structure of each class and the game itself can be found in <a href="teaching-kids-to-program.html">the 2018 article</a>.</p>
<p>I have the following goals for conducting such courses:. . .</p>
</div>
<div class="news_item_more">
<a href="teaching-to-program-2019.html">Continue reading</a>
</div>
</div>

<p class="pagination_title">Page 1 of 8</p>
<p>


+ 18
- 18
en/news/index2.html 查看文件

@@ -30,6 +30,24 @@
<center>
<h1>News</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="teaching-to-program-2019.html">Teaching folks to program 2019, a.k.a. in the search of an ideal program: Sequence</a>
</h2>
<p class="news_item_date">
2020-02-12 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2020-02-11_teaching-to-program-2019_screenshot.png" alt="MUROM" /></p>
<p>In this article Michael shares his thoughts on teaching folks to program in 2019.</p>
<p><strong>Preface</strong></p>
<p>Autumn 2019 was the third time I participated as one of the teachers in the course to teach 10-15-year-old folks to program. The course took place from mid. September to mid. December. Each Saturday, we were studying from 10 AM to 12 PM. More details about the structure of each class and the game itself can be found in <a href="teaching-kids-to-program.html">the 2018 article</a>.</p>
<p>I have the following goals for conducting such courses:. . .</p>
</div>
<div class="news_item_more">
<a href="teaching-to-program-2019.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="the-pros-and-cons-of-restarting-from-scratch.html">The pros and cons of restarting from scratch</a>
@@ -186,24 +204,6 @@ It seems that right now we have less completed features than before the release
<a href="examples-and-dependencies.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="example-driven-development.html">Example-driven development</a>
</h2>
<p class="news_item_date">
2018-06-27 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2018-06-27-example-driven-development.png" alt="Debug broker" /></p>
<p>This article explains how the third OpenSceneGraph cross-platform example opened our eyes to example-driven development.</p>
<p><strong>2018-08 EDIT</strong>: the third example has been renamed to the fourth one due to the reasons described in the <a href="examples-and-dependencies.html">next article</a>.</p>
<p><strong>The third OpenSceneGraph cross-platform example</strong></p>
<p>The third OpenSceneGraph cross-platform example explains how to implement <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging">remote debugging across platforms</a>. This example is less about OpenSceneGraph and more about different platforms.. . .</p>
</div>
<div class="news_item_more">
<a href="example-driven-development.html">Continue reading</a>
</div>
</div>

<p class="pagination_title">Page 2 of 8</p>
<p>


+ 18
- 16
en/news/index3.html 查看文件

@@ -30,6 +30,24 @@
<center>
<h1>News</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="example-driven-development.html">Example-driven development</a>
</h2>
<p class="news_item_date">
2018-06-27 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2018-06-27-example-driven-development.png" alt="Debug broker" /></p>
<p>This article explains how the third OpenSceneGraph cross-platform example opened our eyes to example-driven development.</p>
<p><strong>2018-08 EDIT</strong>: the third example has been renamed to the fourth one due to the reasons described in the <a href="examples-and-dependencies.html">next article</a>.</p>
<p><strong>The third OpenSceneGraph cross-platform example</strong></p>
<p>The third OpenSceneGraph cross-platform example explains how to implement <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging">remote debugging across platforms</a>. This example is less about OpenSceneGraph and more about different platforms.. . .</p>
</div>
<div class="news_item_more">
<a href="example-driven-development.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="openscenegraph-examples.html">OpenSceneGraph cross-platform examples</a>
@@ -188,22 +206,6 @@
<a href="scripting-research.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="openscenegraph-cross-platform-guide.html">OpenSceneGraph cross-platform guide</a>
</h2>
<p class="news_item_date">
2017-07-17 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-07-openscenegraph-guide.png" alt="OpenSceneGraph sample application in desktop and mobile" /></p>
<p>This article summarizes the work we did to produce OpenSceneGraph cross-platform guide.</p>
<p>June marked the finish of <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide">OpenSceneGraph cross-platform guide</a> with the publishing of the last (initially planned) tutorial. The tutorial describes <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/tree/master/1.10.SampleWeb">how to build and run sample OpenSceneGraph application in Web</a> using Emscripten.. . .</p>
</div>
<div class="news_item_more">
<a href="openscenegraph-cross-platform-guide.html">Continue reading</a>
</div>
</div>

<p class="pagination_title">Page 3 of 8</p>
<p>


+ 16
- 22
en/news/index4.html 查看文件

@@ -30,6 +30,22 @@
<center>
<h1>News</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="openscenegraph-cross-platform-guide.html">OpenSceneGraph cross-platform guide</a>
</h2>
<p class="news_item_date">
2017-07-17 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-07-openscenegraph-guide.png" alt="OpenSceneGraph sample application in desktop and mobile" /></p>
<p>This article summarizes the work we did to produce OpenSceneGraph cross-platform guide.</p>
<p>June marked the finish of <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide">OpenSceneGraph cross-platform guide</a> with the publishing of the last (initially planned) tutorial. The tutorial describes <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/tree/master/1.10.SampleWeb">how to build and run sample OpenSceneGraph application in Web</a> using Emscripten.. . .</p>
</div>
<div class="news_item_more">
<a href="openscenegraph-cross-platform-guide.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="ios-tutorial.html">iOS tutorial</a>
@@ -170,28 +186,6 @@
<a href="2016-october-recap.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2016-tech-showcases.html">Technology showcases</a>
</h2>
<p class="news_item_date">
2016-10-31 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2016-10-31_tech-showcases.png" alt="Feature file in the background" /></p>
<p>In this article, we take another look at 2015-2016 live sessions' format and introduce a new showcase format for 2017.</p>
<p><strong>2015 and 2016: live sessions.</strong></p>
<p>As you know, we use live sessions to show the state of our technology and create a small functional game from scratch. We have conducted four live sessions in the past year, which gave birth to the following small games:
<table>
<tr>
<th><strong>№</strong></th>
<th><strong>Created game</strong></th>
<th><strong>Live session date</strong></th>. . .</p>
</div>
<div class="news_item_more">
<a href="2016-tech-showcases.html">Continue reading</a>
</div>
</div>

<p class="pagination_title">Page 4 of 8</p>
<p>


+ 22
- 18
en/news/index5.html 查看文件

@@ -30,6 +30,28 @@
<center>
<h1>News</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="2016-tech-showcases.html">Technology showcases</a>
</h2>
<p class="news_item_date">
2016-10-31 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2016-10-31_tech-showcases.png" alt="Feature file in the background" /></p>
<p>In this article, we take another look at 2015-2016 live sessions' format and introduce a new showcase format for 2017.</p>
<p><strong>2015 and 2016: live sessions.</strong></p>
<p>As you know, we use live sessions to show the state of our technology and create a small functional game from scratch. We have conducted four live sessions in the past year, which gave birth to the following small games:
<table>
<tr>
<th><strong>№</strong></th>
<th><strong>Created game</strong></th>
<th><strong>Live session date</strong></th>. . .</p>
</div>
<div class="news_item_more">
<a href="2016-tech-showcases.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2016-september-recap.html">September 2016 recap</a>
@@ -178,24 +200,6 @@ It's time to create simple Mahjong solitaire game.</p>
<a href="once-mahjong-always-mahjong.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="ogs-editor-0.9.html">May 2016 live session materials</a>
</h2>
<p class="news_item_date">
2016-05-29 00:00
</p>
<div class="news_item_contents">
<iframe width="560" height="315" src="https://www.youtube.com/embed/8gHYOkMRoos?list=PLWMTZqE4MAMKp3wP1N63xbdhdgfKi-d-J" frameborder="0" allowfullscreen></iframe>
<p>This time we have shown how to create a simple Domino based game. Below you can find all materials related to the game creation.</p>
<ol>
<li>Editor 0.9 for Linux (Debian based), OS X (10.9+), Windows <a title="SourceForge" href="https://sourceforge.net/projects/osrpgcreation/files/Editor/jenkins/49_2016-05-24_04-48-47_0.9.0/">is available at SourceForge</a>. Simply unpack it and launch the run script.. . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="ogs-editor-0.9.html">Continue reading</a>
</div>
</div>

<p class="pagination_title">Page 5 of 8</p>
<p>


+ 18
- 15
en/news/index6.html 查看文件

@@ -30,6 +30,24 @@
<center>
<h1>News</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="ogs-editor-0.9.html">May 2016 live session materials</a>
</h2>
<p class="news_item_date">
2016-05-29 00:00
</p>
<div class="news_item_contents">
<iframe width="560" height="315" src="https://www.youtube.com/embed/8gHYOkMRoos?list=PLWMTZqE4MAMKp3wP1N63xbdhdgfKi-d-J" frameborder="0" allowfullscreen></iframe>
<p>This time we have shown how to create a simple Domino based game. Below you can find all materials related to the game creation.</p>
<ol>
<li>Editor 0.9 for Linux (Debian based), OS X (10.9+), Windows <a title="SourceForge" href="https://sourceforge.net/projects/osrpgcreation/files/Editor/jenkins/49_2016-05-24_04-48-47_0.9.0/">is available at SourceForge</a>. Simply unpack it and launch the run script.. . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="ogs-editor-0.9.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="may-live-session-announcement.html">Live session: 28 May 2016</a>
@@ -165,21 +183,6 @@
<a href="livesession-materials-editor-07.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="livesession-editor-07.html">Creating a simple game live: 15 November 2015</a>
</h2>
<p class="news_item_date">
2015-11-09 00:00
</p>
<div class="news_item_contents">
<p>We're glad to annouce that the <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> session will take place on <a title="Local time" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Whac-a-mole+game+from+scratch+live&amp;iso=20151115T12&amp;p1=37&amp;ah=3">15 November 2015 at 12:00 CET</a>. Join us!</p>
<p>. . .</p>
</div>
<div class="news_item_more">
<a href="livesession-editor-07.html">Continue reading</a>
</div>
</div>

<p class="pagination_title">Page 6 of 8</p>
<p>


+ 15
- 16
en/news/index7.html 查看文件

@@ -30,6 +30,21 @@
<center>
<h1>News</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="livesession-editor-07.html">Creating a simple game live: 15 November 2015</a>
</h2>
<p class="news_item_date">
2015-11-09 00:00
</p>
<div class="news_item_contents">
<p>We're glad to annouce that the <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> session will take place on <a title="Local time" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Whac-a-mole+game+from+scratch+live&amp;iso=20151115T12&amp;p1=37&amp;ah=3">15 November 2015 at 12:00 CET</a>. Join us!</p>
<p>. . .</p>
</div>
<div class="news_item_more">
<a href="livesession-editor-07.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="soon-game-creation-editor-07.html">SOON: Creating a simple game live (Editor 0.7)</a>
@@ -186,22 +201,6 @@
<a href="editor-0.4.0-plans.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="user-servey-finish-promise.html">User survey ends today</a>
</h2>
<p class="news_item_date">
2014-12-31 11:00
</p>
<div class="news_item_contents">
<p>About a year ago, we started the user survey, in order to find out what do you think of the Open Source in general and about our project in particular. Today we're closing this survey. It took time, but we've got plenty of answers. Thank you for that.</p>
<p>We'll share our thought about the results of the survey in one of the future articles.</p>
<p>After the survey, every one of you has got the code. With this code, you'll be able to access the alpha test of the OGS Mahjong 2, as soon as we'll be ready to start it (i can't promise anything, but we're planning to do it in 2015). Also, you'll be able to choose between the deluxe version of OGS Mahjong 2 and the deluxe version of Shuan, as soon as we'll be ready to release these games.. . .</p>
</div>
<div class="news_item_more">
<a href="user-servey-finish-promise.html">Continue reading</a>
</div>
</div>

<p class="pagination_title">Page 7 of 8</p>
<p>


+ 16
- 0
en/news/index8.html 查看文件

@@ -30,6 +30,22 @@
<center>
<h1>News</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="user-servey-finish-promise.html">User survey ends today</a>
</h2>
<p class="news_item_date">
2014-12-31 11:00
</p>
<div class="news_item_contents">
<p>About a year ago, we started the user survey, in order to find out what do you think of the Open Source in general and about our project in particular. Today we're closing this survey. It took time, but we've got plenty of answers. Thank you for that.</p>
<p>We'll share our thought about the results of the survey in one of the future articles.</p>
<p>After the survey, every one of you has got the code. With this code, you'll be able to access the alpha test of the OGS Mahjong 2, as soon as we'll be ready to start it (i can't promise anything, but we're planning to do it in 2015). Also, you'll be able to choose between the deluxe version of OGS Mahjong 2 and the deluxe version of Shuan, as soon as we'll be ready to release these games.. . .</p>
</div>
<div class="news_item_more">
<a href="user-servey-finish-promise.html">Continue reading</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2014-another-year-passed.html">And another year has passed</a>


+ 74
- 0
en/news/memory-gui.html 查看文件

@@ -0,0 +1,74 @@
<!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/memory-gui.html">EN</a>
<a href="../../ru/news/memory-gui.html">RU</a>
</div>
</div>
<div class="header2">
<div class="menu">
<a href="../../en/news/index.html">News</a>
<a href="../../en/game/index.html">Games</a>
<a href="../../en/tool/index.html">Tools</a>
<a href="../../en/page/about.html">About</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">In the news...</h3>
<center>
<div class="news_item">
<h2 class="news_item_title">
<a href="memory-gui.html">"Memory" GUI</a>
</h2>
<p class="news_item_date">
2024-07-04 00:00
</p>
<div class="news_item_contents">
<h1 id="memorygui">"Memory" GUI</h1>
<p>In June I implemented GUI for "Memory" game in Python with the help of
<a href="https://arcade.academy">Python Arcade</a>.</p>
<p>While searching for the most convenient tool to create resources (assets), I found
notebooks lined with graph paper to work the best:</p>
<p><img src="../../images/2024_memory-gui_notebook.jpg" alt="Texture of a notebook" /></p>
<p>To see the portable code architecture in real life, I participated in the 3-day long
gamejam of <a href="https://dtf.ru/games/2783053-nachni-igru-ocenka-videorolikov">"Start the game"</a>. "Memory" game was used with a customized look to satisfy jam requirements.</p>
<p>Here's how the customized version looks like (<a href="https://ims.cr5.space/app/p/4FvJS4fk/Вредные-продукты/about">Windows64 build</a>):</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/yd9vS62Ypro?si=iJcEKH6Vj1yRudvK" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
<h1 id="julyplans">July plans</h1>
<p>I'll make the instrument support Python to JavaScript code translation.</p>
</div>
</div>
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = "https://opengamestudio.org/en/news/memory-gui.html";
this.page.identifier = "memory-gui.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>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<div id="footer">
The site has been generated by <a href="http://opengamestudio.org/pskov">PSKOV</a>
from <a href="http://github.com/ogstudio/site-opengamestudio">this source code</a>.
</div>
</center>
</body>
</html>

二进制
images/2024_memory-gui_notebook.jpg 查看文件

之前 之后
宽度: 960  |  高度: 584  |  大小: 84KB

+ 31
- 0
ru/news/2024-07_memory-gui.md 查看文件

@@ -0,0 +1,31 @@
Title: Графический интерфейс «Памяти»
Date: 2024-07-04 00:00
Category: News
Slug: memory-gui
Lang: ru

# Графический интерфейс «Памяти»

В июне реализовал графический интерфейс игры «Память» на Python с помощью [Python Arcade][arcade].

В ходе поиска наиболее удобного инструмента создания ресурсов (ассетов) остановился на
обычной тетрадке в клетку:

![Текстура в тетрадке][ntex]

Для дополнительной проверки качества архитектуры портируемого кода участвовал в
трёхдневном геймджеме от [«Начни игру»][jam] с игрой «Память», оформленной под
требования конкурса.

Выглядит итоговая игра следующим образом ([сборка Windows64][w64]):

<iframe width="560" height="315" src="https://www.youtube.com/embed/yd9vS62Ypro?si=iJcEKH6Vj1yRudvK" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

# Планы на июль

Добавлю в инструмент трансляцию кода из Python в JavaScript.

[arcade]: https://arcade.academy
[w64]: https://ims.cr5.space/app/p/4FvJS4fk/Вредные-продукты/about
[ntex]: ../../images/2024_memory-gui_notebook.jpg
[jam]: https://dtf.ru/games/2783053-nachni-igru-ocenka-videorolikov

+ 22
- 18
ru/news/index.html 查看文件

@@ -30,6 +30,28 @@
<center>
<h1>Новости</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="memory-gui.html">Графический интерфейс «Памяти»</a>
</h2>
<p class="news_item_date">
2024-07-04 00:00
</p>
<div class="news_item_contents">
<h1 id="">Графический интерфейс «Памяти»</h1>
<p>В июне реализовал графический интерфейс игры «Память» на Python с помощью <a href="https://arcade.academy">Python Arcade</a>.</p>
<p>В ходе поиска наиболее удобного инструмента создания ресурсов (ассетов) остановился на
обычной тетрадке в клетку:</p>
<p><img src="../../images/2024_memory-gui_notebook.jpg" alt="Текстура в тетрадке" /></p>
<p>Для дополнительной проверки качества архитектуры портируемого кода участвовал в
трёхдневном геймджеме от <a href="https://dtf.ru/games/2783053-nachni-igru-ocenka-videorolikov">«Начни игру»</a> с игрой «Память», оформленной под
требования конкурса.</p>
<p>Выглядит итоговая игра следующим образом (<a href="https://ims.cr5.space/app/p/4FvJS4fk/Вредные-продукты/about">сборка Windows64</a>):. . .</p>
</div>
<div class="news_item_more">
<a href="memory-gui.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="memory-text-ui.html">Текстовый интерфейс «Памяти»</a>
@@ -213,24 +235,6 @@ Ubuntu Edge</a>. Особенностью продукта должна была
<a href="git-budget.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="teaching-to-program-2019.html">Обучение программированию 2019, или в поисках идеальной программы: Последовательность</a>
</h2>
<p class="news_item_date">
2020-02-12 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2020-02-11_teaching-to-program-2019_screenshot.png" alt="МУРОМ" /></p>
<p>В этой статье Михаил расскажет об обучении ребят программированию в 2019-м году.</p>
<p><strong>Предисловие</strong></p>
<p>Осенью 2019-го я в третий раз участвовал в курсе обучения ребят 10-15 лет программированию в качестве одного из преподавателей. Наши курсы проходили с середины сентября по середину декабря. Каждое занятие было в субботу с 10:00 до 12:00. Подробнее о структуре каждого урока и деталях создаваемой на курсе игры можно узнать из <a href="teaching-kids-to-program.html">статьи за 2018-й год</a>.</p>
<p>Лично для себя я выделил две основные цели, к которым иду с помощью курсов:. . .</p>
</div>
<div class="news_item_more">
<a href="teaching-to-program-2019.html">Читать далее</a>
</div>
</div>

<p class="pagination_title">Страница 1 из 8</p>
<p>


+ 18
- 18
ru/news/index2.html 查看文件

@@ -30,6 +30,24 @@
<center>
<h1>Новости</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="teaching-to-program-2019.html">Обучение программированию 2019, или в поисках идеальной программы: Последовательность</a>
</h2>
<p class="news_item_date">
2020-02-12 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2020-02-11_teaching-to-program-2019_screenshot.png" alt="МУРОМ" /></p>
<p>В этой статье Михаил расскажет об обучении ребят программированию в 2019-м году.</p>
<p><strong>Предисловие</strong></p>
<p>Осенью 2019-го я в третий раз участвовал в курсе обучения ребят 10-15 лет программированию в качестве одного из преподавателей. Наши курсы проходили с середины сентября по середину декабря. Каждое занятие было в субботу с 10:00 до 12:00. Подробнее о структуре каждого урока и деталях создаваемой на курсе игры можно узнать из <a href="teaching-kids-to-program.html">статьи за 2018-й год</a>.</p>
<p>Лично для себя я выделил две основные цели, к которым иду с помощью курсов:. . .</p>
</div>
<div class="news_item_more">
<a href="teaching-to-program-2019.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="the-pros-and-cons-of-restarting-from-scratch.html">Минусы и плюсы начинания с начала</a>
@@ -185,24 +203,6 @@
<a href="examples-and-dependencies.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="example-driven-development.html">Разработка через создание примеров</a>
</h2>
<p class="news_item_date">
2018-06-27 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2018-06-27-example-driven-development.png" alt="Брокер отладки" /></p>
<p>Эта статья описывает то, как создание третьего кросс-платформенного примера OpenSceneGraph привело нас к разработке через создание примеров.</p>
<p><strong>ИЗМЕНЕНИЯ ОТ 2018-08</strong>: третий пример был переименован в четвёртый в связи с причинами, изложенными в <a href="examples-and-dependencies.html">следующей статье</a>.</p>
<p><strong>Третий кросс-платформенный пример OpenSceneGraph</strong></p>
<p>Третий кросс-платформенный пример OpenSceneGraph содержит реализацию <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging">удалённой отладки, работающей на всех поддерживаемых платформах</a>. Этот пример относится не столько к OpenSceneGraph, сколько к поддержке различных платформ.. . .</p>
</div>
<div class="news_item_more">
<a href="example-driven-development.html">Читать далее</a>
</div>
</div>

<p class="pagination_title">Страница 2 из 8</p>
<p>


+ 18
- 16
ru/news/index3.html 查看文件

@@ -30,6 +30,24 @@
<center>
<h1>Новости</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="example-driven-development.html">Разработка через создание примеров</a>
</h2>
<p class="news_item_date">
2018-06-27 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2018-06-27-example-driven-development.png" alt="Брокер отладки" /></p>
<p>Эта статья описывает то, как создание третьего кросс-платформенного примера OpenSceneGraph привело нас к разработке через создание примеров.</p>
<p><strong>ИЗМЕНЕНИЯ ОТ 2018-08</strong>: третий пример был переименован в четвёртый в связи с причинами, изложенными в <a href="examples-and-dependencies.html">следующей статье</a>.</p>
<p><strong>Третий кросс-платформенный пример OpenSceneGraph</strong></p>
<p>Третий кросс-платформенный пример OpenSceneGraph содержит реализацию <a href="https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/04.RemoteDebugging">удалённой отладки, работающей на всех поддерживаемых платформах</a>. Этот пример относится не столько к OpenSceneGraph, сколько к поддержке различных платформ.. . .</p>
</div>
<div class="news_item_more">
<a href="example-driven-development.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="openscenegraph-examples.html">Кросс-платформенные примеры OpenSceneGraph</a>
@@ -185,22 +203,6 @@
<a href="scripting-research.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="openscenegraph-cross-platform-guide.html">OpenSceneGraph cross-platform guide</a>
</h2>
<p class="news_item_date">
2017-07-17 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-07-openscenegraph-guide.png" alt="Приложение OpenSceneGraph на десктопе и мобилке" /></p>
<p>Эта статья резюмирует создание кросс-платформенного руководства OpenSceneGraph.</p>
<p>Июнь ознаменовал собой окончание работы над <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide">кросс-платформенным руководством OpenSceneGraph</a>. Мы опубликовали последний самоучитель (из изначально запланированных). Этот самоучитель описывает <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/tree/master/1.10.SampleWeb">сборку и запуск примера приложения OpenSceneGraph в вебе</a> с помощью Emscripten.. . .</p>
</div>
<div class="news_item_more">
<a href="openscenegraph-cross-platform-guide.html">Читать далее</a>
</div>
</div>

<p class="pagination_title">Страница 3 из 8</p>
<p>


+ 16
- 21
ru/news/index4.html 查看文件

@@ -30,6 +30,22 @@
<center>
<h1>Новости</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="openscenegraph-cross-platform-guide.html">OpenSceneGraph cross-platform guide</a>
</h2>
<p class="news_item_date">
2017-07-17 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-07-openscenegraph-guide.png" alt="Приложение OpenSceneGraph на десктопе и мобилке" /></p>
<p>Эта статья резюмирует создание кросс-платформенного руководства OpenSceneGraph.</p>
<p>Июнь ознаменовал собой окончание работы над <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide">кросс-платформенным руководством OpenSceneGraph</a>. Мы опубликовали последний самоучитель (из изначально запланированных). Этот самоучитель описывает <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/tree/master/1.10.SampleWeb">сборку и запуск примера приложения OpenSceneGraph в вебе</a> с помощью Emscripten.. . .</p>
</div>
<div class="news_item_more">
<a href="openscenegraph-cross-platform-guide.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="ios-tutorial.html">Самоучитель iOS</a>
@@ -171,27 +187,6 @@
<a href="2016-october-recap.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2016-tech-showcases.html">Демонстрации технологий</a>
</h2>
<p class="news_item_date">
2016-10-31 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2016-10-31_tech-showcases.png" alt="Файл с функциональностью на фоне" /></p>
<p>Сегодня мы ещё раз взглянем на формат демонстраций в 2015-2016 годах, а также сообщим о новом формате 2017-го.</p>
<p><strong>2015 и 2016: демонстрации в прямом эфире.</strong></p>
<p>Как вы знаете, в ходе демонстраций мы в прямом эфире показываем состояние наших технологий и собираем небольшую работающую игру с нуля. За прошедший год мы провели 4 демонстрации в прямом эфире, в ходе которых создали следующие небольшие игры:
<table>
<tr>
<th><strong>№</strong></th>
<th><strong>Созданная игра</strong></th>. . .</p>
</div>
<div class="news_item_more">
<a href="2016-tech-showcases.html">Читать далее</a>
</div>
</div>

<p class="pagination_title">Страница 4 из 8</p>
<p>


+ 21
- 18
ru/news/index5.html 查看文件

@@ -30,6 +30,27 @@
<center>
<h1>Новости</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="2016-tech-showcases.html">Демонстрации технологий</a>
</h2>
<p class="news_item_date">
2016-10-31 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2016-10-31_tech-showcases.png" alt="Файл с функциональностью на фоне" /></p>
<p>Сегодня мы ещё раз взглянем на формат демонстраций в 2015-2016 годах, а также сообщим о новом формате 2017-го.</p>
<p><strong>2015 и 2016: демонстрации в прямом эфире.</strong></p>
<p>Как вы знаете, в ходе демонстраций мы в прямом эфире показываем состояние наших технологий и собираем небольшую работающую игру с нуля. За прошедший год мы провели 4 демонстрации в прямом эфире, в ходе которых создали следующие небольшие игры:
<table>
<tr>
<th><strong>№</strong></th>
<th><strong>Созданная игра</strong></th>. . .</p>
</div>
<div class="news_item_more">
<a href="2016-tech-showcases.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2016-september-recap.html">Сентябрь 2016 кратко</a>
@@ -177,24 +198,6 @@
<a href="once-mahjong-always-mahjong.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="ogs-editor-0.9.html">Материалы прямого эфира за май 2016</a>
</h2>
<p class="news_item_date">
2016-05-29 00:00
</p>
<div class="news_item_contents">
<iframe width="560" height="315" src="https://www.youtube.com/embed/8gHYOkMRoos?list=PLWMTZqE4MAMKp3wP1N63xbdhdgfKi-d-J" frameborder="0" allowfullscreen></iframe>
<p>В этот раз мы показали, как создать простую игру на основе Домино. Ниже приведены все материалы, связанные с созданием игры.</p>
<ol>
<li>Редактор 0.9 для Linux (на основе Debian), OS X (10.9+), Windows <a title="SourceForge" href="https://sourceforge.net/projects/osrpgcreation/files/Editor/jenkins/49_2016-05-24_04-48-47_0.9.0/">доступен на SourceForge</a>. Просто распакуйте и запустите скрипт run.. . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="ogs-editor-0.9.html">Читать далее</a>
</div>
</div>

<p class="pagination_title">Страница 5 из 8</p>
<p>


+ 18
- 15
ru/news/index6.html 查看文件

@@ -30,6 +30,24 @@
<center>
<h1>Новости</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="ogs-editor-0.9.html">Материалы прямого эфира за май 2016</a>
</h2>
<p class="news_item_date">
2016-05-29 00:00
</p>
<div class="news_item_contents">
<iframe width="560" height="315" src="https://www.youtube.com/embed/8gHYOkMRoos?list=PLWMTZqE4MAMKp3wP1N63xbdhdgfKi-d-J" frameborder="0" allowfullscreen></iframe>
<p>В этот раз мы показали, как создать простую игру на основе Домино. Ниже приведены все материалы, связанные с созданием игры.</p>
<ol>
<li>Редактор 0.9 для Linux (на основе Debian), OS X (10.9+), Windows <a title="SourceForge" href="https://sourceforge.net/projects/osrpgcreation/files/Editor/jenkins/49_2016-05-24_04-48-47_0.9.0/">доступен на SourceForge</a>. Просто распакуйте и запустите скрипт run.. . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="ogs-editor-0.9.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="may-live-session-announcement.html">Прямой эфир: 28 мая 2016</a>
@@ -163,21 +181,6 @@
<a href="livesession-materials-editor-07.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="livesession-editor-07.html">Создание простой игры в прямом эфире: 15 ноября 2015</a>
</h2>
<p class="news_item_date">
2015-11-09 00:00
</p>
<div class="news_item_contents">
<p>Мы рады сообщить, что трансляция <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится <a title="Локальное время" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Whac-a-mole+game+from+scratch+live&amp;iso=20151115T14&amp;p1=166&amp;ah=3">15 ноября 2015 в 14:00 MSK</a>. Присоединяйтесь!</p>
<p>. . .</p>
</div>
<div class="news_item_more">
<a href="livesession-editor-07.html">Читать далее</a>
</div>
</div>

<p class="pagination_title">Страница 6 из 8</p>
<p>


+ 15
- 16
ru/news/index7.html 查看文件

@@ -30,6 +30,21 @@
<center>
<h1>Новости</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="livesession-editor-07.html">Создание простой игры в прямом эфире: 15 ноября 2015</a>
</h2>
<p class="news_item_date">
2015-11-09 00:00
</p>
<div class="news_item_contents">
<p>Мы рады сообщить, что трансляция <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> состоится <a title="Локальное время" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Whac-a-mole+game+from+scratch+live&amp;iso=20151115T14&amp;p1=166&amp;ah=3">15 ноября 2015 в 14:00 MSK</a>. Присоединяйтесь!</p>
<p>. . .</p>
</div>
<div class="news_item_more">
<a href="livesession-editor-07.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="soon-game-creation-editor-07.html">СКОРО: Создание простой игры в прямом эфире (Редактор 0.7)</a>
@@ -181,22 +196,6 @@
<a href="editor-0.4.0-plans.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="user-servey-finish-promise.html">Окончание опроса</a>
</h2>
<p class="news_item_date">
2014-12-31 11:00
</p>
<div class="news_item_contents">
<p>Около года назад мы начинали опрос, с помощью которого планировали узнать ваше отношение к Open Source вообще и нашему проекту в частности. Сегодня мы его завершаем. Ответы набирались довольно медленно, но в целом мы собрали довольно приличное ответов, за что вам очень благодарны.</p>
<p>Сделанными выводами мы обязательно поделимся в одной из ближайших статей.</p>
<p>После завершения опроса для каждого из его участников был сгенерирован код. С помощью этого кода вы сможете получить доступ к альфа-тестированию OGS Mahjong 2, как только оно начнется (не могу обещать конкретных дат, но мы планируем запустить его в 2015 году), а также, на выбор, deluxe-версию OGS Mahjong 2 либо deluxe-версию Shuan, когда разработка этих игр будет закончена.. . .</p>
</div>
<div class="news_item_more">
<a href="user-servey-finish-promise.html">Читать далее</a>
</div>
</div>

<p class="pagination_title">Страница 7 из 8</p>
<p>


+ 16
- 0
ru/news/index8.html 查看文件

@@ -30,6 +30,22 @@
<center>
<h1>Новости</h1>

<div class="news_item">
<h2 class="news_item_title">
<a href="user-servey-finish-promise.html">Окончание опроса</a>
</h2>
<p class="news_item_date">
2014-12-31 11:00
</p>
<div class="news_item_contents">
<p>Около года назад мы начинали опрос, с помощью которого планировали узнать ваше отношение к Open Source вообще и нашему проекту в частности. Сегодня мы его завершаем. Ответы набирались довольно медленно, но в целом мы собрали довольно приличное ответов, за что вам очень благодарны.</p>
<p>Сделанными выводами мы обязательно поделимся в одной из ближайших статей.</p>
<p>После завершения опроса для каждого из его участников был сгенерирован код. С помощью этого кода вы сможете получить доступ к альфа-тестированию OGS Mahjong 2, как только оно начнется (не могу обещать конкретных дат, но мы планируем запустить его в 2015 году), а также, на выбор, deluxe-версию OGS Mahjong 2 либо deluxe-версию Shuan, когда разработка этих игр будет закончена.. . .</p>
</div>
<div class="news_item_more">
<a href="user-servey-finish-promise.html">Читать далее</a>
</div>
</div>
<div class="news_item">
<h2 class="news_item_title">
<a href="2014-another-year-passed.html">И вот прошел еще один год</a>


+ 74
- 0
ru/news/memory-gui.html 查看文件

@@ -0,0 +1,74 @@
<!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/memory-gui.html">EN</a>
<a href="../../ru/news/memory-gui.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="memory-gui.html">Графический интерфейс «Памяти»</a>
</h2>
<p class="news_item_date">
2024-07-04 00:00
</p>
<div class="news_item_contents">
<h1 id="">Графический интерфейс «Памяти»</h1>
<p>В июне реализовал графический интерфейс игры «Память» на Python с помощью <a href="https://arcade.academy">Python Arcade</a>.</p>
<p>В ходе поиска наиболее удобного инструмента создания ресурсов (ассетов) остановился на
обычной тетрадке в клетку:</p>
<p><img src="../../images/2024_memory-gui_notebook.jpg" alt="Текстура в тетрадке" /></p>
<p>Для дополнительной проверки качества архитектуры портируемого кода участвовал в
трёхдневном геймджеме от <a href="https://dtf.ru/games/2783053-nachni-igru-ocenka-videorolikov">«Начни игру»</a> с игрой «Память», оформленной под
требования конкурса.</p>
<p>Выглядит итоговая игра следующим образом (<a href="https://ims.cr5.space/app/p/4FvJS4fk/Вредные-продукты/about">сборка Windows64</a>):</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/yd9vS62Ypro?si=iJcEKH6Vj1yRudvK" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
<h1 id="-1">Планы на июль</h1>
<p>Добавлю в инструмент трансляцию кода из Python в JavaScript.</p>
</div>
</div>
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = "https://opengamestudio.org/ru/news/memory-gui.html";
this.page.identifier = "memory-gui.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>

正在加载...
取消
保存