bingooooooooooooooooooooooooooooooooooooooooooooooooooo
mi hanno risposto sul forum, usavo la funzione sbagliata...
http://zengl.org/forum/index.php/topic,279.new.html#new (http://zengl.org/forum/index.php/topic,279.new.html#new)
basta sostituire la procedura Timer con quella sotto e tutto fila che è un piacere!
credo di si ma aspetto che mi confermiate che funziona anche su win
procedure Timer;
var
i : Integer;
begin
INC( time, 2 );
// camMain.Angle := camMain.Angle + cos( time / 1000 ) / 10; // nomorelogic: niente rotazione
for i := 0 to 20 do
begin
INC( tux[ i ].Frame );
if tux[ i ].Frame > 20 Then
tux[ i ].Frame := 2;
end;
for i := 0 to 9 do
begin
tux[ i ].Pos.X := tux[ i ].Pos.X + 1.5;
if tux[ i ].Pos.X > 864 Then
tux[ i ].Pos.X := -96;
end;
for i := 10 to 19 do
begin
tux[ i ].Pos.X := tux[ i ].Pos.X - 1.5;
if tux[ i ].Pos.X < -96 Then
tux[ i ].Pos.X := 864;
end;
if key_Press( K_ESCAPE ) Then zgl_Exit();
if key_Down( K_UP ) Then
tux[ 20 ].Pos.Y := tux[ 20 ].Pos.Y - tux[ 20 ].DeltaY;
if key_Down( K_DOWN ) Then
tux[ 20 ].Pos.Y := tux[ 20 ].Pos.Y + tux[ 20 ].DeltaY;
if key_Down( K_LEFT ) Then
tux[ 20 ].Pos.X := tux[ 20 ].Pos.X - tux[ 20 ].DeltaX;
if key_Down( K_RIGHT ) Then
tux[ 20 ].Pos.X := tux[ 20 ].Pos.X + tux[ 20 ].DeltaX;
// nomorelogic: joypad movimento "analogico"
tux[ 20 ].Pos.X := tux[ 20 ].Pos.X + (tux[ 20 ].DeltaX * joy_AxisPos( 0, JOY_AXIS_X ));
tux[ 20 ].Pos.Y := tux[ 20 ].Pos.Y + (tux[ 20 ].DeltaY * joy_AxisPos( 0, JOY_AXIS_Y ));
// nomorelogic: joypad movimento "digitale"
tux[ 20 ].Pos.X := tux[ 20 ].Pos.X + (tux[ 20 ].DeltaX * joy_AxisPos( 0, JOY_POVX ));
tux[ 20 ].Pos.Y := tux[ 20 ].Pos.Y + (tux[ 20 ].DeltaY * joy_AxisPos( 0, JOY_POVY ));
// RU: Обязательно очищаем состояния.
// EN: Necessarily clear all the states.
key_ClearState();
// mouse_ClearState();
joy_ClearState();
end;