RegistrarBuscaFAQMembrosGruposEntrar
barra de vida com stringer

 
Responder tópico    3D Game Builder - Índice » Programação Exibir tópico anterior
Exibir próximo tópico
barra de vida com stringer
Autor Mensagem
ricardo3dgb
Novato
Novato


Registrado: 15/12/09
Mensagens: 55

Mensagem barra de vida com stringer Responder com citação
como faço uma barra de vida com [color=orange]stringer[/color]?eu seu que temos de alterar a escala dela sempre que formos atingidos mas quando ela ficar pequena demais tipo escala "0" qual script usar procurei mas não achei voces podem me ajudar?...



_________________
.... ..... ...... .....
Sáb Dez 19, 2009 4:20 pm Exibir perfil de usuários Enviar mensagem privada MSN Messenger
Edirlei
Administrador
Administrador


Registrado: 15/03/08
Mensagens: 758

Mensagem Responder com citação
O que é "stringer"?
Sáb Dez 19, 2009 7:34 pm Exibir perfil de usuários Enviar mensagem privada Enviar e-mail MSN Messenger
Lemos
Usuário
Usuário


Registrado: 14/04/09
Mensagens: 803
Localização: Rio de Janeiro - RJ

Mensagem Re: barra de vida com stringer Responder com citação
A nova versão possui nos Gui Objects um novo objeto chamado image. Logo, logo, o Edirlei deve lançar o pacote que vai corrigir bugs nos gui objects. Quando sair, você pode criar um object image e aplicar materiais nele. Esses materiaias poderiam ser várias texturas, cada uma com uma variação de cor diferente. Essa mudança poderia ser feita em função do valor de uma variável global que a controlasse, e a mudança de material poderia ser feita com a função: SetObjectMaterial


Declaration:
procedure SetObjectMaterial(ObjectName : String; MaterialName : String);


Seria assim, se o valor da variável fosse 1, usaria o material 1, se fosse 2, usaria o material 2 (ou por intervalos, se o valor estivesse entre 1 e 9, material 1, entre 10 e 19, material 2) e assim por diante. Quanto mais valores e materiais, melhor seria o resultado.
Antes desse novo recurso, o Mililo conseguiu fazer uma barra de energia legal no jogo dele, ele poderia te dar uma luz também! Very Happy

Abraço.

_________________
Lemos
http://alemdanimacao.zip.net/
Dom Dez 20, 2009 12:28 am Exibir perfil de usuários Enviar mensagem privada Visitar o website do usuário
Lemos
Usuário
Usuário


Registrado: 14/04/09
Mensagens: 803
Localização: Rio de Janeiro - RJ

Mensagem Re: barra de vida com stringer Responder com citação
Um outro modo seria criar um label e após ele colocar barrinhas verticais ("i" Maiúsculo). Essaas barrinhas iriam aumentando em quantidade. Essa mudança poderia ser feita em função do valor de uma variável global que a controlasse, por meio da função: SetLabelText


Set label text.

Declaration:
procedure SetLabelText(ObjectName : String; Text : String);


A cada mudança, as barrinhas seria acrescentadas. Eu só sei fazer isso por script longo, isto é, variável 1, 1 barrinha, variável 2, 2 barrinhas, mas talvez exista uma forma mais fácil

Abraço.

_________________
Lemos
http://alemdanimacao.zip.net/
Dom Dez 20, 2009 12:36 am Exibir perfil de usuários Enviar mensagem privada Visitar o website do usuário
Mililo
Usuário
Usuário


Registrado: 05/12/08
Mensagens: 366
Localização: Santo Antônio de Pádua / RJ

Mensagem Responder com citação
Lemos gostei dessa sua idéia de usar os 'I' como barra de vida, daí fiz um código resumido para isso.

OnCreate:, claro que você deve troca numero pela quantidade de vida(recomendo uns 30 para testar), e pode trocar o nome se quiser... e deve criar mais vars dependendo de quantos objetos irão ter vida...
Código:
WriteGlobalVar('Vida', numero);


MainLoop do mapa ou OnLoop de algum objeto:
Essa é a função, você não precisa mudar nada nela, mas se quiser pode mudar o nome 'CreateLifeBar':
Código:
function CreateLifeBar(num:integer):string
begin
var i:integer;
var source:string;
SetLength(source, num);
for i:=1 to não do
begin
source[i]:='I';
end;
result := source;
end;

Agora vem o código para adicionar a vida ao label, e claro, o nome do label pode ser o que você quiser, e o da globalvar também, não esquece de criar o label no mapa!!!, e se tiver mudado o nome da fução mude aqui também:
Código:
SetLabelText('Vida', CreateLifeBar(ReadGlobalVar('Vida')))

E aqui é um código usado só para teste, ele diminui a vida pressionando Q e aumenta pressionando W(o comando ord() retorna o código ascii da letra, é só ler na 'ScriptReference'):
Código:
if iskeypress(ord('Q')) then
WriteGlobalVar('Vida', ReadGlobalVar('Vida')-1)
else
if iskeypress(ord('W')) then
WriteGlobalVar('Vida', ReadGlobalVar('Vida')+1);


Agora você já pode testar o jogo... Vai aparecer uma barra de vida que você pode diminuir ou amentar pressionando Q ou W, provavelmente isso vai acontecer muito rápido dependendo do seu FramesPerSecond... mas é só um teste.

Se quiser adicionar um código de GameOver é simples:
Código:
if ReadGlobalVar('Vida')<=0 then
begin
// código de game over
end;

Dom Dez 20, 2009 1:53 pm Exibir perfil de usuários Enviar mensagem privada MSN Messenger
ricardo3dgb
Novato
Novato


Registrado: 15/12/09
Mensagens: 55

Mensagem Responder com citação
ah desculpe Edirlei é sprite.... Embarassed Laughing



_________________
.... ..... ...... .....
Dom Dez 20, 2009 2:17 pm Exibir perfil de usuários Enviar mensagem privada MSN Messenger
Mostrar os tópicos anteriores:    
Responder tópico    3D Game Builder - Índice » Programação Todos os horários são GMT
Página 1 de 1

 
Ir para: 
Você não pode enviar mensagens novas neste fórum
Você não pode responder mensagens neste fórum
você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode votar em enquetes neste fórum


Powered by phpBB © 2001, 2008 phpBB Group
Design by Edirlei
Traduzido por phpBB Brasil