### Bookstore

 Computer Math and Games in Pascal (preview) Lazarus Handbook

### Author Topic: free pascal graphic program help  (Read 2495 times)

#### jazavac

• Newbie
• Posts: 1
##### free pascal graphic program help
« on: June 11, 2018, 11:42:11 pm »
Hello everyone, I have sort of a problem. I am student of technical school and for our finish exam in programming we got make a game. So games are not hard to make, but I got real confused. I need to make a person who is running and picking apples, but there are some type of ghosts or animals. When the character picks apples, the energy increases and when ghost catches him it loses energy. Here is the code since where I encountered error and then I will explain the problem:

repeat
outtextxy(150,10,'energy=100');
if (x=x1) and (y=y1) then
draw3
else
begin
draw2;
end;
cleardevice;
case k of
'a':begin
x:=x-10;
draw;
dec(energija);
end;
'd':begin
x:=x+10;
draw;
dec(energija);
end;
's':begin
y:=y+10;
draw;
dec(energy);
end;
'w':begin
y:=y-10;
draw;
dec(energy);
end;
end;
until (k='k');
closegraph;
end.

Energy is not yet functional, but the problem is with apples. Draw3 draws a black apple (not visible on the screen), draw2 draws a green apple. So when I move the character arround draw2 draws green apple. When I put my character over the draw3 (x and y are coordinates of character; x1 and y1 are coordinates of apple) apple should disappear, but it is not happening.

Can anyone help me? If you help me with this code, please, write your own or just give me some suggestion. Thanks!

#### circular

• Hero Member
• Posts: 3390
##### Re: free pascal graphic program help
« Reply #1 on: June 12, 2018, 11:20:23 am »
There's not enough of your code to tell you.
Conscience is the debugger of the mind

#### RayoGlauco

• Full Member
• Posts: 106
• Beers: 1567
##### Re: free pascal graphic program help
« Reply #2 on: June 12, 2018, 11:45:33 am »
Hello, jazavac,

You should use the # button to mark you are writing code. This way, code looks better.

Code: Pascal  [Select][+][-]
1.   repeat
2.     outtextxy(150, 10, 'energy=100');
3.     if (x = x1) and (y = y1) then
4.       draw3
5.     else
6.     begin
7.       draw2;
8.     end;
10.     cleardevice;
11.     case k of
12.       'a':
13.       begin
14.         x := x - 10;
15.         draw;
16.         Dec(energija);
17.       end;
18.       'd':
19.       begin
20.         x := x + 10;
21.         draw;
22.         Dec(energija);
23.       end;
24.       's':
25.       begin
26.         y := y + 10;
27.         draw;
28.         Dec(energy);
29.       end;
30.       'w':
31.       begin
32.         y := y - 10;
33.         draw;
34.         Dec(energy);
35.       end;
36.     end;
37.   until (k = 'k');
38.   closegraph;
39.

I think you may be doing something wrong in draw/draw2/draw3. When your player eats an apple, you must change x1, y1 (i.e. x1:=-1, y1:=-1, where -1 means no apple,  or maybe change the apple's coordinates to move it to another place). But we don't know what are you doing in draw/draw2/draw3.
To err is human, but to really mess things up, you need a computer.

#### Ñuño_Martínez

• Hero Member
• Posts: 1032
##### Re: free pascal graphic program help
« Reply #3 on: June 13, 2018, 11:49:17 am »
Do not use cryptic names for your stuff.  You should try "DrawApples" instead of "Draw2" or whatever.

Also you should use parameters instead of global variables.
Are you interested in game programming? Join the Pascal Game Development community!
Also visit the Game Development Portal