| 99 |
GameParam: TGameParam; |
GameParam: TGameParam; |
| 100 |
TextColor: TColor; |
TextColor: TColor; |
| 101 |
Name: string; |
Name: string; |
| 102 |
|
Sleeps: Boolean; |
| 103 |
constructor Create; |
constructor Create; |
| 104 |
destructor Destroy; override; |
destructor Destroy; override; |
| 105 |
procedure Start(const Resume: Boolean = false); |
procedure Start(const Resume: Boolean = false); |
| 335 |
Player1.State := Stop; |
Player1.State := Stop; |
| 336 |
end; |
end; |
| 337 |
Player1.Execute; |
Player1.Execute; |
| 338 |
|
if Player1.Sleeps = true then |
| 339 |
|
Sleep(100) |
| 340 |
|
else |
| 341 |
|
Player1.Sleeps:=true; |
| 342 |
FormPaint(Player1); |
FormPaint(Player1); |
| 343 |
Done := false; |
Done := false; |
| 344 |
end |
end |
| 884 |
var |
var |
| 885 |
i, j: integer; |
i, j: integer; |
| 886 |
s: TBall; |
s: TBall; |
|
|
|
| 887 |
begin |
begin |
| 888 |
case State of |
case State of |
| 889 |
Down: |
Down: |
| 897 |
Item.Left := Item.Left + 1 |
Item.Left := Item.Left + 1 |
| 898 |
else |
else |
| 899 |
Item.Left := Item.Left - 1; |
Item.Left := Item.Left - 1; |
|
Sleep(100); |
|
| 900 |
end |
end |
| 901 |
else |
else |
| 902 |
begin |
begin |
| 903 |
Move(Under); |
Move(Under); |
| 904 |
for i := 1 to 100 do |
for i := 1 to 10 do |
| 905 |
begin |
begin |
| 906 |
Sleep(3); |
Sleep(30); |
| 907 |
Application.ProcessMessages; |
Application.ProcessMessages; |
| 908 |
if State <> Down then |
if State <> Down then |
| 909 |
break; |
break; |
| 910 |
end; |
end; |
| 911 |
|
Sleeps:=false; |
| 912 |
end; |
end; |
| 913 |
Shoot: |
Shoot: |
|
begin |
|
| 914 |
Move(Under); |
Move(Under); |
|
Sleep(100); |
|
|
end; |
|
| 915 |
Sys: |
Sys: |
| 916 |
if Drop = true then |
if Drop = false then |
|
Sleep(100) |
|
|
else if Remove = true then |
|
|
begin |
|
|
State := Effect; |
|
|
EffectCount := 1; |
|
|
end |
|
|
else |
|
| 917 |
begin |
begin |
| 918 |
State := Ojama; |
Sleeps:=false; |
| 919 |
if Assigned(FOnCreateOjama) = true then |
if Remove = true then |
| 920 |
if Zenkesi = true then |
begin |
| 921 |
FOnCreateOjama(Self, 2 * Wid, '**全消し**') |
State := Effect; |
| 922 |
else if GameParam.Rensa > 1 then |
EffectCount := 1; |
| 923 |
FOnCreateOjama(Self, GameParam.Rensa - 1, |
end |
| 924 |
Name + Format(' %d 連鎖', [GameParam.Rensa])); |
else |
| 925 |
|
begin |
| 926 |
|
State := Ojama; |
| 927 |
|
if Assigned(FOnCreateOjama) = true then |
| 928 |
|
if Zenkesi = true then |
| 929 |
|
FOnCreateOjama(Self, 2 * Wid, '**全消し**') |
| 930 |
|
else if GameParam.Rensa > 1 then |
| 931 |
|
FOnCreateOjama(Self, GameParam.Rensa - 1, |
| 932 |
|
Name + Format(' %d 連鎖', [GameParam.Rensa])); |
| 933 |
|
end; |
| 934 |
end; |
end; |
| 935 |
Effect: |
Effect: |
| 936 |
begin |
begin |
| 946 |
Ground[i, j].Index := 0; |
Ground[i, j].Index := 0; |
| 947 |
end; |
end; |
| 948 |
end; |
end; |
|
Sleep(100); |
|
| 949 |
dec(EffectCount); |
dec(EffectCount); |
| 950 |
end; |
end; |
| 951 |
Ojama: |
Ojama: |
| 952 |
if OjamaList.Count = 0 then |
if OjamaList.Count = 0 then |
| 953 |
Start |
begin |
| 954 |
|
Start; |
| 955 |
|
Sleeps:=false; |
| 956 |
|
end |
| 957 |
else |
else |
| 958 |
begin |
begin |
| 959 |
for i := 0 to OjamaList.Count - 1 do |
for i := 0 to OjamaList.Count - 1 do |
| 965 |
else if (s.Y = 0) and (Ground[s.X, 0].Color <> clWhite) then |
else if (s.Y = 0) and (Ground[s.X, 0].Color <> clWhite) then |
| 966 |
begin |
begin |
| 967 |
State := Stop; |
State := Stop; |
| 968 |
|
Sleeps:=false; |
| 969 |
Exit; |
Exit; |
| 970 |
end |
end |
| 971 |
else |
else |
| 983 |
OjamaList.Delete(i); |
OjamaList.Delete(i); |
| 984 |
end; |
end; |
| 985 |
end; |
end; |
|
Sleep(100); |
|
| 986 |
end; |
end; |
| 987 |
end; |
end; |
| 988 |
end; |
end; |