Skip to content

Commit 5a08c08

Browse files
committed
Added Phaser bgm block.
Fixed spelling issues and format issues in the tutorial content.
1 parent df63bfa commit 5a08c08

File tree

6 files changed

+106
-29
lines changed

6 files changed

+106
-29
lines changed

locales/deu/blocks/phaser_blocks.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ Locales['deu'] = Locales['deu'] || {};
2828
/* eslint-disable max-len */
2929
Object.assign(Locales['deu'], {
3030
'BLOCKS_PHASER_AUDIO': 'Audio',
31+
'BLOCKS_PHASER_AUDIO_ADD_BGM': 'als Hintergrundsound',
3132
'BLOCKS_PHASER_COLLIDE_WITH': 'kollidiert mit',
3233
'BLOCKS_PHASER_CREATE': 'Erstellen',
3334
'BLOCKS_PHASER_EXAMPLE_FILES': 'Beispiel Dateien',

locales/eng/blocks/phaser_blocks.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ Locales['eng'] = Locales['eng'] || {};
2828
/* eslint-disable max-len */
2929
Object.assign(Locales['eng'], {
3030
'BLOCKS_PHASER_AUDIO': 'Audio',
31+
'BLOCKS_PHASER_AUDIO_ADD_BGM': 'as background sound',
3132
'BLOCKS_PHASER_COLLIDE_WITH': 'collide with',
3233
'BLOCKS_PHASER_CREATE': 'Create',
3334
'BLOCKS_PHASER_EXAMPLE_FILES': 'Example Files',

src/blocks/phaser/audio/blocks.js

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,35 @@
2020

2121

2222
/**
23-
* Add sprite.
23+
* Add background music.
24+
*/
25+
Blockly.Blocks['phaser_audio_add_bgm'] = {
26+
init: function() {
27+
this.appendValueInput('variable')
28+
.appendField(Blockly.BlocksTemplate.addCircle())
29+
.appendField(i18t('BLOCKS_DEFINE'));
30+
this.appendDummyInput()
31+
.appendField(i18t('BLOCKS_PHASER_AUDIO_ADD_BGM'))
32+
.appendField(new Blockly.FieldTextInput('bgm'), 'audio')
33+
.appendField(Blockly.BlocksTemplate.audio())
34+
.appendField(i18t('with volume'))
35+
.appendField(new Blockly.FieldNumber(100, 0, 200), 'volume')
36+
.appendField('%')
37+
.appendField(new Blockly.FieldDropdown([
38+
['no loop', false],
39+
['loop', true],
40+
]), 'loop');
41+
this.setPreviousStatement(true, 'Create');
42+
this.setNextStatement(true, 'Create');
43+
this.setColour(255);
44+
this.setTooltip('');
45+
this.setHelpUrl('');
46+
},
47+
};
48+
49+
50+
/**
51+
* Add audio.
2452
*/
2553
Blockly.Blocks['phaser_audio_add'] = {
2654
init: function() {

src/blocks/phaser/audio/javascript.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,25 @@
1919
*/
2020

2121

22+
/**
23+
* Add background music.
24+
* @param {Blockly.Block} block
25+
* @return {!string}
26+
*/
27+
Blockly.JavaScript['phaser_audio_add_bgm'] = function(block) {
28+
let text_audio = block.getFieldValue('audio');
29+
let number_volume = block.getFieldValue('volume');
30+
let dropdown_loop = block.getFieldValue('loop');
31+
let variable = Blockly.JavaScript.valueToCode(block,
32+
'variable', Blockly.JavaScript.ORDER_ATOMIC);
33+
return 'if (typeof ' + variable + ' === \'undefined\') {\n' +
34+
' ' + variable + ' = game.add.audio(\'' + text_audio + '\', ' +
35+
number_volume / 100 + ', ' + (dropdown_loop || 'false') + ');\n' +
36+
'} else {\n ' + variable + '.stop();\n}\n' +
37+
variable + '.play();\n';
38+
};
39+
40+
2241
/**
2342
* Add audio.
2443
* @param {Blockly.Block} block

src/blocks/phaser/toolbox.soy

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,14 @@
326326
{@param? opt_show_create_blocks: bool}
327327

328328
{if $opt_show_create_blocks}
329+
<block type="phaser_audio_add_bgm">
330+
<value name="variable">
331+
<block type="variables_get">
332+
<field name="VAR">bgm</field>
333+
</block>
334+
</value>
335+
</block>
336+
329337
<block type="phaser_audio_add">
330338
<value name="variable">
331339
<block type="variables_get">

training/phaser/simple_jump_and_fly_game/de/README.md

Lines changed: 48 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
Einfaches Jump und Fliegen Spiel
22
================================
33

4-
## Inhaltsverzeichniss
4+
## Inhaltsverzeichnis
55
* [Einleitung](#einleitung)
66
* [Anforderungen](#anforderungen)
77
* [1. Ein Spiel erstellen](#ein-spiel-erstellen)
8-
* [2. Laden benötigter Bilder und Sounds](#)
8+
* [2. Laden benötigter Bilder und Sounds](#laden-benötigter-bilder-und-sounds)
99
* [3. Erstellen der Welt](#erstellen-der-welt)
10-
* [Hintergrundbild einfügen](#)
11-
* [Text einfügen](#)
12-
* [Boden hinzufügen](#)
13-
* [4. Erstellen der Spielfigur](#)
14-
* [5. Physikalische Eigenschaften definieren](#)
15-
* [Schwerkraft / Anziehungskraft](#)
16-
* [Kollision](#)
17-
* [6. Steuerung hinzufügen](#)
18-
* [Eingabe überwachen](#)
19-
* [Aktion bei Eingabe festlegen](#)
20-
* [7. Hindernisse hinzufügen](#)
21-
* [8. Highscore hinzufügen](#)
22-
* [9. Spielende durch Kollision mit den Hindernissen](#)
23-
* [10. Game verschönern](#)
10+
* [Hintergrundbild einfügen](#hintergrundbild-einfügen)
11+
* [Text einfügen](#text-einfügen)
12+
* [Boden hinzufügen](#boden-hinzufügen)
13+
* [4. Erstellen der Spielfigur](#erstellen-der-spielfigur)
14+
* [5. Physikalische Eigenschaften definieren](#physikalische-eigenschaften-definieren)
15+
* [Schwerkraft / Anziehungskraft](#schwerkraft--anziehungskraft)
16+
* [Kollision](#kollision)
17+
* [6. Steuerung hinzufügen](#steuerung-hinzufügen)
18+
* [Eingabe überwachen](#eingabe-überwachen)
19+
* [Aktion bei Eingabe festlegen](#aktion-bei-eingabe-festlegen)
20+
* [7. Hindernisse hinzufügen](#hindernisse-hinzufügen)
21+
* [8. Highscore hinzufügen](#highscore-hinzufügen)
22+
* [9. Spielende durch Kollision mit den Hindernissen](#spielende-durch-kollision-mit-den-hindernissen)
23+
* [10. Game verschönern](#game-verschönern)
24+
* [Soundeffekte hinzufügen](#soundeffekte-hinzufügen)
2425

2526
## Einleitung
2627
Dieser Workshop richtet sich an Anfänger die immer schon mal ein eigenes Spiel entwickeln wollten.
@@ -29,23 +30,22 @@ Ihr lernt die Grundlage der Spieleentwicklung und wie eine Spiele Engine grundle
2930
Zum programmieren wird eine Block-basierte Programmierung mit vordefinierten Blöcke verwendet.
3031
Diese Blöcke setzt Ihr einfach für euer Spiel zusammen.
3132

32-
Hierzu wird Coding with Chrome verwendet, welches kostenfrei erhältlich ist.
33+
Hierzu wird _Coding with Chrome_ verwendet, welches kostenfrei erhältlich ist.
3334

3435
## Anforderungen
3536
Für diesen Workshop solltet Ihr euch bereits mit dem Spiele Editor in Coding with Chrome beschäftigt haben und eine Übersicht der verschiedenen “Blöcke” haben.
3637

3738
Es werde einige Spiele spezifische Begriffe verwenden, die ausführlich in [Grundlagen Games](../../basic/de/README.md) erklärt werden.
3839

3940
## Ein Spiel erstellen
40-
Wähle im Anfänger Modus **Ein Spiel erstellen** aus und erstellst ein **Neues Project**.
41+
Wähle im Anfänger Modus **Ein Spiel erstellen** aus und erstellst ein **Neues Projekt**.
4142

4243
Diese sollte dann in etwa wie folgt aussehen:
4344
![][empty_game]
4445

4546
Anschließend legt du den Namen des Spiels und die Dimension (Größer der Spielfläche) fest.
4647
Für dieses Tutorial verwenden wir eine Dimension von 400x600.
4748

48-
4949
![][game_name_dimension]
5050

5151
## Laden benötigter Bilder und Sounds
@@ -71,7 +71,7 @@ Zieht eure Bilder anschließend von dem **Dateien** Bereich in euren **beim Vora
7171

7272
![][preload_image]
7373

74-
![]][preload_image_name]
74+
![][preload_image_name]
7575

7676
Verwendet hierfür die folgenden vordefinierten Namen damit ihr nachher weniger ändern müsst.
7777
Solltet Ihr andere Namen verwenden, achtet bitte darauf diese in den entsprechenden Blöcken anzupassen.
@@ -92,7 +92,7 @@ Alle dafür benötigten Blöcke findet Ihr in dem Bereich **Erstellen** und werd
9292
![][create_world]
9393

9494
### Hintergrundbild einfügen
95-
Zuerst fügen wir ein sich bewegendes Hintergrund Bild hinzu.
95+
Zuerst fügen wir ein sich bewegendes Hintergrundbild hinzu.
9696
Klickt hierfür auf **Tile Sprite** und zieht den Block **füge Hintergrundbild hinzu …** in den **beim Erstellen ...** Block.
9797

9898
![][create_tile_sprite]
@@ -195,22 +195,35 @@ Die einfachste Möglichkeit um das Ende des Spiel festzulegen, ist eine Kollisio
195195

196196
Wir fügen also in dem **beim Aktualisieren ...** Bereich eine Kollisionsüberprüfung zwischen dem Spieler und den Hindernissen hinzu.
197197

198-
![][update_collsion_block]
198+
![][update_collision_block]
199199

200200
Anschließend sagen wir dem Programm was es bei einer Kollision machen soll.
201201
Hierzu ziehen wir den **Spiel neustarten** Block unter **Game** in die Kollisionsüberprüfung:
202202

203203
![][game_restart]
204204

205-
![][update_collsion_example]
205+
![][update_collision_example]
206206

207207
## Game verschönern
208-
Zum Schluß verschönern wir das Spiel noch, indem wir zusätzliche Grafiken hinzufügen oder aber einen Start bzw. End Bildschirm.
208+
Zum Schluss verschönern wir das Spiel noch, indem wir zusätzliche Grafiken hinzufügen oder aber einen Start bzw. End Bildschirm.
209+
210+
### Soundeffekte hinzufügen
211+
Zusätzlich könnt ihr Soundeffekte hinzufügen die beim drücken einer Taste oder bei einer Kollision abgespielt werden.
212+
213+
Zuerst müsst Ihr die entsprechenden Sounds hochladen und unter **Vorausladen** hinzufügen und den Namen anpassen.
214+
215+
![][preload_sound]
216+
217+
Anschließend wird der Sound unter **Erstellen** als **definiere ... als Audio ...** hinzugefügt.
209218

210-
Zusätzlich könnt ihr Soundeffekte hinzufügen die beim drücken der Taste abgespielt werden.
219+
![][preload_sound_example]
211220

221+
Nun könnt Ihr mit dem Block **spiele Audio ...** an jeder beliebigen Stelle den enstprechenden Sound abspielen.
212222

213-
## Anhang
223+
![][input_play_audio]
224+
225+
## Komplettes Spiel
226+
![][full_game]
214227

215228

216229
[empty_game]: images/empty_game.png
@@ -242,6 +255,13 @@ Zusätzlich könnt ihr Soundeffekte hinzufügen die beim drücken der Taste abge
242255

243256
[dynamic_text]:
244257

245-
[update_collsion_block]:
258+
[update_collision_block]:
246259
[game_restart]:
247-
[update_collsion_example]:
260+
[update_collision_example]:
261+
262+
263+
[preload_sound]:
264+
[preload_sound_example]:
265+
[input_play_audio]:
266+
267+
[full_game]:

0 commit comments

Comments
 (0)