Table of Contents
Introduction
Introduction
Steve Kinney introduces the course by providing course resources and demonstrating some projects created using Scratch. - Course Website: https://scratch-workshop.vercel.app/ - Scratch: https://scratch.mit.edu/Tour of the Scratch Editor
Steve walks through the contents and terminology of the Scratch editor, including sprites, costumes, backgrounds, code blocks, and the backpack. How some code blocks relate to JavaScript concepts and the purpose of a code block's shape are also discussed in this segment.
Basic Movement & Game Loop
Movement Direction & Looks
Steve demonstrates how to change a sprite's position and the direction it's facing on the stage. Switching between costumes to achieve a walking animation is also covered in this segment.Game Loop
Steve creates a game loop to only allow interactions when the game has been started. Setting different movement styles is also covered in this segment.Collision Detection
Steve implements the ability for sprites to sense when they are touching something and perform a given action.
Taco Chase Game
Creating a Game Character
Steve demonstrates creating a custom sprite by utilizing the paint option.Game Movement Exercise
Steve creates the initial game loop and instructs students to implement the ability for the sprite to move up and down on the stage.Game Movement Solution
Steve discusses common problems when using custom sprites and walks through some possible solutions to the game movement exercise.Moving the Taco & Adding a Score
Steve adds movement to the taco and creates a Score variable that keeps track of the game score.Increasing Speed & Edge Detection
Steve demonstrates increasing the player's sprite movement speed when the score increases and restricting where the taco can move. Ending the game when the player hits the edge of the stage is also covered in this segment.Adding Enemies
Steve creates an enemy that chases the player's sprite around the stage and ends the game if the player's sprite touches it. Creating clones of the enemy that also chase the player is also covered in this segment.Adjusting the Difficulty
Steve adjusts the game difficulty by creating an enemy clone every three points instead of every point.
Broadcasting & Lists
Broadcasting Messages
Steve demonstrates broadcasting messages and shows how sprites can listen for specific messages and execute code when they receive the intended message.Using Lists
Steve discusses creating and looping through lists in Scratch, which have a similar function to arrays.
Raining Apples Game
Falling with Velocity
Steve demonstrates implementing some simple game physics by creating a velocity variable to increase the speed of a falling sprite.Custom Blocks
Steve implements a falling loop with random x positioning for the apple sprite. Creating custom reusable code blocks to avoid building the same code multiple times is also covered in this segment.Player Sprite Practice
Steve instructs students to add a playable sprite that falls to the ground and can walk left and right. Steve then walks through setting up the player sprite and demonstrates multiple options for detecting when a sprite touches the ground.Collecting Apples & Adding Enemies
Steve implements the ability to collect apples and adds falling enemies for the player to avoid.
Nano Jump Game
Create a Jumping Movement
Steve implements the ability for a sprite to jump with velocity and detect when it touches the ground.Adding & Removing Obstacles
Steve adds obstacles that move across the stage for players to jump over. Removing the obstacles when the reach the edge of the stage is also covered in this segment.Game Over Screen
Steve demonstrates utilizing a combination of collision detection, broadcasting messages, and hiding and showing sprites to create a game over screen.Game Start and End Actions
Steve implements the game's start screen and the ability to restart the game when the game ends. A discussion regarding using similar actions for level design is also covered in this segment.
Velocity
Moving with Velocity
Steve demonstrates adding velocity to movement by implementing acceleration and deceleration to the sprite's horizontal movements.Velocity Practice
Steve instructs students to utilize the concepts covered in the previous lesson to implement velocity for the sprite's up and down movements. A possible solution is also covered in this segment.
Platformer Game
Creating Platformer Hero
Steve creates the hero sprite and backdrop for the platformer game. Implementing a code block that fixes the sprite falling into the ground without showing the sprite movement is also covered in this segment.Platform Collision Detection
Steve implements the ability for the hero sprite to jump and discusses the pseudo-code for improving the previously created "fix landing" code block.Implementing Collision Detection
Steve implements a code block to detect if the hero sprite is touching a platform. The code block keeps track of the hero sprite's position and moves the sprite back to its last known position when the sprite is touching a platform.Horizontal Movement Practice
Students are instructed to implement the hero sprite's horizontal movement. Steve then walks through a possible solution for adding horizontal movement and implements horizontal collision detection.Preventing Double Jumps
Steve updates the jump movement to include velocity and prevent double jumping.
Further Exploration
Pen Tool
Steve discusses the Pen Scratch extension, which allows complete control over drawing graphics. A demonstration of combining custom blocks and the pen to programmatically draw shapes is also provided in this segment.Snake Game
Steve discusses utilizing the Pen extension to create infinite and finite versions of a snake game. The video sensing tool is also discussed in this segment.