Autor Beitrag
LordSimonXp
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 16.03.06 18:55 
hallöchen leutz :D
ich hab mal ein problem mit meinem Jump&run - hab dafür auch alles selber geschrieben - leider hänge ich sied etwa 2 Tagen an einem Problem.
in meinem Level benutze ich coliboxes - und die player Figur checkt einzelne punkte(die ich vorher an ihr festgelegt habe) - ob sie halt kollidieren - so das funzt auch ganz jut blos wenn die figur fällt und na die Collibox kommt, fält sie mit halbem tempo durch... keine ahnung was ich da falsch mache
so und hier der source:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
player[1].move_speed := 1;
for i := 1 to ColiBoxesCount do
begin
coli_box[i].temp := 0;
 if (player[1].coli_px[7] + player[1].posx > coli_box[i].posX) and (player[1].coli_px[7] + player[1].posx < coli_box[i].posX + coli_box[i].width) then
  if (player[1].coli_py[7] + player[1].posY + player[1].move_speed > coli_box[i].posY) and (player[1].coli_py[7] + player[1].posY < coli_box[i].posY + coli_box[i].height) then
  begin
  coli_box[i].temp := 1; //bei kolision müsste die figur ja stehen bleiben... tu t sie aber net:(
  end else
  begin
  player[1].posY:=player[1].posY + 1;//hier fält sie mit tempo 1 ;) 
  end;
end;


wäre nett wenn da mal jemand reinschauen könnte


Moderiert von user profile iconraziel: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 17.03.2006 um 09:55
LordSimonXp Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 16.03.06 22:05 
nun hab das problem doch alleine in den griff bekommen :)
und so siejht der source aus :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
player[1].can_jump:= false;
_Y_coli:=false;
for i := 1 to HowMuchColiBoxes do
begin
coli_box[i].temp := 0;

  if (player[1].coli_px[7] + player[1].posx > coli_box[i].posX) and (player[1].coli_px[7] + player[1].posx < coli_box[i].posX + coli_box[i].width) then
  if (player[1].coli_py[7] + player[1].posY + player[1].move_speed_max > coli_box[i].posY) and (player[1].coli_py[7] + player[1].posY < coli_box[i].posY + coli_box[i].height) then
  begin
  _Y_coli:=true;
  player[1].can_jump:= true;
  player[1].move_speed:=0;
  coli_box[i].temp := 1;
  end;
end;


fals es jemanden interessiert:
ich hatte das
" player[1].posY:=player[1].posY + 1; "
in der schleife also hat er die figur rinterbewegt, da die kolision nur mit einem coli_box da war - die anderen ja net :)