.. note:: Hello, welcome to the SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community on Facebook! Dive deeper into Raspberry Pi, Arduino, and ESP32 with fellow enthusiasts. **Why Join?** - **Expert Support**: Solve post-sale issues and technical challenges with help from our community and team. - **Learn & Share**: Exchange tips and tutorials to enhance your skills. - **Exclusive Previews**: Get early access to new product announcements and sneak peeks. - **Special Discounts**: Enjoy exclusive discounts on our newest products. - **Festive Promotions and Giveaways**: Take part in giveaways and holiday promotions. 👉 Ready to explore and create with us? Click [|link_sf_facebook|] and join today! .. _sc_parrot: 2. Flappy Parrot ============================== In this project, we utilize an ultrasonic module to play a flappy parrot game. After starting the script, the green bamboo (Paddle) will move from right to left at a random height. To control the parrot, place your hand above the ultrasonic module. If the distance between your hand and the module is less than 10cm, the parrot will ascend; otherwise, it will descend. You must manage this distance carefully to help the Parrot navigate past the green bamboo. Contact with the bamboo ends the game. .. raw:: html Below are the steps for implementing the project. It is recommended to follow these steps initially, and once familiar, you may alter the effects as desired. 1. Add Sprites --------------------------- * Delete the default sprite and use the **Choose a Sprite** button to add the **Parrot** sprite. Set its size to 50% and position it on the bottom left corner. .. image:: img/parrot_choose_parrot.png * Add the **Paddle** sprite, set its size to 150%, rotate it to 180 degrees, and position it in the top right corner. .. image:: img/parrot_choose_paddle.png * Navigate to the **Costumes** page of the **Paddle** sprite, select the **Paddle** on the canvas, and then click the **Outline** tool. .. image:: img/parrot_set_parrot1.png :width: 90% * Change the outline effect to full fill mode and use the removal tool to eliminate it. .. image:: img/parrot_set_parrot2.png :width: 90% 2. Scripting for the **Parrot** Sprite --------------------------------------------- Script the **Parrot** sprite to simulate its flight, with altitude adjustments based on the ultrasonic module's detection distance. * When the green flag is clicked, switch the costume every 0.2 seconds to maintain the appearance of flight. .. image:: img/parrot_script_parrot1.png * If the ultrasonic detection distance is less than 10cm, increase the y-coordinate by 50, causing the **Parrot** to ascend. Otherwise, decrease the y-coordinate by 40, causing the **Parrot** to descend. .. image:: img/parrot_script_parrot3.png * If the **Parrot** sprite makes contact with the **Paddle** sprite, the game ends, and the script ceases execution. .. image:: img/parrot_script_parrot4.png 3. Scripting for the **Paddle** Sprite ----------------------------------------------- Script the **Paddle** sprite to appear randomly on stage. * Hide the **Paddle** sprite when the green flag is clicked and simultaneously create a clone of itself. The [`create clone of `_] block controls this cloning process. .. image:: img/parrot_script_paddle1.png * Set the clone's position with the x-coordinate at 220 (rightmost) and the y-coordinate randomly between (-125 to 125). .. image:: img/parrot_script_paddle2.png * Use the [repeat] block to gradually decrease its x-coordinate, making the clone move slowly from right to left until it disappears. .. image:: img/parrot_script_paddle3.png * Re-clone a new **Paddle** sprite and delete the previous clone. .. image:: img/parrot_script_paddle4.png Programming is complete. You can now click the green flag to run the script and see if it achieves the desired effect. .. raw:: html