Skip to content

Adding collectible items to platformer games using color detection

💰 Need help with collectibles and game mechanics? Want to create engaging item systems? 🚀 Get Help Now

PB

PlatformerBuilder

Posted on July 25, 2025 • Beginner

💰 Need help adding collectibles to my platformer

Hey everyone! I’m working on a platformer game and want to add collectible items (like coins) but I’m not sure where to start. 🎮

My game uses color detection for collision, and I want the collectibles to be yellow (#ffff00) so they stand out nicely against the background.

I’m looking for help with:

  • 🪙 How to detect when the player touches a yellow collectible
  • 📊 Making the collectible disappear and increase the score
  • 🔄 Respawning collectibles or placing them strategically
  • 🎵 Adding collection sound effects

Any guidance would be super helpful! I want to make collecting items feel satisfying and rewarding for players. 😊

GM

GameMechanics_Expert

Replied 2 hours later • ⭐ Best Answer

Great question @PlatformerBuilder! Collectibles are essential for engaging platformers. Here’s a complete system for color-detection based collectibles:

🎯 Collectible System Flow

Here’s how the collectible detection and collection works:

flowchart TD A[🎮 Player Moving] --> B{Touching Yellow?} B -->|Yes| C[💰 Collectible Found!] B -->|No| D[Continue Moving] C --> E[Play Collection Sound] E --> F[Add Points to Score] F --> G[Hide/Delete Collectible] G --> H[Show Collection Effect] H --> I{More Collectibles?} I -->|Yes| D I -->|No| J[🏆 Level Complete!] D --> K[Check Other Colors] K --> L{Touching Platform?} L -->|Yes| M[Handle Platform Collision] L -->|No| N[Continue Physics] M --> A N --> A style C fill:#fff3cd style F fill:#d4edda style J fill:#cce5ff style A fill:#e1f5fe

🪙 Step 1: Create Collectible Sprite

First, create your collectible sprite with yellow costume:

    // Collectible Coin Sprite
when flag clicked
// Set up initial state
set [collected v] to [false]
set [coin value v] to [10]  // Points per coin
show
set size to [80] %

// Add floating animation
forever
if <not <(collected) = [true]>> then
repeat [20]
change y by [1]
wait [0.05] seconds
end
repeat [20]
change y by [-1]
wait [0.05] seconds
end
end
end
  

🎯 Step 2: Player Color Detection

Add this to your player sprite for collectible detection:

    // In Player Sprite - Main Movement Loop
when flag clicked
forever
// Your existing movement code here...

// Check for collectibles (yellow color)
if <touching color [#ffff00] ?> then
broadcast [collect item v]
end

// Your existing collision detection...
end
  

💰 Step 3: Collection Handler

Handle the collection event in your collectible sprite:

    // In Collectible Sprite
when I receive [collect item v]
// Check if this specific coin is being touched
if <touching [player v] ?> then
if <not <(collected) = [true]>> then
// Mark as collected
set [collected v] to [true]

// Add to score
change [score v] by (coin value)

// Play collection sound
play sound [coin collect v]

// Collection animation
repeat [5]
change [brightness v] effect by [20]
change size by [10]
change y by [5]
wait [0.05] seconds
end

// Hide the coin
hide

// Optional: Show score popup
broadcast [show score popup v]
end
end
  

📊 Step 4: Score Display System

Create a score display sprite:

    // Score Display Sprite
when flag clicked
go to [front v] layer
go to x: [-200] y: [150]
show

forever
set [display text v] to (join [Score: ] (score))
say (display text)
end

when I receive [show score popup v]
// Animate score increase
set [popup text v] to (join [+] (coin value))
create clone of [score popup v]
wait [0.1] seconds
  

✨ Step 5: Advanced Collection Effects

Add particle effects and better feedback:

    // Enhanced Collection with Particles
when I receive [collect item v]
if <touching [player v] ?> then
if <not <(collected) = [true]>> then
set [collected v] to [true]

// Create particle effect
repeat [8]
create clone of [particle v]
end

// Screen shake effect
broadcast [screen shake v]

// Update score with animation
change [score v] by (coin value)

// Collection sound with pitch variation
set [pitch v] effect to (pick random [-20] to [20])
play sound [coin collect v]
clear sound effects

hide
end
end
  

🔄 Step 6: Collectible Placement System

Create a system to place multiple collectibles:

    // Collectible Manager (invisible sprite)
when flag clicked
// Reset all collectibles
broadcast [reset collectibles v]

// Place collectibles at specific locations
set [collectible count v] to [0]

// Collectible positions (x, y coordinates)
set [positions v] to [100,50 200,100 150,150 50,80 250,120]

// Create collectibles at each position
repeat [5]
change [collectible count v] by [1]
broadcast (join [place collectible ] (collectible count))
end

when I receive [reset collectibles v]
// Reset all collectible states
set [collected v] to [false]
show
clear graphic effects
set size to [80] %
  

🎵 Step 7: Audio and Visual Polish

Add satisfying feedback:

    // Audio Manager
when I receive [collect item v]
// Layered sound effects
start sound [coin collect v]
wait [0.1] seconds
start sound [sparkle v]

// Check for collection milestones
if <((score) mod [100]) = [0]> then
// Every 100 points
play sound [achievement v]
broadcast [score milestone v]
end

// Collection combo system
if <(timer) < [2]> then
change [combo v] by [1]
if <(combo) > [3]> then
// Bonus for collecting multiple items quickly
change [score v] by [5]
say [Combo Bonus! +5] for [1] seconds
end
else
set [combo v] to [1]
end
reset timer
  

💡 Pro Tips for Great Collectibles

  • Visual feedback: Use size changes, rotation, and brightness effects
  • Audio layers: Combine multiple sounds for richer feedback
  • Combo system: Reward players for collecting items quickly
  • Strategic placement: Put collectibles in challenging but fair locations
  • Progress tracking: Show collected/total items (e.g., “5/10 coins”)
    // Collection Progress Display
when flag clicked
set [total collectibles v] to [10]
set [collected count v] to [0]

when I receive [collect item v]
change [collected count v] to [1]
set [progress text v] to (join (join (collected count) [/]) (total collectibles))

// Check for level completion
if <(collected count) = (total collectibles)> then
wait [1] seconds
say [All coins collected! Level complete!] for [3] seconds
broadcast [level complete v]
end
  

This creates a polished, satisfying collectible system that will keep players engaged! 🌟

PB

PlatformerBuilder

Replied 6 hours later

@GameMechanics_Expert This is incredible! 🤩 Thank you so much for the detailed explanation!

I especially love the particle effects and combo system - that’s going to make collecting coins feel so much more rewarding. Already implemented the basic detection and it works perfectly! 💰

The progress tracking is a great touch too. Can’t wait to add all these features to my game! 🎮

💡 Community Tip

Remember to be patient when asking for help! The Scratch community spans many time zones, so it’s worth waiting at least 24 hours for responses. Great questions with clear details (like this one!) always get helpful answers. 🌍

VB

Vibelf_Community

Pinned Message • Moderator

💰 Master Game Mechanics & Collectibles

Excellent discussion on collectible systems! For those looking to create engaging game mechanics, our community specializes in:

  • 🎮 Advanced collectible systems
  • 🏆 Achievement and progression mechanics
  • ✨ Visual effects and game polish
  • 🎵 Audio design for game feedback

📚 Related Topics

Ready to create engaging collectible systems that keep players coming back? Get expert guidance from our game design specialists!