Traps! | Create an Amazing Game with Flutter & Flame

Поділитися
Вставка
  • Опубліковано 3 жов 2024
  • 📺 Checkout the playlist - • Create an Amazing Game...
    📂 Checkout the GitHub project - github.com/Spe...
    🖼️ Game Assets - pixelfrog-asse...
    💻 Tiled - www.mapeditor....
    #flutter #flame #gamedev
    Welcome to Episode 6 of our enthralling game development tutorial series, "Traps! Create an Amazing Game with Flutter & Flame"! In this action-packed installment, we're taking your game to the next level by adding thrilling traps and obstacles that will challenge and delight your players, all powered by the incredible combination of Flutter and Flame.
    First up, we'll delve into the art of trap design. From devious spike traps to cunning moving obstacles, we'll guide you through the process of creating traps that will keep your players on the edge of their seats. Learn how to implement various trap mechanisms, each with its own unique difficulty, ensuring your game remains exciting and unpredictable.
    But that's not all-the adrenaline-fueled excitement continues as we introduce the concept of player interactions with traps. Watch as we demonstrate how to devise clever ways for players to overcome these challenges. From double-jumping to sliding maneuvers, you'll discover how to empower players with the skills needed to navigate through the treacherous terrain you've created.
    As we progress through the video, we'll ensure that your traps are perfectly balanced to offer a fair yet thrilling experience. We'll show you how to fine-tune the timing and placement of traps, preventing frustration while maintaining a sense of accomplishment when they are conquered.
    Throughout the tutorial, we provide clear explanations and practical demonstrations, making it easy for you to incorporate these captivating traps and obstacles into your own game development projects. You'll also gain valuable insights into playtesting and adjusting difficulty levels, ensuring that your game remains both challenging and enjoyable for players of all skill levels.
    By the end of this episode, your game will boast heart-pounding traps and obstacles that keep players hooked, coming back for more. The carefully crafted gameplay mechanics will leave players with a sense of triumph as they conquer each challenge in their path.
    If you're as thrilled as we are about these exhilarating gameplay mechanics, be sure to show your support by liking this video and subscribing to our channel. We have many more exciting tutorials lined up for game development with Flutter and Flame, and we can't wait to share them with you. Have any questions or ideas? Share them in the comments below; we cherish your feedback!
    Stay tuned for the next video, where we'll explore the art of character customization, allowing your players to personalize their gaming experience and truly immerse themselves in the world you've created. Get ready to unleash your creativity and take your game to new heights. Happy coding, and let's continue our journey to create amazing games together!
    🛡️Join this channel to get access to perks: www.youtube.co...
    Help me reach my sub goal by subscribing youtube.com/@S...
    ||||||||||||||| 233% ||||||||||||||| 4.66K/2K
    Most recent subscriber: jtcdarkstar darkstar
    @Spellthorn is a talented web/mobile developer who is dedicated to helping others improve their coding skills. Through their UA-cam channel, they create informative and engaging videos that cover a wide range of programming topics. - spellthorn.com/
  • Навчання та стиль

КОМЕНТАРІ • 43

  • @ricardomejias7957
    @ricardomejias7957 Рік тому +7

    06:09 Quick tip: there's a shorter sintax for super parameters:
    class Enemy extends SpriteAnimationGroupComponent {
    Enemy({
    super.position,
    super.size,
    });
    }
    This also provides the Enemy class with type annotation when using it, they inherit the super's types, otherwise these two parameters are treated as "dynamic".

    • @Spellthorn
      @Spellthorn  Рік тому +1

      Thank you for that advice. Someone else also mentioned that as well, just haven't switched to that yet 😁

  • @Raix03
    @Raix03 11 місяців тому +8

    Instead of magic delays we can observe when animation has ended
    ```
    void _respawn() {
    gotHit = true;
    current = PlayerState.hit;
    final hitAnimation = animationTickers![PlayerState.hit]!;
    hitAnimation.completed.whenComplete(() {
    current = PlayerState.appearing;
    scale.x = 1;
    position = startingPosition - Vector2.all(32);
    hitAnimation.reset();
    final appearingAnimation = animationTickers![PlayerState.appearing]!;
    appearingAnimation.completed.whenComplete(() {
    position = startingPosition;
    current = PlayerState.idle;
    gotHit = false;
    appearingAnimation.reset();
    });
    });
    }
    ```

    • @Spellthorn
      @Spellthorn  8 місяців тому +1

      Yea animationticker are definitely the best way to go. Thanks 😊

  • @GarthFransman
    @GarthFransman Рік тому +4

    DUDE , This is AMAZING . Been waiting for a SOLID Flame tutorial . THANKS SO MUCH

    • @Spellthorn
      @Spellthorn  Рік тому

      You're welcome, thanks for watching

  • @azaderahmati8593
    @azaderahmati8593 2 місяці тому

    the best tutorial and you are the best teacher. thank you🙂

  • @sudo8488
    @sudo8488 Рік тому +3

    in 34:06 you can use ..loop=false in declaring hit animation to disable loopping .
    hitAnimation = _getSpriteAnimationForEachBehaviour(
    amount: 7,
    state: 'Hit',
    characterType: characterType,
    )..loop = false;

  • @tfozo
    @tfozo Рік тому +2

    It's an honour to be the first to comment on this historical video. Thanks brother you are awesome.

    • @Spellthorn
      @Spellthorn  Рік тому

      😄 thank you glad you're enjoying them 😊

    • @tfozo
      @tfozo Рік тому

      ​@@Spellthorn 6 minutes into it please don't interrupt. And your voice is what I was surfing for on this Internet thing.

    • @Spellthorn
      @Spellthorn  Рік тому +1

      🤣 sorry ill be quiet 🤫

  • @bogbrushers
    @bogbrushers Рік тому +4

    Good stuff, I'm following along. One thing I did change was the rotation direction of the saws. I think they look better reversed - animation = animation!.reversed();

    • @Spellthorn
      @Spellthorn  Рік тому

      I'll have to see how reversed looks 😁

  • @Amankumar_Raone
    @Amankumar_Raone 19 днів тому

    You can use oncollisionend property instead of delay which may work perfect
    And thanx for sharing this quality content

  • @dcdales
    @dcdales 8 місяців тому

    Just awesome. Love seeing how someone can write code in such a nicely organized and thoughtful way.
    If it were me, I'd use async/await with the Future.await so that it doesn't get nested, but this is perfect already.

    • @Spellthorn
      @Spellthorn  8 місяців тому

      Thanks for the advice 😊

  • @JUANORQUIO
    @JUANORQUIO Рік тому

    Bravo 👏🏻! That’s Incredibly Awesome! Cheers!🥂❤️✨

    • @Spellthorn
      @Spellthorn  Рік тому +1

      Thank you, glad you enjoyed it 😁

  • @anandyerawar6473
    @anandyerawar6473 6 місяців тому +2

    What about joystick , i mean you haven't done the jump thing there , please tell me how to do it ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

  • @crazyvolt1660
    @crazyvolt1660 Рік тому

    Amazing one one again.

  • @tjghinder3979
    @tjghinder3979 Рік тому

    These are amazing! 🙏

  • @DivyanshuSingh099
    @DivyanshuSingh099 Рік тому

    Outstanding content !!

  • @ricardomejias7957
    @ricardomejias7957 Рік тому

    47:30 in the update method, the gotHit check is preventing gravity from being applied to the player. Perhaps you should apply gravity to the player regardless its state?

    • @Spellthorn
      @Spellthorn  Рік тому +1

      I didn't want my player gravity to continue if player was hit i want him "frozen" in place, which is why I went with this approach, but yes that approach could work as well since it happens so quick

  • @vlogbyatahan
    @vlogbyatahan Рік тому

    Awsome 😍😍

  • @denilsonwashuma1987
    @denilsonwashuma1987 Рік тому

    You are awesome

  • @gogu2120
    @gogu2120 Рік тому

    😍😻❤

  • @Abhishek7Shah
    @Abhishek7Shah 10 місяців тому

    bro how can i contact you i have an error in my code

    • @Spellthorn
      @Spellthorn  8 місяців тому

      Sorry I've been away, I hope you figured it out