;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Paulo Anshowinhas

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Skate e games combinados em evento inédito; atleta olímpica fratura a perna

Panorâmica do Red Bull Skate Levels competição de skate e games em SP - Marcelo Maragni/ Red Bull Content Pool - Divulgação
Panorâmica do Red Bull Skate Levels competição de skate e games em SP Imagem: Marcelo Maragni/ Red Bull Content Pool - Divulgação

Colunista do UOL

28/10/2022 04h27

A fusão do skate com os games foi celebrada nesta quinta-feira (27), em São Paulo, no Red Bull Skate Levels, com uma megaprodução em formato inédito. O evento reuniu skatistas olímpicos e outros grandes nomes do esporte em São Paulo. Atleta olímpica, a filipina Margielyn Didal sofreu uma fratura na perna durante a competição.

Com uma arena montada com exclusividade em um estúdio de cinema no bairro da Vila Mariana —construída pela Pug Skatepark—, os skatistas convidados percorriam um percurso com imagens mapeadas por vídeo, mescladas com ação ao vivo, como se os skatistas fossem personagens de um game interativo.

Apresentado por Octávio Neto com comentários de Rodrigo Kbeça Lima, e Grazi Oliveira, o evento teve transmissão ao vivo pelos canais Space, TNT Sports no Twitch e YouTube, sendo que, de acordo com esta plataforma de streaming, o formato de "Game of Skate" tem sido a segunda modalidade mais procurada, atrás apenas do futebol.

Dezesseis 16 skatistas de ponta —dois deles estrangeiros— foram divididos em quatro equipes com uma menina em cada grupo. Assim como nos games, cada um tinha diferentes missões e níveis de dificuldade a serem realizadas em seis obstáculos diferentes.

wall ride - Marcelo Maragni/ Red Bull Pool Content Pool - Divulgação - Marcelo Maragni/ Red Bull Pool Content Pool - Divulgação
Skatistas no Wall Ride durante Red Bull Skate Levels em SP
Imagem: Marcelo Maragni/ Red Bull Pool Content Pool - Divulgação

As equipes criaram nomes curiosos como Young Hermanos, Dark, Red Devils e Tropa de Mantem. As provas enfrentadas incluíram First Try (saltando uma escadaria de seis degraus), Back to Back (em duas caixas), Wall Ride (em um imenso paredão de cerca de 4 metros de altura por seis de largura), Kink (com um corrimão com um declive e uma parte reta) e dois outros obstáculos móveis que fizeram a diferença.

Um deles, o Euro Gap, aumentava de tamanho durante a competição para dificultar o seu uso, e o obstáculo final, chamado de "Chefão", era modular com uma base no formato de mesa, que se transformou em um corrimão convexo e, por fim, côncavo, de alto grau de dificuldade.

Participaram da competição atletas como João Lucas Alves, o Xuxu (campeão brasileiro e medalhista sul-americano de bronze), Eduardo Neves, Gabriel Aguilar e Marcelo Batista. O público on-line podia interagir e votar no seu time favorito e influenciar a nota final.

"Eu achei o Euro Gap, o mais difícil, porque é um obstáculo que ia aumentando e ia ficando cada vez mais distante, e para conseguir embalo ia ficando mais difícil, mas eu consegui acertar as manobras e conseguimos o título", disse Xuxu, que curte jogar Free Fire, e Skate 3 nos games. Ele foi um dos integrantes da equipe "Tropa de Mantem", que incluía a skatista Carla Karolina, Marcelo Batista e Matheus Mendes, vencedores da prova.

chefao - Marcelo Maragni/ Red Bull Content Pool - Divulgação - Marcelo Maragni/ Red Bull Content Pool - Divulgação
O "Chefão", um dos obstáculos mais desafiadores do Red Bull Skate Levels
Imagem: Marcelo Maragni/ Red Bull Content Pool - Divulgação

Para Rogério Mancha, técnico da seleção olímpica brasileira de skate street, "o evento foi diferente, inovador, criativo, afinal skate tem essa coisa lúdica de imaginar situações de se transformar obstáculos da rua e dar vida a eles. Muito legal fazer essa analogia com games e fases, o nível está muito alto, e toda a estética do evento também está incrível".

Campeã brasileira leva filha de colo, e filipina fratura a perna

Entre as participantes femininas estavam Carla Karolina, Marina Gabriela, Gabriela Mazetto e Margielyn Didal.

Atual campeã brasileira de street e integrante da seleção brasileira, Gabi Mazetto, que irá correr a etapa final da Street League na próxima semana no Rio de Janeiro, participou da experiência observada de perto pelo marido e pela filha Liz, de um ano de idade.

"Eu não vim aqui pensando no Street League, vim por diversão, andar de skate, estava sem andar desde o Rio de Janeiro, mas que venha a Street League pela frente. Sobre as Olimpíadas, eu estou focada tentando fazer a minha parte para que tudo dê certo em 2024", disse a campeã.

A skatista filipina Margielyn Didal, sétima colocada nos Jogos Olímpicos de Tóquio e que ficou conhecida pelo sorriso fácil e pelas dancinhas com Rayssa Leal, caiu do corrimão no Kink ao realizar um 50/50 (deslizando os dois eixos) e teve uma fratura na perna.

Margi foi levada para o hospital de onde postou imagens com a perna enfaixada., e disse que a bem. "Vou voltar em breve", escreveu.

Margielyn, que está com 23 anos, ajudava a mãe a vender comida na rua quando tinha 12 anos. Ela começou a andar de skate para ajudar a família, em 2018, entrou para o X Games, sendo a primeira filipina a participar do evento. Em 2019, participou do Tampa Women's Open e garantiu seu lugar nas Olimpíadas.