Nice animation and sprite handling. I would love to see smoother transitions between character actions and a better flow for movement mechanics when switching directions.

  • Srinivasa
    // Player data for Learning Dog
        const sprite_src_learningdog = path + "/images/gamify/Download10477.png"; // be sure to include the path
        const learningdog_SCALE_FACTOR = 5;
        const sprite_data_learningdog = {
            id: 'Learning Dog',
            greeting: "I'm going to beat you!",
            src: sprite_src_learningdog,
            SCALE_FACTOR: learningdog_SCALE_FACTOR,
            STEP_FACTOR: 1000,
            ANIMATION_RATE: 50,
            INIT_POSITION: { x: 300, y: 350 }, 
            pixels: {height: 254, width: 568},
            orientation: {rows: 4, columns: 9 },
            down: {row: 2, start: 0, columns: 9 },
            left: {row: 1, start: 0, columns: 9 },
            right: {row: 3, start: 0, columns: 9 },
            up: {row: 0, start: 0, columns: 9 },
            hitbox: { widthPercentage: 0.45, heightPercentage: 0.2 },
            keypress: { up: 87, left: 65, down: 83, right: 68 } // W, A, S, D
        };
    

    Great use of collisions. Maybe make the interactions between the player and other things better.

  • Praveen
    hitbox: { widthPercentage: 0.45, heightPercentage: 0.2 },
    

    Nice boundaries. I think it would be great to see some bounce-back effect instead of stopping it.

  • Akhil

It’s an ok game, but maybe you could make it smoother. I didn’t like how it sped up randomly.

  • Vanaja
    handleKeyDown({ keyCode }) {
          switch (keyCode) {
              case this.keypress.up:
                  this.velocity.y = -SPEED;
                  this.direction = 'up';
                  break;
              case this.keypress.left:
                  this.velocity.x = -SPEED;
                  this.direction = 'left';
                  break;
              case this.keypress.down:
                  this.velocity.y = SPEED;
                  this.direction = 'down';
                  break;
              case this.keypress.right:
                  this.velocity.x = SPEED;
                  this.direction = 'right';
                  break;
          }
      }
    

I don’t like how your game is, the battle is not that good. Although, I think you can improve it if you made the battle more interesting. I would suggest making it like the player attacks, then the NPC attacks, and go on in that order.

  • Abhijay
    startTurnBasedBattle() {
          this.startPlayerTurn();
      }
    
      startPlayerTurn() {
          this.isPlayerTurn = true;
          this.showTurnMessage("Your turn to attack!", "player");
          console.log("Player's turn.");
      }
    
      startNpcTurn() {
          this.isPlayerTurn = false;
          this.showTurnMessage("NPC's turn to attack!", "npc");
          console.log("NPC's turn.");
      }
    

    The sprites and other objects were a bit blurry, maybe fix that. Otherwise, the game was really good.

  • Aaryav
    SCALE_FACTOR: 5,  // Adjusted for less blurriness
    

I don’t really see the point of the 5th level, maybe you can make the game end at the 4th level when the enemy NPC dies, or add something like unique to the 5th level. Pretty good overall.

  • Akhil K.
    handleKeyDown({ key }) {
              switch (key) {
                  case "e":
                  case "u":
                      this.shareQuizQuestion();
                      break;
                  case "b":
                      this.bPressCount++;
                      if (this.bPressCount >= 10) {
                          console.log("Level ending");
                          this.handleLevelEnd();
                          this.bPressCount = 0; // Reset the counter if needed
                          }
                          break;
                  case "k":
                      console.log("Level ending");
                      this.handleLevelEnd();
                      break;
          }
      },