Conectar-se

Esqueci minha senha

Últimos assuntos
» Nota de esclarecimento - GMBR voltou!
Ontem à(s) 20:33 por Willy

» Regras do Fórum
Ontem à(s) 19:02 por GMBR

» Retorno da GMBR!!!
Ter 24 Jan 2017, 15:43 por GMBR

» Criando IA Simples para inimigos
Qua 25 Nov 2015, 19:22 por DJDAVYD

» Crio Trilha Sonora para Games!
Qui 27 Ago 2015, 13:50 por Isaias Malafaia

» Western Duels
Seg 24 Ago 2015, 07:47 por theguitarmester

» Dúvida sobre strings, lendo txt
Sab 22 Ago 2015, 20:31 por Pai véi

» Janela Modal
Sab 22 Ago 2015, 09:23 por Pai véi

» LudumDare #33
Sex 21 Ago 2015, 21:17 por WellingtonBecker

» GMS sempre salva projeto ao compilar?
Sex 21 Ago 2015, 12:32 por Pai véi

» Tipo de Draw que dê melhor fps...
Sex 21 Ago 2015, 12:25 por Pai véi

» Banco de Dados online fácil de configurar
Sex 21 Ago 2015, 11:47 por Pai véi

» Ficou estranho esse efeito na terra?
Qua 19 Ago 2015, 20:08 por Adriel

» Você consegue decifrar o que é isso?
Qua 19 Ago 2015, 15:48 por Mateus O de Andrade

» Texto centralizado em sprite 64x64
Qua 19 Ago 2015, 14:00 por Vandson Fernandes

» [Tutorial] Um Único Script para Todos Diálogos do Jogo
Ter 18 Ago 2015, 22:12 por dharrison

» VIDEO AULAS - Plataforma - Recriando Super Mario
Ter 18 Ago 2015, 20:44 por Adriel

» Ajuda deixar room maior
Ter 18 Ago 2015, 15:56 por Stickman

» OST - Rain From The Past (Para Main Themes)
Seg 17 Ago 2015, 23:00 por Jessezyn

» #DGM Aula 01 - Views
Seg 17 Ago 2015, 00:16 por victor13.

» Alguém sabe as dimensões de um galaxy s5?
Dom 16 Ago 2015, 20:06 por vitorfernandes13

» Conquer The Kingdom
Dom 16 Ago 2015, 12:13 por DVictorPS

» [Ajuda] Bug ds_list
Dom 16 Ago 2015, 08:27 por Witen

» câmera seguir player com touch control android
Sab 15 Ago 2015, 15:05 por Lighter

» Apk não roda no celular
Sab 15 Ago 2015, 12:10 por xLuiZzz


Fazendo uma barra com draw_rectangle

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

Fazendo uma barra com draw_rectangle

Mensagem por Pit Bull em Qua 29 Jun 2011, 20:34

Olá amigos

Hoje vou postar esse tutorial muito simples mais que pode ajudar muitas pessoas com o famoso draw_rectangle.

Vou criar uma barra de sangue e explicar como funciona.

1º : Abra um novo projeto para você entender melhor.
2º : Crie um objeto e nomeio como display.
3º : Crie o evento create,clique em control e procure o code,nele vai estar a opção execute code,arraste ela para action
4º : Escreva o seguinte código:
Código:
cor_da_linha=c_black //eu escolhi a cor da linha de preto mais você pode mudar

cor_da_barra=c_red  //eu escolhi a cor da barra de vermelho mais você pode mudar

sangue_atual=67  //mude depois para qualquer valor abaixo do sangue_total para ver a diferença

sangue_total=100  //É o maximo que o sangue pode ir
5º : Crie o evento draw,clique em control e procure o code,nele vai estar a opção execute code,arraste ela para action é escreva o seguinte código:
6º :
Código:
draw_set_color(cor_da_linha) //Você também pode colocar direto mais,para não confundir coloque separado no evento create

draw_rectangle(50,370,590,385,true) //o 50 é para a posição inicial do x,370 é para a posição inicial do y,590 é para a posição final do x,385 é para a posição final de y,true é para que seja desenhada uma linha em vez de uma barra

draw_set_color(cor_da_barra) //Você também pode colocar direto mais,para não confundir coloque separado no evento create

draw_rectangle(50,370,50+(540*(sangue_atual/sangue_total)),385,false) //50 é para a posição inicial do x,370 é para a posição inicial do y.
//A 3º parte para mostrar onde a barra estará em relação ao sangue,50+ é o inicio(para que quando o sangue chegar em 0 não ultrapasse a barra)
//540 é o número final(para que quando o sangue chegar em 100 não ultrapasse a barra),vezes o valor da porcentagem do sangue(por exemplo o sangue atual está em 20 e o maximo é 100 então o valor final e 0,20)
//fazendo com que a barra fique perfeita
//385 é para a posição final de y
//false é para que seja desenhada uma barra em vez de uma linha
7º : Agora para que possamos testar clique duas vezes no execute code que você acabou de criar e acrescente :
Código:
 if keyboard_check(vk_left) and sangue_atual > 0{ //sé você apertar a seta da esquerda e sua barra estiver acima de 0

sangue_atual-=6 //sua barra irá descer em 6 casas(irá perder 6 de sangue) você também pode mudar o número para qualquer um menor que 100 para não dar erro.
}
if keyboard_check(vk_right) and sangue_atual < sangue_total{  //sé você apertar a seta da direita e sua barra estiver abaixo do sangue total

sangue_atuals+=6 //sua barra irá subir em 6 casas(irá ganhar 6 de sangue) você também pode mudar o número para qualquer um menor que 100 para não dar erro.
}
Este é o melhor jeito de criar uma barra de sangue porque você pode mudar de comprimento, tamanho e cor.

Sé você acompanhou detalhada-mente cada passo, agora clique na seta verde(run the game) para testar a barra.

Se mesmo assim der algo errado poste o erro.



cheers


Última edição por Pit Bull em Sex 16 Set 2011, 12:06, editado 3 vez(es) (Razão : acento,esqueci =D)
avatar
Pit Bull

Data de inscrição : 31/08/2010
Número de Mensagens : 630
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário http://leninja.com.br

Voltar ao Topo Ir em baixo

Esta dando esse erro

Mensagem por hidramaster em Qui 11 Ago 2011, 17:02

ERROR in
action number 1
of Draw Event
for object display:

Error in code at line 7:
draw_rectangle(50,370,50+(540*(player_posicao_segundos/player_tamanho_segundos)),385,false) //50 é para a posição inicial do x,370 é para a posição inicial do y.
^
at position 33: Unknown variable player_posicao_segundos
avatar
hidramaster

Data de inscrição : 10/08/2011
Número de Mensagens : 21
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Fazendo uma barra com draw_rectangle

Mensagem por Mestre Moscoso em Qui 11 Ago 2011, 17:24

Testei o seu tutorial e apareceu o mesmo erro:
___________________________________________
ERROR in
action number 1
of Draw Event
for object display:

Error in code at line 7:
draw_rectangle(50,370,50+(540*(player_posicao_segundos/player_tamanho_segundos)),385,false) //50 é para a posição inicial do x,370 é para a posição inicial do y.
^
at position 33: Unknown variable player_posicao_segundos


E ainda está na área dos tutoriais aprovados sem ao menos ter sido testado para ver se havia erro ou não?
avatar
Mestre Moscoso

Data de inscrição : 08/08/2011
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Fazendo uma barra com draw_rectangle

Mensagem por Markituh em Qui 11 Ago 2011, 19:07

Só é vocês criarem as variáveis no Create, minha gente Very Happy Mas foi falha do autor não tê-las colocado. Na primeira caixa de código, adicionem:
Código:
player_posicao_segundos = 0
player_tamanho_segundos = 0
A variável player_tamanho segundos não pode ser 0, já que aconteceria um erro de divisão por 0. No mais, isso é algum valor para você colocar por cima do nome, não uma variável, acho eu.
avatar
Markituh

Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2183
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Fazendo uma barra com draw_rectangle

Mensagem por Jurassic Games em Qui 11 Ago 2011, 19:27

troquei as "player_posicao_segundos/player_tamanho_segundos" por "x" e "y" so de zoera e
parou o erro,mas ficou gigante.anh!

P.S.: eu sei que sou noob... computador --\'
avatar
Jurassic Games

Data de inscrição : 25/07/2011
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Fazendo uma barra com draw_rectangle

Mensagem por Pit Bull em Qui 11 Ago 2011, 19:31

Mais o objetivo e esse,você ver a barra na room.

Não achei nenhum erro quando eu fiz,acho que não declarei as variaveis Happy
avatar
Pit Bull

Data de inscrição : 31/08/2010
Número de Mensagens : 630
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário http://leninja.com.br

Voltar ao Topo Ir em baixo

Re: Fazendo uma barra com draw_rectangle

Mensagem por luiz_eldorado em Qui 11 Ago 2011, 20:26

mas isso não é como uma barra de vida? É mais fácil usar o draw barra de vida (nao sei como é), por que ele diz já o tanto de vida sen precisar de tudo isso
avatar
luiz_eldorado

Ranking : Nota C
Notas recebidas : C
Data de inscrição : 30/07/2011
Número de Mensagens : 928
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 1

Ver perfil do usuário http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: Fazendo uma barra com draw_rectangle

Mensagem por Markituh em Qui 11 Ago 2011, 21:06

mas isso não é como uma barra de vida? É mais fácil usar o draw barra de vida (nao sei como é), por que ele diz já o tanto de vida sen precisar de tudo isso
draw_healthbar. Sim, é mais fácil usar a função, mas esse seria um método de fazer DO ZERO. E isso não é só uma barra de vida, pode ser qualquer barra, loading, posição da música (no caso de um tocador de música) etc.

Isso é nada mais e nada menos o que está por dentro da função draw_healthbar. Os Scripts no GM existem para isso: para facilitar o processo. Já pensou fazer uma checagem de colisão muito avançada e ter que escrever 170 linhas dela em cada objeto? Não seria nada legal.
avatar
Markituh

Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2183
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Fazendo uma barra com draw_rectangle

Mensagem por killer118 em Sex 22 Nov 2013, 11:10

cara estou com o seguinte problema, minha barra está descendo muito rapido, e está acabendo antes do sangue, logo ela passa do limite da barra do inicio, como eu poderia arrumar isso?????
Código:
draw_set_color(cor_da_linha)
draw_rectangle(view_xview+400,740,view_xview+1000,760,true)

draw_set_color(cor_da_barra)

draw_rectangle(view_xview+400,740,50+(view_xview+950*(global.saude_atual/global.saude_total)),760,false)
as variaveis estão criadas.
mais um detalhe minha barra não aparece na ponto do view e sim +- no meio dele.
Desde já agradeço.
avatar
killer118

Data de inscrição : 30/08/2013
Número de Mensagens : 14
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Fazendo uma barra com draw_rectangle

Mensagem por Pit Bull em Dom 24 Nov 2013, 20:30

Nessa ultima linha:

Código:
draw_rectangle(view_xview+400,740,50+(view_xview+950*(global.saude_atual/global.saude_total)),760,false)
Você esqueceu de colocar o view_yview

o certo seria:
Código:
draw_rectangle(view_xview+400,view_yview+740,50+(view_xview+950*(global.saude_atual/global.saude_total)),view_yview+760,false)
Bom, mas não acho que isso não é o verdadeiro problema.

Vamos pensar na barra, no primeiro ponto está assim:
x = view_xview+400
y = view_yview+740

No segundo:
x = 50+(view_xview+950*(global.saude_atual/global.saude_total))
y = view_yview+760

arrumando esse x(pra ficar organizado):
x = view_xview+950*(global.saude_atual/global.saude_total)+50

Já de cara da pra perceber uma coisa, se a divisão da saude atual sobre a total der zero, ficará assim:

x = view_xview+50

sendo que no primeiro ponto está:

x = view_xview+400

Ou seja, o primeiro ponto está na frente do segundo.
Pra arrumar isso basta colocar em vez de 50, 400 no segundo ponto.

avatar
Pit Bull

Data de inscrição : 31/08/2010
Número de Mensagens : 630
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário http://leninja.com.br

Voltar ao Topo Ir em baixo

Re: Fazendo uma barra com draw_rectangle

Mensagem por killer118 em Seg 25 Nov 2013, 08:52

eu não coloquei o view_yview pois meu y é fixo e a barra de life é do boss então vai aparecer sempre na mesma posição de y apenas o x que muda se eu colocar 400 a barra vai passar do limite maximo, e eu decidi usar de outra maneira para poder usar o código desse jeito, mas muito obrigado pela ajuda.
avatar
killer118

Data de inscrição : 30/08/2013
Número de Mensagens : 14
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Fazendo uma barra com draw_rectangle

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

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