Sir R. M8gic1an
2008-12-08 11:13:14
hey guys, this is an idea i had like 6 months ago, and actually started using.
just like we have (had?) a bitmap library i thought of making a TPA library. they're more accurate than DTMs, they're faster (a few ms do count!) and they're easier to make.
here's how i did it:
in the end they might look a bit messy, but i'm sure we can overcome that.
this is how one of mine ended up looking:
do notice it uses 84 points, when a dtm would use about 5, and it still finds it faster :p
~Rasta
just like we have (had?) a bitmap library i thought of making a TPA library. they're more accurate than DTMs, they're faster (a few ms do count!) and they're easier to make.
here's how i did it:
program New;
{.include srl/srl.scar}
procedure WriteTPALn(slot:integer);
var
TPA:TPointArray;
TB: Tbox;
i:integer;
begin
TB := InvBox(slot);
FindColorsTolerance(TPA, 65536, TB.x1, TB.y1, TB.x2, TB.y2, 0);
for i:=0 to High(TPA) do
writeln('TPA['+IntToStr(i)+'].X := '+IntToStr(TPA[i].x)+'; TPA['+IntToStr(i)+'].Y := '+IntToStr(TPA[i].y)+';');
end;
begin
writeTPAln(2);
end.
in the end they might look a bit messy, but i'm sure we can overcome that.
this is how one of mine ended up looking:
//declaring a TPA, using it instead of bmp/dtm, faster.
TPA_Item[0].X := 625; TPA_Item[0].Y := 217;TPA_Item[1].X := 626; TPA_Item[1].Y := 217;TPA_Item[2].X := 627; TPA_Item[2].Y := 217;TPA_Item[3].X := 628; TPA_Item[3].Y := 217;TPA_Item[4].X := 629; TPA_Item[4].Y := 217;TPA_Item[5].X := 623; TPA_Item[5].Y := 218;TPA_Item[6].X := 624; TPA_Item[6].Y := 218;TPA_Item[7].X := 630; TPA_Item[7].Y := 218;TPA_Item[8].X := 622; TPA_Item[8].Y := 219;TPA_Item[9].X := 630; TPA_Item[9].Y := 219;
TPA_Item[10].X := 611; TPA_Item[10].Y := 220;TPA_Item[11].X := 612; TPA_Item[11].Y := 220;TPA_Item[12].X := 613; TPA_Item[12].Y := 220;TPA_Item[13].X := 614; TPA_Item[13].Y := 220;TPA_Item[14].X := 615; TPA_Item[14].Y := 220;TPA_Item[15].X := 616; TPA_Item[15].Y := 220;TPA_Item[16].X := 617; TPA_Item[16].Y := 220;TPA_Item[17].X := 618; TPA_Item[17].Y := 220;TPA_Item[18].X := 619; TPA_Item[18].Y := 220;TPA_Item[19].X := 620; TPA_Item[19].Y := 220;
TPA_Item[20].X := 621; TPA_Item[20].Y := 220;TPA_Item[21].X := 630; TPA_Item[21].Y := 220;TPA_Item[22].X := 610; TPA_Item[22].Y := 221;TPA_Item[23].X := 630; TPA_Item[23].Y := 221;TPA_Item[24].X := 609; TPA_Item[24].Y := 222;TPA_Item[25].X := 631; TPA_Item[25].Y := 222;TPA_Item[26].X := 609; TPA_Item[26].Y := 223;TPA_Item[27].X := 631; TPA_Item[27].Y := 223;TPA_Item[28].X := 609; TPA_Item[28].Y := 224;TPA_Item[29].X := 630; TPA_Item[29].Y := 224;
TPA_Item[30].X := 609; TPA_Item[30].Y := 225;TPA_Item[31].X := 630; TPA_Item[31].Y := 225;TPA_Item[32].X := 609; TPA_Item[32].Y := 226;TPA_Item[33].X := 630; TPA_Item[33].Y := 226;TPA_Item[34].X := 631; TPA_Item[34].Y := 226;TPA_Item[35].X := 607; TPA_Item[35].Y := 227;TPA_Item[36].X := 608; TPA_Item[36].Y := 227;TPA_Item[37].X := 609; TPA_Item[37].Y := 227;TPA_Item[38].X := 632; TPA_Item[38].Y := 227;TPA_Item[39].X := 606; TPA_Item[39].Y := 228;
TPA_Item[40].X := 633; TPA_Item[40].Y := 228;TPA_Item[41].X := 634; TPA_Item[41].Y := 228;TPA_Item[42].X := 605; TPA_Item[42].Y := 229;TPA_Item[43].X := 635; TPA_Item[43].Y := 229;TPA_Item[44].X := 605; TPA_Item[44].Y := 230;TPA_Item[45].X := 635; TPA_Item[45].Y := 230;TPA_Item[46].X := 605; TPA_Item[46].Y := 231;TPA_Item[47].X := 635; TPA_Item[47].Y := 231;TPA_Item[48].X := 605; TPA_Item[48].Y := 232;TPA_Item[49].X := 635; TPA_Item[49].Y := 232;
TPA_Item[50].X := 605; TPA_Item[50].Y := 233;TPA_Item[51].X := 635; TPA_Item[51].Y := 233;TPA_Item[52].X := 605; TPA_Item[52].Y := 234;TPA_Item[53].X := 634; TPA_Item[53].Y := 234;TPA_Item[54].X := 605; TPA_Item[54].Y := 235;TPA_Item[55].X := 634; TPA_Item[55].Y := 235;TPA_Item[56].X := 606; TPA_Item[56].Y := 236;TPA_Item[57].X := 629; TPA_Item[57].Y := 236;TPA_Item[58].X := 630; TPA_Item[58].Y := 236;TPA_Item[59].X := 631; TPA_Item[59].Y := 236;
TPA_Item[60].X := 632; TPA_Item[60].Y := 236;TPA_Item[61].X := 633; TPA_Item[61].Y := 236;TPA_Item[62].X := 607; TPA_Item[62].Y := 237;TPA_Item[63].X := 608; TPA_Item[63].Y := 237;TPA_Item[64].X := 609; TPA_Item[64].Y := 237;TPA_Item[65].X := 610; TPA_Item[65].Y := 237;TPA_Item[66].X := 611; TPA_Item[66].Y := 237;TPA_Item[67].X := 625; TPA_Item[67].Y := 237;TPA_Item[68].X := 626; TPA_Item[68].Y := 237;TPA_Item[69].X := 627; TPA_Item[69].Y := 237;
TPA_Item[70].X := 628; TPA_Item[70].Y := 237;TPA_Item[71].X := 611; TPA_Item[71].Y := 238; TPA_Item[72].X := 622; TPA_Item[72].Y := 238; TPA_Item[73].X := 623; TPA_Item[73].Y := 238; TPA_Item[74].X := 624; TPA_Item[74].Y := 238; TPA_Item[75].X := 612; TPA_Item[75].Y := 239; TPA_Item[76].X := 619; TPA_Item[76].Y := 239; TPA_Item[77].X := 620; TPA_Item[77].Y := 239; TPA_Item[78].X := 621; TPA_Item[78].Y := 239; TPA_Item[79].X := 613; TPA_Item[79].Y := 240;
TPA_Item[80].X := 617; TPA_Item[80].Y := 240; TPA_Item[81].X := 618; TPA_Item[81].Y := 240; TPA_Item[82].X := 614; TPA_Item[82].Y := 241; TPA_Item[83].X := 615; TPA_Item[83].Y := 241; TPA_Item[84].X := 616; TPA_Item[84].Y := 241;
do notice it uses 84 points, when a dtm would use about 5, and it still finds it faster :p
~Rasta