Login

Esqueci minha senha

Últimos assuntos
» Um simples treinamento
por AxeInLine Hoje à(s) 12:02 am

» Crio Trilha Sonora para Games!
por Isaias Malafaia Ontem à(s) 11:40 pm

» [CQ#20]Mary- A endless cursed bloody night
por JoaoVanBlizzard Ontem à(s) 11:25 pm

» [CQ#20] ALAN PSYCHO
por WellingtonBecker Ontem à(s) 9:17 pm

» [CQ#20] Tower of Challenge
por PedroX Ontem à(s) 7:17 pm

» Sozinho na selva [#CQ-20]
por PedroX Ontem à(s) 7:16 pm

» [CQ#20] Monkey EVOlution
por PedroX Ontem à(s) 7:15 pm

» Playing Dead
por Eudes - Hyo Ontem à(s) 3:37 pm

» 7 dicas para melhorar o desempenho dos seus jogos
por Kabeção Ontem à(s) 3:27 pm

» [#CQ20] Sobrevivência
por PedroX Ontem à(s) 3:17 pm

» Calabouço Fantasma
por JoaoVanBlizzard Ontem à(s) 2:41 pm

» [Campeão CQ-19]À arca
por Tanker GT Ontem à(s) 12:23 am

» Gomez vs Aliens[CQ-20]
por luix_337 Qui Ago 21, 2014 11:03 pm

» [CQ#20] Apocalipse Z'
por JoaoVanBlizzard Qui Ago 21, 2014 7:58 pm

» Too Many Gears
por Isaque Onix Qui Ago 21, 2014 7:36 pm

» duvida instance_nearest()
por alexfuziokaandrade7 Qui Ago 21, 2014 6:20 pm

» Problema com código, Collision_line()
por Mateus O de Andrade Qui Ago 21, 2014 12:47 pm

» Meu Primeiro Jogo - Flappy Plane
por paulovmdutra Qui Ago 21, 2014 12:44 pm

» duvida towerfall
por matheusco Qua Ago 20, 2014 11:54 pm

» Game Maker Studio Steam - completo com exporters
por makgamer Qua Ago 20, 2014 9:38 pm

» Despertador
por Vizage Qua Ago 20, 2014 6:02 pm

» Ajuda
por Isaque Onix Qua Ago 20, 2014 6:01 pm

» Água e ar
por matheusco Qua Ago 20, 2014 5:31 pm

» Rain of Fire and Meteors [#CQ-20]
por Fagner Qua Ago 20, 2014 5:14 pm

» [Pedido Script]Mandar e-mail pelo GMS
por Gabreel Qua Ago 20, 2014 3:40 pm

» Novo na área
por Bregantino Qua Ago 20, 2014 2:23 pm

» [RESOLVIDO] Aprimorando a física.
por isaac138 Qua Ago 20, 2014 2:14 pm

» [#CQ20] D-Run!
por DooMan Qua Ago 20, 2014 12:00 pm

» View e inimigos parados
por Mateus O de Andrade Qua Ago 20, 2014 11:38 am

» [TUTORIAL] MONTANDO UMA GAMELIB DO ZERO EM JS
por fredcobain Qua Ago 20, 2014 9:01 am

» Acertar alvo com tiro parabolico
por Isaque Onix Qua Ago 20, 2014 12:44 am

» [#CQ20] The diamond of my life
por JoaoVanBlizzard Ter Ago 19, 2014 11:48 pm

» Demo Hatfields and MacCoys
por JoaoVanBlizzard Ter Ago 19, 2014 11:10 pm

» Criação de Bala não funciona em uma única direção
por Rodrigo Santiago Ter Ago 19, 2014 9:45 pm

» Sistema de microtransação
por willyruduit Ter Ago 19, 2014 7:50 pm

» GMS jack sparrow
por Pegore Ter Ago 19, 2014 6:59 pm

» Ajuda com Pixel Art
por Object Ter Ago 19, 2014 1:35 pm

» dúvidas sobre o 'for"
por Rodrigo Santiago Ter Ago 19, 2014 11:35 am

» [Engine] Pausando o jogo como antigamente
por Mateus O de Andrade Ter Ago 19, 2014 10:46 am

» Criar engrenagem -physics-
por alexfuziokaandrade7 Ter Ago 19, 2014 9:17 am

» Egine De Movimentação de Plataforma
por Mateus O de Andrade Ter Ago 19, 2014 8:51 am

» Super Mario Project v 1 (18/08/2014 19:00)
por Mateus O de Andrade Ter Ago 19, 2014 8:10 am

» [Pesquisa]Estúdio Indie (Projeto da faculdade)
por douglas444 Ter Ago 19, 2014 6:03 am

» Objeto pula mais quando cai, para no ar '-'
por Willy Seg Ago 18, 2014 11:59 pm

» [Resolvido]Dúvidas com I.A.
por matheusco Seg Ago 18, 2014 9:46 pm

» Precisa-se de Programador
por theguitarmester Seg Ago 18, 2014 9:28 pm

» Super Cosmonauts
por Molinware Seg Ago 18, 2014 8:40 pm

» Ajuda com GDD (Game Design Document)
por itarodrigo Seg Ago 18, 2014 8:17 pm

» FutVida - A sua vida de jogador de futebol
por Fernando Monteiro Seg Ago 18, 2014 8:00 pm

» [Android] Trabalhando com MYSQL no GMS?
por GabrielXavier Seg Ago 18, 2014 7:34 pm

» Duvida com camera lenta específica
por AlexBosquin Seg Ago 18, 2014 7:21 pm

» [Tutorial]Game Maker Server #2 Configurando
por LightVelox Seg Ago 18, 2014 6:26 pm

» loja online
por Isaque Onix Seg Ago 18, 2014 6:19 pm

» Plataforma com movimento automático
por Isaque Onix Seg Ago 18, 2014 4:42 pm

» Precisa-se de Desenhista
por Kouga80 Seg Ago 18, 2014 4:22 pm

» Como colocar hoje em dia AdMob no meu jogo?
por cascavelo Seg Ago 18, 2014 12:01 pm

» Contador de Moedas
por Mestre Rá Seg Ago 18, 2014 8:52 am

» Remover Collision shape -physics-
por matheusco Seg Ago 18, 2014 2:08 am

» Como Dar uma quantidade aleatória de itens?
por Mannoroth Dom Ago 17, 2014 10:40 pm

» Avast impedindo executar o jogo?
por Gabreel Dom Ago 17, 2014 5:06 am

» [#CQ19] Animais - Resultado
por Tanker GT Dom Ago 17, 2014 12:08 am

» FutQuiz
por jairjosemoreira Sab Ago 16, 2014 9:15 pm

» Como fazer com que o objeto siga o mouse?
por WellingtonBecker Sab Ago 16, 2014 9:12 pm

» Alguma ideia para um jogo?
por Diego albert Sab Ago 16, 2014 6:51 pm

» Não sei o nome e muito menos como fazer... Ajuda?
por gabrielsch Sab Ago 16, 2014 3:51 pm

» Efeito Scanlines (Shaders)
por Pegore Sab Ago 16, 2014 3:25 pm

» Sons externos no Game Maker Studio
por AlexBosquin Sab Ago 16, 2014 1:59 pm

» Webinar grátis: Custo dos Bugs, Controle de Versão
por olesoccer Sab Ago 16, 2014 12:36 pm

» Ajuste de Tela (IMPORTANTE)
por leandro.sousa.7370 Sab Ago 16, 2014 12:25 pm

» inimigo atirar
por AxeInLine Sab Ago 16, 2014 11:12 am

» Programador
por Diego albert Sab Ago 16, 2014 10:34 am

» Don't Go to the Light
por Funbit Games Sab Ago 16, 2014 6:05 am

» [Android] http_get e http_post_string
por GabrielXavier Sab Ago 16, 2014 12:43 am

» pergunta sobre texto que vai aparecendo aos poucos
por ismlelo Sex Ago 15, 2014 9:40 pm

» [Dúvida] Softwares para criação de aúdio 8 Bits.
por Lighter Sex Ago 15, 2014 6:38 pm

» Sonoplasta a disposição
por eduardopolitzer Sex Ago 15, 2014 2:56 pm

» [RESOLVIDO]Bug reverso
por MatheusMM Sex Ago 15, 2014 1:22 pm

» [Galeria] The Origin.
por MatheusMM Sex Ago 15, 2014 12:34 pm

» Dúvida Game Maker Standard
por douglas444 Sex Ago 15, 2014 8:34 am

» [Ajuda] Erro Android
por matheusbs96 Sex Ago 15, 2014 12:57 am

» Sprite para meu jogo[atualizado]
por João Pedro Qui Ago 14, 2014 8:19 pm

» Fleeing the Shark v.1.0
por JoaoVanBlizzard Qui Ago 14, 2014 7:25 pm

» Ajuda para se Manter agachado ^^
por Lighter Qui Ago 14, 2014 5:14 pm

» Como centralizar banner do AdMob
por cascavelo Qui Ago 14, 2014 2:10 pm

» inimigo me ver
por manobrother Qui Ago 14, 2014 1:00 pm

» [Android] Servidor no Smartphone?
por GabrielXavier Qui Ago 14, 2014 11:43 am

» Algumas pinturas
por Koratsu Qui Ago 14, 2014 11:42 am

» Movimento do mapa topdown estilo RPG antigo
por itarodrigo Qui Ago 14, 2014 11:02 am

» [#CQ19] Votação
por PedroX Qua Ago 13, 2014 11:11 pm

» Sobre GM:S Android Crackeado
por PedroX Qua Ago 13, 2014 10:13 pm

» Alguém conhece um programa para compor em 16 Bits?
por WellingtonBecker Qua Ago 13, 2014 9:27 pm

» [Recrutamento] Team Magma
por LucasBG Qua Ago 13, 2014 8:57 pm

» Como tirar a qualidade de todos os gráfico dos gm?
por AxeInLine Qua Ago 13, 2014 8:45 pm

» Sistema parecido com o do google ideias pf
por icarodantas123 Qua Ago 13, 2014 8:37 pm

» [Resolvido]Colisão com parent
por AlexBosquin Qua Ago 13, 2014 8:09 pm

» [Resolvido]Dúvida com sign
por AlexBosquin Qua Ago 13, 2014 8:04 pm

» Desenho para Iniciantes: Rabiscando em 3D
por manobrother Qua Ago 13, 2014 6:11 pm

» spawnar aleatoriamente e velocidade
por Isaque Onix Qua Ago 13, 2014 2:30 pm

» Multiplayer Nativo do GMS
por theguitarmester Qua Ago 13, 2014 8:35 am


Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Página 1 de 2 1, 2  Seguinte

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por Knonick em Qui Jun 09, 2011 11:07 pm

Como eu faço para em 3 segundos a tela ficar toda preta, e onde eu clicar, somente onde eu clicar, essa parte da tela (um círculo com raio de 8 pixels) ficar como estava antes de ficar preta?


Última edição por Knonick em Sex Jun 10, 2011 12:00 am, editado 1 vez(es)

Knonick

Número de Mensagens: 92
Idade: 16
Data de inscrição: 10/05/2011
Reputação: 0

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por Carlos L. em Qui Jun 09, 2011 11:24 pm

Crie um background preto com qualquer dimensão.
Agora vá na aba background na room e marque a opção 'visible when room starts' e a opção 'Stretch', não selecione o background criado.
Agora crie um objeto e coloque o seguinte script.
//CREATE
alarm[0] = room_speed * 3;
//ALARM [0]
background_index[0] = nome_background_criado;
//DRAW
if (mouse_check_button(mb_left))
{
if (background_index[0] == nome_background_criado)
{
draw_circle_color(mouse_x,mouse_y,16,background_color,background_color,0);
}
}

Pronto agora teste e enquanto você estiver clicando ele irá mostrar um circulo onde terá a cor do background.
flw

Carlos L.

Ranking: Nota C
Número de Mensagens: 270
Data de inscrição: 26/09/2010
Notas recebidas: C
Reputação: 8

Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por saim em Qui Jun 09, 2011 11:27 pm

Desenha uma surface do tamanho da tela, toda preta, num objeto de depth mais baixa. Desenhe ela em alpha crescente, de modo que leve 3 segundos pra chegar a 1 (a velocidade deverá ser 1/(3*room_speed)). Depois, onde clicar, você altera essa surface, subtraindo um círculo de raio 16.
Informações mais aprofundadas no meu tutorial de surfaces (link na assinatura).

saim

Ranking: Nota B
Número de Mensagens: 2939
Idade: 36
Data de inscrição: 14/01/2011
Versão:
  • Game Maker 8.0
  • Game Maker Studio: Professional

Notas recebidas: C-D-A
Reputação: 116

Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por Knonick em Qui Jun 09, 2011 11:59 pm

Carlos, o seu funcionou, mas não do jeito que eu queria. Queria que o preto ficasse em cima de tudo na tela, até os objetos. E outra coisa, a room tem background que é uma imagem, e o círculo só é criado, se o background da room for uma só cor. E por último, queria que o circulo criado não sumisse quando eu soltasse o botão esquerdo do mouse. E uma pequena correção, o círculo que quero não tem raio de 16 pixels, e sim 8 pixels (escrevi errado no tópico).

Saim, li o tutorial, mas não entendi direito o que é uma surface.

Knonick

Número de Mensagens: 92
Idade: 16
Data de inscrição: 10/05/2011
Reputação: 0

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por saim em Sex Jun 10, 2011 8:35 am

Ou, em outras palavras, "seu tutorial não serve pra nada!". Tudo bem, vamos por partes.
Uma surface é uma pintura. Tipo uma sprite, mas fácil de alterar. Ela pode ser do tamanho que você quiser e você quer ela do tamanho da tela. Ela pode conter o que você quiser e você quer que ela contenha um retângulo preto com uns buracos transparentes.
Primeiro, você cria a surface e dá um nome pra ela. Eu adoro chamar surfaces de "Surf". Depois você deixa ela toda preta.
create:
Código:
Surf=surface_create(room_width, room_height)
surface_set_target(Surf)
draw_clear_alpha(c_black, 1)
surface_reset_target()
Daí, toda vez que você clica, abre um buraco nela. Pode ser feito no global_mouse_pressed ou no step. Eu gosto do step:
Código:
if mouse_check_button_pressed(mb_left){
   surface_set_target(Surf)
   draw_set_blend_mode(bm_subtract) //passa a remover ao invés de desenhar
   draw_circle_color(mouse_x, mouse_y, 8, c_white, c_white, 0)//verifique a ordem dos argumentos
   draw_set_blend_mode(bm_normal) //volta a desenhar ao invés de remover
   surface_reset_target()
   }
E, claro, desenha a surface no draw:
Código:
draw_surface(0, 0, Surf)

saim

Ranking: Nota B
Número de Mensagens: 2939
Idade: 36
Data de inscrição: 14/01/2011
Versão:
  • Game Maker 8.0
  • Game Maker Studio: Professional

Notas recebidas: C-D-A
Reputação: 116

Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por Knonick em Sex Jun 10, 2011 9:59 am

Eu não quis falar mal do seu tutorial, só quis dizer que ficou um pouco confuso para mim (não sei se foi porque eu estava com sono).
E sobre essa mini explicação (que eu entendi), funcionou perfeitamente, só preciso que quando eu arrastar o mouse segurando o botão, continuasse criando os círculos transparentes.

---EDIT---

Já consegui, mudei o mouse_check_button_pressed para mouse_check_button, mas quando eu arrasto o mouse rapidamente, os círculos criados ficam separados, queria que ficassem juntos. Créditos garantidos no meu jogo.

Knonick

Número de Mensagens: 92
Idade: 16
Data de inscrição: 10/05/2011
Reputação: 0

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por saim em Sex Jun 10, 2011 10:48 am

Knonick escreveu:Eu não quis falar mal do seu tutorial, só quis dizer que ficou um pouco confuso para mim (não sei se foi porque eu estava com sono).
E eu não estava reclamando também. É que eu esqueço que teclado não tem tom de voz. Eu estava fazendo piada. Tá, eu não sou muito bom nisso...
Agora, quanto aos círculos separados... O problema é mais complexo. O lance é que o mouse não faz um caminho que passa por todos os pontos, ele pula de onde ele estava pra onde ele está, o que dá essa impressão de surface com catapora. Você poderia interpolar entre esses pontos e repetir o círculo um número suficientemente grande de vezes pra dar a impressão de que o movimento é contínuo, mas pra isso, você precisa armazenar uma variável pra onde o mouse estava no step anterior. E ao clicar o mouse (evento mouse_check_button_pressed), essa variável tem que ser modificada pra onde o mouse está nesse instante, senão vai dar uma zicazinha.
Posso fazer uma enginezinha, se você quiser.

saim

Ranking: Nota B
Número de Mensagens: 2939
Idade: 36
Data de inscrição: 14/01/2011
Versão:
  • Game Maker 8.0
  • Game Maker Studio: Professional

Notas recebidas: C-D-A
Reputação: 116

Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por Knonick em Sex Jun 10, 2011 10:56 am

saim escreveu:E eu não estava reclamando também. É que eu esqueço que teclado não tem tom de voz. Eu estava fazendo piada.
Ah bom, então assim sim.

E quanto ao que você falou, é melhor fazer uma engine mesmo, pois ainda sou muito novato para entender tudo que você disse.

Knonick

Número de Mensagens: 92
Idade: 16
Data de inscrição: 10/05/2011
Reputação: 0

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por saim em Sex Jun 10, 2011 11:02 am

Ei-la!

create:
Código:
mxp=mouse_x //mouse_x_previous
myp=mouse_y //mouse_y_previous
int=10 //número de interpolações
//cria a surface preta, como antes
step alternativa 1 (mais fácil de programar e mais pesada pro computador):
Código:

if mouse_check_button(mb_left){
   surface_set_target(Surf)
   draw_set_blend_mode(bm_subtract)
   var i, dir, dist;
   dir =point_direction(mxp, myp, mouse_x, mouse_y)
   dist=point_distance (mxp, myp, mouse_x, mouse_y)/int
   for(i=0; i<=int; i+=1){ //não tenho certeza se é <= ou só <
      draw_circle_color(mxp+lengthdir_x(dist*i, dir), myp+lengthdir_y(dist*i, dir), 8, c_white, c_white, 0)
      }
   draw_set_blend_mode(bm_normal)
   surface_reset_target()
   }
//agora, no final do step, atualiza o mxp/myp
mxp=mouse_x
myp=mouse_y
step alternativa 2 (levemente mais duro de programar e um pouquinho de nada mais leve pro computador):
Código:
if mouse_check_button_pressed(mb_left){
   mxp=mouse_x
   myp=mouse_y
   }
if mouse_check_button(mb_left){
   surface_set_target(Surf)
   draw_set_blend_mode(bm_subtract)
   var i, dir, dist;
   dir =point_direction(mxp, myp, mouse_x, mouse_y)
   dist=point_distance (mxp, myp, mouse_x, mouse_y)/int
   for(i=0; i<=int; i+=1){ //não tenho certeza se é <= ou só <
      draw_circle_color(mxp+lengthdir_x(dist*i, dir), myp+lengthdir_y(dist*i, dir), 8, c_white, c_white, 0)
      }
   draw_set_blend_mode(bm_normal)
   surface_reset_target()
   //atualiza mxp/myp só se o mouse estiver apertado
   mxp=mouse_x
   myp=mouse_y
   }

Edit: Hei, testei aqui, o efeito é bem legal!


Última edição por saim em Sex Jun 10, 2011 11:17 am, editado 1 vez(es)

saim

Ranking: Nota B
Número de Mensagens: 2939
Idade: 36
Data de inscrição: 14/01/2011
Versão:
  • Game Maker 8.0
  • Game Maker Studio: Professional

Notas recebidas: C-D-A
Reputação: 116

Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por Knonick em Sex Jun 10, 2011 11:16 am

Não funcionou. A tela não fica preta, e quando eu clico na tela dá erro.

Knonick

Número de Mensagens: 92
Idade: 16
Data de inscrição: 10/05/2011
Reputação: 0

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por saim em Sex Jun 10, 2011 11:19 am

Veja o último comentário no create event. Você criou a surface? (só pegar o create event anterior e copiar/colar em algum lugar do novo create event).Ah, precisa manter o draw event, também!

saim

Ranking: Nota B
Número de Mensagens: 2939
Idade: 36
Data de inscrição: 14/01/2011
Versão:
  • Game Maker 8.0
  • Game Maker Studio: Professional

Notas recebidas: C-D-A
Reputação: 116

Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por Knonick em Sex Jun 10, 2011 7:29 pm

Funcionou! Ainda fica bolinhas separadas algumas vezes, mas tem que arrastar rápido para isso acontecer. Se desse para arrumar ficaria melhor. E outra coisa, queria que a tela só ficasse preta depois de 3 segundos.

Knonick

Número de Mensagens: 92
Idade: 16
Data de inscrição: 10/05/2011
Reputação: 0

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por saim em Sex Jun 10, 2011 7:53 pm

Pra resolver o problema da velocidade, aumente a interpolação. Eu usei int=10, você pode usar 20, 30, 100, o que quiser.
Como assim, "a tela só ficasse preta depois de 3 segundos"? Ela vai escurecendo aos poucos ou leva um tempo pra aparecer a surface?
Lembre-se que você pode desenhar uma surface com alpha diferenciado usando draw_surface_ext.

saim

Ranking: Nota B
Número de Mensagens: 2939
Idade: 36
Data de inscrição: 14/01/2011
Versão:
  • Game Maker 8.0
  • Game Maker Studio: Professional

Notas recebidas: C-D-A
Reputação: 116

Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por Knonick em Sex Jun 10, 2011 8:06 pm

O bug da interpolação eu arrumei, e a tela é pra ir escurecendo e demorar 3 segundos para ficar preta.

Knonick

Número de Mensagens: 92
Idade: 16
Data de inscrição: 10/05/2011
Reputação: 0

Voltar ao Topo Ir em baixo

Re: Como fazer a tela ficar toda preta e voltar ao normal onde clica?

Mensagem por saim em Sab Jun 11, 2011 11:29 am

vai aumentando o alpha aos poucos. Começa com alpha=0 e a cada step, aumente1/(3*room_speed).

saim

Ranking: Nota B
Número de Mensagens: 2939
Idade: 36
Data de inscrição: 14/01/2011
Versão:
  • Game Maker 8.0
  • Game Maker Studio: Professional

Notas recebidas: C-D-A
Reputação: 116

Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Página 1 de 2 1, 2  Seguinte

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum