<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://digida.mgpu.ru/index.php?action=history&amp;feed=atom&amp;title=Scrolling_Platformer_Tutorial</id>
	<title>Scrolling Platformer Tutorial - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://digida.mgpu.ru/index.php?action=history&amp;feed=atom&amp;title=Scrolling_Platformer_Tutorial"/>
	<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=Scrolling_Platformer_Tutorial&amp;action=history"/>
	<updated>2026-09-26T10:02:24Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=Scrolling_Platformer_Tutorial&amp;diff=13218&amp;oldid=prev</id>
		<title>Patarakin в 14:37, 10 ноября 2023</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=Scrolling_Platformer_Tutorial&amp;diff=13218&amp;oldid=prev"/>
		<updated>2023-11-10T14:37:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 17:37, 10 ноября 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Scripting Tutorials&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Scripting Tutorials&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Description=Руководство по скроллингу&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Description=Руководство по скроллингу&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Field_of_knowledge=Математика&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|FieldActivity=Computational Thinker&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Возрастная категория=12&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Coding the Player Sprite==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Coding the Player Sprite==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Patarakin</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=Scrolling_Platformer_Tutorial&amp;diff=13217&amp;oldid=prev</id>
		<title>Patarakin в 14:37, 10 ноября 2023</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=Scrolling_Platformer_Tutorial&amp;diff=13217&amp;oldid=prev"/>
		<updated>2023-11-10T14:37:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 17:37, 10 ноября 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Строка 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To code the movement of the player, the following scripts need to be made. All scripts in this section are to go in the &amp;#039;Player&amp;#039; sprite.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To code the movement of the player, the following scripts need to be made. All scripts in this section are to go in the &amp;#039;Player&amp;#039; sprite.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{note|Variables in capital form (e.g. &quot;SCROLL X&quot; and &quot;SCROLL Y&quot;) are global variables, and those lowercase (e.g. &quot;x&quot; and &quot;y&quot;) are made with the &quot;For this sprite only&quot; option selected.}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;scratchblocks&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;scratchblocks&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Patarakin</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=Scrolling_Platformer_Tutorial&amp;diff=13216&amp;oldid=prev</id>
		<title>Patarakin в 14:36, 10 ноября 2023</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=Scrolling_Platformer_Tutorial&amp;diff=13216&amp;oldid=prev"/>
		<updated>2023-11-10T14:36:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 17:36, 10 ноября 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Wiki Standards&lt;/del&gt;|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Unprofessional, more description needed|date&lt;/del&gt;=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;November 2019}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Scripting Tutorials&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{about|how to make a scrolling platformer|a basic platformer tutorial|How to Make a Basic Platformer|advanced platformer physics|Advanced Platformer Physics&lt;/del&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Description&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Руководство по скроллингу&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This article covers a step-by-step process about how to make a &#039;&#039;&#039;[[Scrolling Platformer]]&#039;&#039;&#039;. A scrolling platformer is a type of platformer where the camera follows the player as they move through the level(s).&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Coding the Player Sprite==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Coding the Player Sprite==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To code the movement of the player, the following scripts need to be made. All scripts in this section are to go in the &amp;#039;Player&amp;#039; sprite.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To code the movement of the player, the following scripts need to be made. All scripts in this section are to go in the &amp;#039;Player&amp;#039; sprite.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Patarakin</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=Scrolling_Platformer_Tutorial&amp;diff=1774&amp;oldid=prev</id>
		<title>Patarakin: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=Scrolling_Platformer_Tutorial&amp;diff=1774&amp;oldid=prev"/>
		<updated>2022-07-21T08:33:16Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 11:33, 21 июля 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Patarakin</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=Scrolling_Platformer_Tutorial&amp;diff=1773&amp;oldid=prev</id>
		<title>scratch&gt;SunsetAlicorn: Changed the order of words a bit.</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=Scrolling_Platformer_Tutorial&amp;diff=1773&amp;oldid=prev"/>
		<updated>2022-07-20T18:55:59Z</updated>

		<summary type="html">&lt;p&gt;Changed the order of words a bit.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Wiki Standards|Unprofessional, more description needed|date=November 2019}}&lt;br /&gt;
{{about|how to make a scrolling platformer|a basic platformer tutorial|How to Make a Basic Platformer|advanced platformer physics|Advanced Platformer Physics}}&lt;br /&gt;
This article covers a step-by-step process about how to make a &amp;#039;&amp;#039;&amp;#039;[[Scrolling Platformer]]&amp;#039;&amp;#039;&amp;#039;. A scrolling platformer is a type of platformer where the camera follows the player as they move through the level(s).&lt;br /&gt;
&lt;br /&gt;
==Coding the Player Sprite==&lt;br /&gt;
To code the movement of the player, the following scripts need to be made. All scripts in this section are to go in the &amp;#039;Player&amp;#039; sprite.&lt;br /&gt;
&lt;br /&gt;
{{note|Variables in capital form (e.g. &amp;quot;SCROLL X&amp;quot; and &amp;quot;SCROLL Y&amp;quot;) are global variables, and those lowercase (e.g. &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot;) are made with the &amp;quot;For this sprite only&amp;quot; option selected.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;scratchblocks&amp;gt;&lt;br /&gt;
When green flag clicked&lt;br /&gt;
broadcast (Green Flag v) and wait//A way to only need 1 flag block. Flag blocks create lag, so the fewer the better.{{cn}}&lt;br /&gt;
broadcast (Play Game v) and wait//Broadcasts to the other sprites that the game has started.&lt;br /&gt;
&lt;br /&gt;
When I receive [Play game v]&lt;br /&gt;
forever&lt;br /&gt;
broadcast (Reset v) and wait&lt;br /&gt;
    broadcast (Set Up v) and wait&lt;br /&gt;
    Game On::custom//Sets up the variables.&lt;br /&gt;
    repeat until &amp;lt;(EXIT)&amp;gt;()&amp;gt;//This means the player has either died or won.&lt;br /&gt;
        broadcast (Tick v)&lt;br /&gt;
    end&lt;br /&gt;
    if &amp;lt;(EXIT)=(win)&amp;gt; then&lt;br /&gt;
        Win::custom&lt;br /&gt;
    else&lt;br /&gt;
        Die::custom//If the player did not win, they would have died.&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
define Position&lt;br /&gt;
go to x:((x)-(SCROLL X)) y: ((y) - (SCROLL Y)&lt;br /&gt;
&lt;br /&gt;
define Game On//Run without screen refresh.&lt;br /&gt;
point in direction (90)&lt;br /&gt;
set size to (100)%&lt;br /&gt;
clear graphic effects&lt;br /&gt;
set [in air v] to (0)&lt;br /&gt;
set rotation style [left-right v]&lt;br /&gt;
set [sy v] to (0)&lt;br /&gt;
set [x v] to (0)&lt;br /&gt;
set [y v] to (0)&lt;br /&gt;
set [EXIT v] to () //This should be blank.&lt;br /&gt;
set [SCROLLL X v] to (0)&lt;br /&gt;
set [SCROLLL Y v] to (0)&lt;br /&gt;
show&lt;br /&gt;
&lt;br /&gt;
When I receive [Tick v]&lt;br /&gt;
broadcast (Ready v)&lt;br /&gt;
Tick &amp;lt;key (Right arrow v) pressed?&amp;gt; &amp;lt;key (Up arrow v) pressed?&amp;gt; &amp;lt;key (Left arrow v) pressed?&amp;gt;::custom//Checks if a key has been pressed.&lt;br /&gt;
&lt;br /&gt;
define Tick &amp;lt;right&amp;gt; &amp;lt;up&amp;gt; &amp;lt;left&amp;gt;&lt;br /&gt;
if &amp;lt;left&amp;gt; then//If the left key was pressed, it moves the player left.&lt;br /&gt;
    Change player X by [-8]::custom&lt;br /&gt;
end&lt;br /&gt;
if &amp;lt;right&amp;gt; then//If the right key was pressed, it moves the player right.&lt;br /&gt;
    Change player X by [8]::custom&lt;br /&gt;
end&lt;br /&gt;
if &amp;lt;&amp;lt;up&amp;gt; and &amp;lt;(in air)&amp;lt; (4)&amp;gt;&amp;gt; then//If the up key was pressed, it checks if they are still in the air. If they are not, it makes the player jump.&lt;br /&gt;
    set [sy v] to (16)&lt;br /&gt;
end&lt;br /&gt;
change [sy v] by (-1)//Set sy to any negative number.&lt;br /&gt;
Change player Y by (sy)::custom//Actually moves the player&amp;#039;s Y position.&lt;br /&gt;
Test dying::custom//Checks if the player has hit a danger sprite.&lt;br /&gt;
if &amp;lt;(SCROLL X)&amp;lt;(0)&amp;gt; then&lt;br /&gt;
    set [SCROLL X v] to (0)&lt;br /&gt;
end&lt;br /&gt;
if &amp;lt;(SCROLL Y)&amp;lt;(0)&amp;gt; then&lt;br /&gt;
    set [SCROLL Y v] to (0)&lt;br /&gt;
end&lt;br /&gt;
change [SCROLL Y v] by (round(((y)-(SCROLL Y))/(10)))&lt;br /&gt;
change [SCROLL X v] by (round(((x)-(SCROLL X))/(5)))&lt;br /&gt;
Position::custom//Positions the player&amp;#039;s location correctly.&lt;br /&gt;
if &amp;lt;(y position) &amp;lt; (-180)&amp;gt; then//Checks if the player has fallen into the abyss.&lt;br /&gt;
    set [EXIT v] to [die]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
define Change player X by (sx)//Moves the player&amp;#039;s X axis.&lt;br /&gt;
if &amp;lt;(sx::custom)&amp;lt;(0)&amp;gt; then//If the player is moving left.&lt;br /&gt;
    point in direction (-90)//They point left.&lt;br /&gt;
else&lt;br /&gt;
    point in direction (90)//They point right.&lt;br /&gt;
end&lt;br /&gt;
change [x v] by (sx::custom)//Changes the X variable by the amount of movement needed (sx).&lt;br /&gt;
Position::custom//Positions the player.&lt;br /&gt;
if &amp;lt;touching (platforms v) ?&amp;gt; then//Will check if the player has hit a wall or a slope.&lt;br /&gt;
    repeat (12)//Will check if the wall/slope is 12 pixels steep or not.&lt;br /&gt;
        change [y v] by (1)//Moves the player up 1 pixel.&lt;br /&gt;
        Position::custom//Positions the player.&lt;br /&gt;
        if &amp;lt;not&amp;lt;touching (platforms v) ?&amp;gt;&amp;gt; then//That means it was a slope, so the player can stop trying.&lt;br /&gt;
            stop [this script v]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    change [y v] by (-12)//Corrects for the 12 that was used above.&lt;br /&gt;
    repeat until &amp;lt;not&amp;lt;touching (platforms v)?&amp;gt;&amp;gt; //Repeatedly checks is the player has ran into a wall.&lt;br /&gt;
        if &amp;lt;(sx)&amp;gt;(0)&amp;gt; then //To see if the player is moving left of right.&lt;br /&gt;
            change [x v] by (-1) //The player is trying to move right, so we need to move left to not go into the wall.&lt;br /&gt;
        else&lt;br /&gt;
            change [x v] by (1) //The player is trying to move left, so we need to move right to stay out of the wall.&lt;br /&gt;
        end&lt;br /&gt;
        Position::custom //Reposistions the player on the scrolling plane.&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
define Change player Y by (sy)&lt;br /&gt;
change [y v] by (sy::custom) //Changes the y variable by (sy).&lt;br /&gt;
change [in air v] by (1) //This is so that we know if we are in the air or on the ground. Without this, the player would be able to hold jump and just fly.&lt;br /&gt;
Position::custom //Reposistions the player.&lt;br /&gt;
repeat until &amp;lt;not&amp;lt;touching (platforms v)?&amp;gt;&amp;gt;&lt;br /&gt;
    if &amp;lt;(sy::custom)&amp;gt;(0)&amp;gt; then&lt;br /&gt;
        change [y v] by (-1)&lt;br /&gt;
    else&lt;br /&gt;
        change [y v] by (1)&lt;br /&gt;
        set [in air v] to (0)&lt;br /&gt;
    end&lt;br /&gt;
    set [sy v] to (0)&lt;br /&gt;
    Position::custom&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
define Test dying&lt;br /&gt;
if &amp;lt;touching (Danger v)?&amp;gt; then&lt;br /&gt;
    set [EXIT v] to [die]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
define Die&lt;br /&gt;
set [EXIT v] to ()//This is empty.&lt;br /&gt;
repeat (4)&lt;br /&gt;
    hide&lt;br /&gt;
    wait (0.1) seconds&lt;br /&gt;
    show&lt;br /&gt;
end&lt;br /&gt;
wait (0.5) seconds&lt;br /&gt;
&lt;br /&gt;
define Win&lt;br /&gt;
set rotation style [don&amp;#039;t rotate v]&lt;br /&gt;
repeat (50)&lt;br /&gt;
    point towards (Portal v)&lt;br /&gt;
    turn cw (65) degrees&lt;br /&gt;
    move ((distance to (Portal v))/(2)) steps&lt;br /&gt;
    change size by (-1)&lt;br /&gt;
    change [ghost v] effect by (2)&lt;br /&gt;
end&lt;br /&gt;
hide&lt;br /&gt;
change [LEVEL v] by (1)&lt;br /&gt;
wait (1) seconds&lt;br /&gt;
clear graphic effects&lt;br /&gt;
set rotation style [left-right v]&lt;br /&gt;
&amp;lt;/scratchblocks&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Coding the Platforms Sprite==&lt;br /&gt;
Once the player&amp;#039;s code has been completed, the ground sprite (called &amp;#039;platforms&amp;#039; here) needs to be added in order to create a scrolling effect. The following scripts go in the &amp;#039;platforms&amp;#039; sprite.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;scratchblocks&amp;gt;&lt;br /&gt;
when I receive [Tick v]&lt;br /&gt;
Position ((x)-(SCROLL X)) ((y) - (SCROLL Y)&lt;br /&gt;
when I receive [Green flag v]&lt;br /&gt;
show&lt;br /&gt;
&lt;br /&gt;
define Position (x) (y)&lt;br /&gt;
go to x: (x::custom) y: (y::custom)&lt;br /&gt;
if &amp;lt;&amp;lt;(x::custom)= (x position)&amp;gt; and &amp;lt;(y::custom) = (y position)&amp;gt;&amp;gt; then&lt;br /&gt;
    show&lt;br /&gt;
else&lt;br /&gt;
    hide&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
When I receive [Setup v]&lt;br /&gt;
set [x v] to (0)&lt;br /&gt;
set [y v] to (0)&lt;br /&gt;
if &amp;lt;(LEVEL)=(1)&amp;gt; then&lt;br /&gt;
    switch costume to (Level 1 1)&lt;br /&gt;
    Clone (450) (0) // This clones a new level. This needs to be done as many times as the number of levels. In this case, 3 is used as an example.&lt;br /&gt;
    Clone (450) (0)&lt;br /&gt;
    Clone (450) (0)&lt;br /&gt;
else&lt;br /&gt;
    ...::grey // If there is another scene, it should be cloned here using another if else block.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
define Clone (x) (y)&lt;br /&gt;
create clone of (myself v)&lt;br /&gt;
change [x v] by (x::custom)&lt;br /&gt;
change [y v] by (y::custom)&lt;br /&gt;
next costume&lt;br /&gt;
&amp;lt;/scratchblocks&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Coding the Danger Sprite==&lt;br /&gt;
To code the danger sprite, simply duplicate the &amp;quot;platforms&amp;quot; sprite and replace all the levels only with the dangerous elements that would hurt the player. {{note|Make sure to call the danger sprite &amp;quot;danger&amp;quot; because the script above already makes the player sense for a sprite of that name.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;scratchblocks&amp;gt;&lt;br /&gt;
when I receive [Tick v]&lt;br /&gt;
position ((x)-(SCROLL X))((y)-(SCROLL Y))::custom&lt;br /&gt;
&lt;br /&gt;
when I receive [Green flag v]&lt;br /&gt;
show&lt;br /&gt;
&lt;br /&gt;
when I receive [Reset v]&lt;br /&gt;
delete this clone&lt;br /&gt;
&lt;br /&gt;
define Position (x) (y)&lt;br /&gt;
go to x: (x::custom) y: (y::custom)&lt;br /&gt;
if &amp;lt;&amp;lt;(x::custom)= (x position)&amp;gt; and &amp;lt;(y::custom) = (y position)&amp;gt;&amp;gt; then&lt;br /&gt;
    show&lt;br /&gt;
else&lt;br /&gt;
    hide&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
when I receive [Setup v]&lt;br /&gt;
set [x v] to (0)&lt;br /&gt;
set [y v] to (0)&lt;br /&gt;
if &amp;lt;(LEVEL)=(1)&amp;gt; then&lt;br /&gt;
    switch costume to (Level 1 1)&lt;br /&gt;
    Clone (450) (0) // This clones a new level. Do this as many times as the number of levels, in this case 3 is used as an example.&lt;br /&gt;
    Clone (450) (0)&lt;br /&gt;
    Clone (450) (0)&lt;br /&gt;
else&lt;br /&gt;
    ...::grey // If there is another scene, then it should be cloned here using another if else block.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
define Clone (x) (y)&lt;br /&gt;
create clone of (myself v)&lt;br /&gt;
change [x v] by (x::custom)&lt;br /&gt;
change [y v] by (y::custom)&lt;br /&gt;
next costume&lt;br /&gt;
&amp;lt;/scratchblocks&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Coding the Portal==&lt;br /&gt;
Now that everything is made, a way to go to the next level needs to be made.&lt;br /&gt;
&amp;lt;scratchblocks&amp;gt;&lt;br /&gt;
When I receive [Tick v]&lt;br /&gt;
Position ((x)-(SCROLL X)) (((y) - (SCROLL Y)) + ((([sin v] of (timer)) *(100))*(20)))::custom&lt;br /&gt;
if &amp;lt;&amp;lt;(costume [number v]) = (2)&amp;gt; and &amp;lt;touching (player v)?&amp;gt;&amp;gt; then&lt;br /&gt;
    set [EXIT v] to [win]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
When I receive [Setup v]&lt;br /&gt;
set [x v] to (0)&lt;br /&gt;
set [y v] to (0)&lt;br /&gt;
if &amp;lt;(LEVEL)=(1)&amp;gt; then&lt;br /&gt;
    switch costume to (Level 1 1)&lt;br /&gt;
    Position Portal at (450) (180)::custom&lt;br /&gt;
else&lt;br /&gt;
    ...::grey // If there is another scene, then the portal needs to be positioned here using another if else block.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
define Position Portal at (x) (y)&lt;br /&gt;
set [x v] to (x::custom)&lt;br /&gt;
set [y v] to (y::custom)&lt;br /&gt;
&lt;br /&gt;
define Position (x) (y)&lt;br /&gt;
go to x: (x::custom) y: (y::custom)&lt;br /&gt;
if &amp;lt;&amp;lt;(x::custom)= (x position)&amp;gt; and &amp;lt;(y::custom) = (y position)&amp;gt;&amp;gt; then&lt;br /&gt;
    show&lt;br /&gt;
else&lt;br /&gt;
    hide&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/scratchblocks&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Adding Collectibles==&lt;br /&gt;
Collectibles can be added to the game to make it more interesting. They are objects that need to be collected in order to achieve a certain goal. The code to make them is shown below:&lt;br /&gt;
&amp;lt;scratchblocks&amp;gt;&lt;br /&gt;
When I receive [Tick v]&lt;br /&gt;
Position ((x)-(SCROLL X)) (((y) - (SCROLL Y)) + ((([sin v] of (timer)) *(300))*(5)))::custom&lt;br /&gt;
if &amp;lt;touching (player v)?&amp;gt; then&lt;br /&gt;
    change [COLLECTED v] by (1)&lt;br /&gt;
    if &amp;lt;(COLLECTED)=(COLLECTED MAX)&amp;gt; then&lt;br /&gt;
        broadcast (Open portal v)&lt;br /&gt;
        start sound (All coins collected v)&lt;br /&gt;
    else&lt;br /&gt;
        start sound (Collect v)&lt;br /&gt;
    end&lt;br /&gt;
    delete this clone&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
When I receive [Green flag v]&lt;br /&gt;
show&lt;br /&gt;
&lt;br /&gt;
when [m v] key pressed&lt;br /&gt;
set [MOUSE v] to (join ((mouse x) + (SCROLL X))(join [,]((mouse y) + (SCROLL Y))))&lt;br /&gt;
&lt;br /&gt;
When I receive [Reset v]&lt;br /&gt;
delete this clone&lt;br /&gt;
&lt;br /&gt;
define Position (x) (y)&lt;br /&gt;
go to x: (x::custom) y: (y::custom)&lt;br /&gt;
if &amp;lt;&amp;lt;(x::custom)= (x position)&amp;gt; and &amp;lt;(y::custom) = (y position)&amp;gt;&amp;gt; then&lt;br /&gt;
    show&lt;br /&gt;
else&lt;br /&gt;
    hide&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
When I receive [Setup v]&lt;br /&gt;
set [x v] to (0)&lt;br /&gt;
set [y v] to (0)&lt;br /&gt;
if &amp;lt;(LEVEL)=(1)&amp;gt; then&lt;br /&gt;
    Clone (450) (180)::custom&lt;br /&gt;
else&lt;br /&gt;
    ...::grey // If there is another scene than coins need to be cloned here using another if else block.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
define Clone (x) (y)&lt;br /&gt;
set [x v] to (x::custom)&lt;br /&gt;
set [y v] to (y::custom)&lt;br /&gt;
create clone of (myself v)&lt;br /&gt;
change [COLLECTED MAX v] by (1)&lt;br /&gt;
&amp;lt;/scratchblocks&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Transforming a Basic Platformer==&lt;br /&gt;
Often, Scratchers make basic platformers before they make a scrolling platformer, and they may want to use their old script to make a scrolling platformer. To do this, the &amp;quot;ground&amp;quot; sprite would move with the player. Making a script to do this is simple:&lt;br /&gt;
&amp;lt;scratchblocks&amp;gt;&lt;br /&gt;
when green flag clicked//This goes in the player sprite.&lt;br /&gt;
forever&lt;br /&gt;
Scroll (((0) - (x position)) * (0.8)) (((-40) - (y position)) * (0.8))//0 and -40 are the desired x and y positions of the player.&lt;br /&gt;
...//The basic platformer script goes here.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
define Scroll (x) (y)//This goes in the player sprite.&lt;br /&gt;
change [level x v] by (round (x))//Round the variables so the level moves correctly.&lt;br /&gt;
change [level y v] by (round (y))&lt;br /&gt;
change x by (round (x))//When the level moves, the player must move with it.&lt;br /&gt;
change y by (round (y))&lt;br /&gt;
&lt;br /&gt;
when green flag clicked//This goes in the ground sprite.&lt;br /&gt;
forever&lt;br /&gt;
go to x:(level x) y:(level y)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/scratchblocks&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[How to Make a Basic Platformer]]&lt;br /&gt;
* [[Advanced Platformer Physics]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting Tutorials]]&lt;br /&gt;
[[Category:Game Design Tutorials]]&lt;/div&gt;</summary>
		<author><name>scratch&gt;SunsetAlicorn</name></author>
	</entry>
</feed>