tô loco

Delphi

15/03/2003

Tipo, eu tava precisando fazer uma coisa tipo assim....

Eu quero gravar num arquivo de texto 30 numeros soteados... mais isso no meio de um arquivo jah existente... entaum eu fiz assim:

If Dinheiro >= 250 then
begin
Randomize;
AssignFile(F3,´bd/dcart.dmg´);
Reset(F3);
Readln(F3,Linha);
TCartas:= StrToInt(DCrip(Linha));
CloseFile(F3);
AssignFile(F3,´bd/´ + Nick + ´.tmp´);
Rewrite(F3);
AssignFile(F4,´bd/´ + Nick + ´.dmu´);
Reset(F4);
Linha:=´´;
I:=1;
While DCrip(Linha) <> ´!Cartas´ do
begin
Readln(F4,Linha);
If I=4 then Writeln(F3,Crip(IntToStr(Dinheiro-250)))
Else If I=5 then Writeln(F3,Crip(IntToStr(nCartas+30)))
Else Writeln(F3,Linha);
I:=I+1;
end;
CloseFile(F3);
Append(F3);
I:=0;
While I<30 do
begin
Carta:= Random(TCartas + 1);
S:=Crip(IntToStr(Carta));
Writeln(F3,S);
i:=i+1;
end;
While not EOF(F4) do
begin
Readln(F4,Linha);
Writeln(F3,Linha);
end;
CloseFile(F3);
CloseFile(F4);
//Erase(F4);
nCartas:= nCartas + 30;
Dinheiro := Dinheiro - 250;
MessageDlg(´Booster comprado com sucesso. Agora você tem mais 30 cartas.´, mtInformation,
[mbOk], 0);
//Rename(F2,´bd/´ + Nick + ´.dmu´);
//Atualizar status
lblNome.Caption := Nick;
lblCartas.Caption := IntToStr(nCartas);
lblBaralhos.Caption := IntToStr(nBaralhos);
lblDinheiro.Caption := IntToStr(Dinheiro);
gbStatus.Visible := True;
end
Else
Begin
MessageDlg(´Dinheiro Insuficiente.´, mtWarning,
[mbOk], 0);
end;

Eis meu problema... casa hora ele grava uma quantidade de numeros diferentes... uma hora 5 outra 10 outra 29... assim naum dah!!! Eu jah to fikando loko!!!

Naum reparem na minha logica... eu sei q ela é um lixo...






Nem Tudo é Verdade


Anonymous

Anonymous

Curtidas 0

Respostas

Anonymous

Anonymous

15/03/2003

Exemplo prático:

var
{Coordenadas de dois objetos}
X1,Y1,X2,Y2 : integer;

begin
{Se a coordenada X + largura do objeto for igual à coordenada X do outro objeto, significa que eles se colidiram}
If X1 + Objeto1.Width = X2 then
begin
{Colisão horizontal - Objeto um na esquerda, Objeto dois na direita}
end;
{A outra possibilidade de colisão horizontal}
If X2 + Objeto2.Width = X1 then
begin
{Colisão horizontal - Objeto um na direita, Objeto dois na esquerda}
end;
{Se Y1 + altura do Objeto um for igual à Y2, então os dois objetos tão colidindo}
If Y1 + Objeto1.Height = Y2 then
begin
{Colisão vertical - Objeto um em cima, Objeto dois em baixo}
end;
{Outra possibilidade de colisão vertical}
If Y2 + Objeto2.Height = Y1 then
begin
{Colisão vertical - Objeto um em baixo, Objeto dois em cima}
end;

Tudo isso sem nem usar o DelphiX. O DX tem um esquema de efeito de colisão usando o TSprite, classes e tudo mais, mas pode crer que esse jeito é melhor (eu acho melhor, pelo menos).


Yahiko Myoujin,


GOSTEI 0
Carnette

Carnette

15/03/2003

Ô malucos sô.....Num tendi nadica de nada de nenhum dos dois...É..Acho que está na hora de rever meus conceito.... :lol:


GOSTEI 0
Anonymous

Anonymous

15/03/2003

:shock: Será que para o que é estas rotinas, para que serve :lol:


GOSTEI 0
POSTAR