JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://rawgithub.com/photonstorm/phaser/master/build/phaser.min.js"></script>

JavaScript

var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render });

var ball,
    block;

function preload() {

}

function create() {
    game.physics.setBoundsToWorld(true, true, true, true);
    
    ball = game.add.sprite(110, 300);
    ball.body.setCircle(30);
    ball.body.gravity.y = 600;
    ball.body.velocity.y = -300;
    ball.anchor.setTo(0.5, 0.5);
    ball.body.maxAngular = 500;
    ball.body.bounce.y = 0.7;
    ball.body.collideWorldBounds = true;
    
    block = game.add.sprite(game.world.centerX, 465);
    block.body.setRectangle(40, 150);
    
}

function update() {
    ball.body.velocity.x += 6.2;
    ball.angle -= 1;
    if (game.physics.collide(ball, block)) {
        block.destroy();
        ball.body.rotation = 0;
        ball.body.velocity.x = 0;
    }
}

function render() {
    game.debug.renderSpriteInfo(ball, 32, 32);

    game.debug.renderPhysicsBody(ball.body);
    if (block.exists)
        game.debug.renderPhysicsBody(block.body);
}