feat: 50 игр на Lua + импорт Roblox для всех + поддержка Lua в плеере #39
@ -2189,7 +2189,7 @@ game.self.onClick(() => {
|
|||||||
|
|
||||||
<h3 className="lessonH">Шаг 4. Главный скрипт</h3>
|
<h3 className="lessonH">Шаг 4. Главный скрипт</h3>
|
||||||
<ScriptKind kind="global" />
|
<ScriptKind kind="global" />
|
||||||
<Code>{`// === ИГРА «ЛАВА-ПОЛ» — главный скрипт ===
|
<CodeBoth game="lava-floor" script="g16_main">{`// === ИГРА «ЛАВА-ПОЛ» — главный скрипт ===
|
||||||
|
|
||||||
let won = false;
|
let won = false;
|
||||||
|
|
||||||
@ -2215,7 +2215,7 @@ game.onMessage('win', () => {
|
|||||||
const p = game.player.position;
|
const p = game.player.position;
|
||||||
game.scene.spawnParticles('confetti',
|
game.scene.spawnParticles('confetti',
|
||||||
{ x: p.x, y: p.y + 3, z: p.z }, { duration: 3, count: 3 });
|
{ x: p.x, y: p.y + 3, z: p.z }, { duration: 3, count: 3 });
|
||||||
});`}</Code>
|
});`}</CodeBoth>
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>game.onTick</code> следит, не провалился ли игрок
|
<li><code>game.onTick</code> следит, не провалился ли игрок
|
||||||
совсем низко — тогда возвращает его на старт;</li>
|
совсем низко — тогда возвращает его на старт;</li>
|
||||||
@ -2226,14 +2226,14 @@ game.onMessage('win', () => {
|
|||||||
|
|
||||||
<h3 className="lessonH">Шаг 5. Скрипт лавы — главное</h3>
|
<h3 className="lessonH">Шаг 5. Скрипт лавы — главное</h3>
|
||||||
<ScriptKind kind="object" on="невидимую зону «ЛаваЗона»" />
|
<ScriptKind kind="object" on="невидимую зону «ЛаваЗона»" />
|
||||||
<Code>{`// === Скрипт лавы ===
|
<CodeBoth game="lava-floor" script="g16_lava">{`// === Скрипт лавы ===
|
||||||
// Игрок коснулся лавы — урон. У damage есть защита (i-frames),
|
// Игрок коснулся лавы — урон. У damage есть защита (i-frames),
|
||||||
// так что урон не каждый кадр, а раз в ~0.5 секунды.
|
// так что урон не каждый кадр, а раз в ~0.5 секунды.
|
||||||
|
|
||||||
game.self.onTouch(() => {
|
game.self.onTouch(() => {
|
||||||
game.player.damage(20);
|
game.player.damage(20);
|
||||||
game.sound.play('hit');
|
game.sound.play('hit');
|
||||||
});`}</Code>
|
});`}</CodeBoth>
|
||||||
<p>Разберём:</p>
|
<p>Разберём:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>game.player.damage(20)</code> — отнимает у игрока
|
<li><code>game.player.damage(20)</code> — отнимает у игрока
|
||||||
@ -2248,10 +2248,10 @@ game.self.onTouch(() => {
|
|||||||
|
|
||||||
<h3 className="lessonH">Шаг 6. Скрипт финиша и проверка</h3>
|
<h3 className="lessonH">Шаг 6. Скрипт финиша и проверка</h3>
|
||||||
<ScriptKind kind="object" on="зелёный финиш" />
|
<ScriptKind kind="object" on="зелёный финиш" />
|
||||||
<Code>{`// === Скрипт финиша ===
|
<CodeBoth game="lava-floor" script="g16_finish">{`// === Скрипт финиша ===
|
||||||
game.self.onTouch(() => {
|
game.self.onTouch(() => {
|
||||||
game.broadcast('win'); // сообщаем главному скрипту о победе
|
game.broadcast('win'); // сообщаем главному скрипту о победе
|
||||||
});`}</Code>
|
});`}</CodeBoth>
|
||||||
<ul>
|
<ul>
|
||||||
<li>прыгай с островка на островок;</li>
|
<li>прыгай с островка на островок;</li>
|
||||||
<li>попал в лаву — здоровье тает, слышен звук урона;</li>
|
<li>попал в лаву — здоровье тает, слышен звук урона;</li>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user