The Adventures of Timmy (A1)
Copy and paste the ‘Timmy level code’ into the code runner!
import GameEnvBackground from '/assets/js/GameEnginev1/essentials/GameEnvBackground.js';
import Player from '/assets/js/GameEnginev1/essentials/Player.js';
import Npc from '/assets/js/GameEnginev1/essentials/Npc.js';
import Barrier from '/assets/js/GameEnginev1/essentials/Barrier.js';
class GameLevelTimmy {
constructor(gameEnv) {
const path = gameEnv.path;
const width = gameEnv.innerWidth;
const height = gameEnv.innerHeight;
const bgData = {
name: "custom_bg",
src: path + "/images/gamebuilder/bg/clouds.jpg",
pixels: { height: 720, width: 1280 }
};
const playerData = {
id: 'playerData',
src: path + "/images/gamebuilder/sprites/kirby.png",
SCALE_FACTOR: 5,
STEP_FACTOR: 1000,
ANIMATION_RATE: 50,
INIT_POSITION: { x: 100, y: 300 },
pixels: { height: 36, width: 569 },
orientation: { rows: 1, columns: 13 },
down: { row: 0, start: 0, columns: 3 },
downRight: { row: 0, start: 0, columns: 3, rotate: Math.PI/16 },
downLeft: { row: 0, start: 0, columns: 3, rotate: -Math.PI/16 },
left: { row: 0, start: 0, columns: 3 },
right: { row: 0, start: 0, columns: 3 },
up: { row: 0, start: 0, columns: 3 },
upLeft: { row: 0, start: 0, columns: 3, rotate: Math.PI/16 },
upRight: { row: 0, start: 0, columns: 3, rotate: -Math.PI/16 },
hitbox: { widthPercentage: 0, heightPercentage: 0 },
keypress: { up: 38, left: 37, down: 40, right: 39 }
};
const npcData1 = {
id: 'Tommy',
greeting: 'Hey, watch it, nerd!',
src: path + "/images/gamify/tux.png",
SCALE_FACTOR: 8,
ANIMATION_RATE: 50,
INIT_POSITION: { x: 500, y: 300 },
pixels: { height: 256, width: 352 },
orientation: { rows: 8, columns: 11 },
down: { row: 0, start: 0, columns: 3 },
right: { row: Math.min(1, 8 - 1), start: 0, columns: 3 },
left: { row: Math.min(2, 8 - 1), start: 0, columns: 3 },
up: { row: Math.min(3, 8 - 1), start: 0, columns: 3 },
upRight: { row: Math.min(3, 8 - 1), start: 0, columns: 3 },
downRight: { row: Math.min(1, 8 - 1), start: 0, columns: 3 },
upLeft: { row: Math.min(2, 8 - 1), start: 0, columns: 3 },
downLeft: { row: 0, start: 0, columns: 3 },
hitbox: { widthPercentage: 0.1, heightPercentage: 0.2 },
dialogues: ['Hey, watch it, nerd!'],
reaction: function() { if (this.dialogueSystem) { this.showReactionDialogue(); } else { console.log(this.greeting); } },
interact: function() { if (this.dialogueSystem) { this.showRandomDialogue(); } }
};
const dbarrier_1 = {
id: 'dbarrier_1', x: 28, y: 20, width: 44, height: 47, visible: false,
hitbox: { widthPercentage: 0.0, heightPercentage: 0.0 },
fromOverlay: true
};
this.classes = [ { class: GameEnvBackground, data: bgData },
{ class: Player, data: playerData },
{ class: Npc, data: npcData1 },
{ class: Barrier, data: dbarrier_1 }
];
}
}
export default GameLevelTimmy;
Run its code here: