Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.09.2019
Сообщений: 4
1

Ошибка в коде программы

19.09.2019, 17:58. Показов 317. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Решил сделать платформер на pascalABC.net, но при запуске ГГ стоит на месте и не двигается. Помогите пожалуйста решить эту проблему. Заранее спасибо
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Program p1;
uses GraphABC;
var  
p: Picture;
s : array [,] of integer;
i,x,y,vspeed : integer;
game_end : boolean;
procedure Draw(); begin
 
  Redraw;  
  LockDrawing;
 
 
  setbrushcolor(clwhite); 
  fillrectangle(0,0,1640,1480);
   
   
  setbrushcolor(clblack);
  fillrectangle(0,176,640,224);
 
   
   p:=Picture.create(x+8,y+8);
p.Load ('soul knight.bmp');
 
 p.Draw (10,10);
  
   
end;
 
procedure KeyPress(key: char); begin
 
  if (key='d') and (s[(x div 8)+1,(y div 8)]=0) then …
  x:=x+8; 
 
  if (key='a') and (s[(x div 8)-1,(y div 8)]=0) then 
  x:=x-8;
 
  if (key='w') and (vspeed=0) and (s[(x div 8),(y div 8)+1]=1) then 
  vspeed:=-16; 
   
end;  
 
procedure KeyDown(key: integer); begin
  if (key=vk_enter) then game_end:=true; 
end;
procedure Gravity(); begin
  if vspeed=0 then begin 
  if s[(x div 8),(y div 8)+1]=0 then y+=8; 
  end;   
  if s[(x div 8),(y div 8)+vspeed]=0 then y+=vspeed;    
  if vspeed<>0 then 
  vspeed+=2;   
end;
 
Begin  
 
  game_end:=false;
  x:=0; 
  y:=0; 
 
  s := new integer[200,200];  
  for i:=0 to 79 do
  s[i,24] := 1;   
while game_end=false do begin  
 
  Draw();  
 
  Gravity();
 
  OnKeyPress:=KeyPress;
  OnKeyDown:=KeyDown;  
  sleep(30);  
 
end;  
 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2019, 17:58
Ответы с готовыми решениями:

Ошибка в коде программы
Добрый день. Решил сделать платформер на pascalABC.net, но при запуске ГГ стоит на месте и не...

Не понимаю в чем ошибка в коде программы
Задание: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков...

Есть ошибка в коде программы на строки. Выполняются не все условия
Нужно написать программу, которая будет добавлять элемент с1, после каждой встречи элемента с2 в...

Ошибка в коде программы
Здравствуйте! При вводе дробных чисел выдает ошибку 207, ошибочная операция с плавающей запятой. Не...

6
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
19.09.2019, 18:00 2
Leman Russ, приложите картинку, пожалуйста.
0
0 / 0 / 0
Регистрация: 19.09.2019
Сообщений: 4
19.09.2019, 18:06  [ТС] 3
Ошибка в коде программы
0
3018 / 1643 / 650
Регистрация: 19.03.2019
Сообщений: 5,319
20.09.2019, 10:23 4
Цитата Сообщение от Leman Russ Посмотреть сообщение
Pascal
1
if (key='d') and (s[(x div 8)+1,(y div 8)]=0) then
Это ещё что за точки в 32 строке?!

Добавлено через 23 минуты
а вообще ни разу не гемдев и ПаскальАБС я видел издалека.

но я бы тебе такой вариант предложил. чисто для начала:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Program p1;
uses GraphABC;
var  
p: Picture;
s : array [,] of integer;
i,x,y,vspeed : integer;
game_end : boolean;
procedure Draw(); begin
 
  Redraw;  
  LockDrawing;
 
  setbrushcolor(clwhite); 
  fillrectangle(0,0,1640,1480);
   
   
  setbrushcolor(clblack);
  fillrectangle(0,362,Window.Width,400); 
   
  p.Draw (x,y);
   
end;
 
procedure KeyDown(key: integer); begin
var aa,bb,ss : integer;  
  if (key=vk_enter) or (key=VK_Escape) then game_end:=true; 
  
  if (key=vk_d) and (s[(x div 8)+1,(y div 8)]=0) and (x<Window.Width-8)  then
       x:=x+8; 
 
  if (key=vk_a) and (s[(x div 8)-1,(y div 8)]=0) and (x>8) then 
       x:=x-8;  
  
end;
 
procedure Gravity(); begin
  if vspeed=0 then begin 
  if s[(x div 8),(y div 8)+1]=0 then y+=8; 
  end;   
  if s[(x div 8),(y div 8)+vspeed]=0 then y+=vspeed;    
  if vspeed<>0 then 
  vspeed+=2;   
end;
 
Begin  
 
  game_end:=false;
  x:=0; 
  y:=0; 
 
  s := new integer[200,200];  
  for i:=0 to 79 do
  s[i,24] := 1;   
 
   p:=Picture.create(161,178);
   p.Load ('soul knight.bmp');
  
while not game_end do begin  
 
  Draw();  
 
  Gravity();
 
  OnKeyDown:=KeyDown;  
  sleep(30);  
 
end;
 Window.Close;
 
 
end.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,241
20.09.2019, 17:22 5
Leman Russ, по-моему Соколиный глаз просил вот эту картинку "soul knight.bmp"
0
3018 / 1643 / 650
Регистрация: 19.03.2019
Сообщений: 5,319
20.09.2019, 17:25 6
Цитата Сообщение от Пс Посмотреть сообщение
Leman Russ, по-моему Соколиный глаз просил вот эту картинку "soul knight.bmp"
я её со скриншота Leman Russ вырезал.
если надо - вот soul knight.bmp.zip
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,241
20.09.2019, 17:49 7
mr-Crocodile, спасибо)
0
20.09.2019, 17:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2019, 17:49
Помогаю со студенческими работами здесь

Ошибка в коде программы
var x,y,a,b,c,e,u :real; begin writeln ('введите значения &quot;x&quot; &quot;y&quot;'); writeln ('x='); readln(x);...

Ошибка в коде программы. Посчитать сумму.
Программа написана по этому заданию: Где-то в этом коде есть ошибка, которая не дает мне сдать...

Где ошибка в коде программы: создайте целочи...
привет всем, дана задача : создайте целочисленный массив со случайными числами. укажите соседство...

Ошибка в коде программы, которая определяет наличие заданной буквы в строке
В общем : я ввожу строку и букву, если буква в строке есть программа пишет мне true а если нету...

Ошибка в коде программы
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;sstream&gt; using namespace std; class...

Ошибка в коде программы.
Не инциализируется подключенный файл &lt;alloс.h&gt;.Это ведь стандартная библеотека С. Среда Vusial...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru