Форум программистов, компьютерный форум, киберфорум
Java ME (J2ME)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
treat

Изменение программы, написанной на MidletPascal

08.04.2010, 19:38. Показов 1503. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
имеется небольшая леталка на MidletPascal(взято с vr-online.ru).
КОД:
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
program Aircraft;
type//обьявление типов
 TSam = record//создаем тип самалет
 position,kren,x,y:integer;//переменные отвечающие за его позицию и наклон
 img:image;//здесь будет изображение самалета
end;
 
procedure DrawRazm(x,y:integer);//процедура создания разметки на полосе
begin
 drawRect(x,y,4,30);//рисуем разметку
end;
 
var
 Sam:TSam;//обьявляем переменную типа нашего самалета
 key,x,y,i:integer;//переменные для получения нажатой клавиши,позиции разметки и счетчик
begin
 x:=(getWidth/2)-(getImageWidth(loadImage('/zast.png'))/2);//вставляем заставку
 y:=(getHeight/2)-(getImageHeight(loadImage('/zast.png'))/2);//в центре
 drawImage(loadImage('/zast.png'),x,y);//экрана
 repaint;
 delay(5000);
 
 Sam.Position:=4;//устанавливаем позицию самалета по середине
 Sam.Img:=LoadImage('/sam4.png');//загружаем соответствующую картинку
 Sam.x:=(GetWidth/2)-(GetImageWidth(Sam.img)/2);//устанавливаем начальные
 Sam.y:=getImageHeight(loadImage('/sam1.png'));//координаты самалета
 
i:=0;//устанавливаем счетчик в ноль
x:=(getWidth/2)-2;//координаты которые будут использоваться
y:=getHeight/2;//для построения разметки на полосе
 
Sam.kren:=0;//устанавливаем наклон самалета в ноль
 repeat//цикл длится пока не будет нажата клавиша "0"
  SetColor(255,255,255);//устанавливаем белый цвет
    FillRect(0,0,getWidth,GetHeight);//зарисовываем экран белым цветом (очищаем)
 
//далее выводим нужное изображение самалета в соответствии с его позицией
  drawImage(loadImage('/sam'+chr(48+Sam.position)+'.png'),Sam.x,Sam.y);//и наклоном
 
    SetColor(0,0,0);//устанавливаем черный цвет
    drawLine((getWidth/2)-40,getHeight/2,(getWidth/2)-60,getHeight);//рисуем
    drawLine((getWidth/2)-42,getHeight/2,(getWidth/2)-62,getHeight);//края
    drawLine((getWidth/2)+40,getHeight/2,(getWidth/2)+60,getHeight);//взлетной
    drawLine((getWidth/2)+42,getHeight/2,(getWidth/2)+62,getHeight);//полосы
    drawLine(0,getHeight/2,getWidth,getHeight/2);//рисуем горизонт
    SetColor(140,175,205);//устанавливаем цвет сине-серым
 
    drawRazm(x,y);//вызываем процедуру рисования разметки
    
 
 
  key:=GetKeyPressed;//переменной key присваивается код удерживаемой клавиши
 
 if key=KE_KEY4 then//если удерживается 4
   begin
    Sam.position:=Sam.position-1;//уменьшаем позицию на 1
    if Sam.Position<=1 then Sam.position:=1;//если позиция меньше или равна 1 то присвоить обратно 1
    Sam.kren:=Sam.kren-1;//увеличиваем крен в левую сторону
    if Sam.kren<=-3 then Sam.kren:=-3;//если крен в лево больше макс. допустимого, то ставим макс. допустимый
   end;
 
  if key=KE_KEY6 then//здесь все то же самое, только в правую сторону
   begin
    Sam.position:=Sam.position+1;
    if Sam.Position>=7 then Sam.position:=7;
    Sam.kren:=Sam.kren+1;
    if Sam.kren>=3 then Sam.kren:=3;
   end;
 
  if key=KE_KEY8 then//если удерживается 8
   begin
    Sam.y:=Sam.y+3;//уменьшаем позицию самалета на 3 (координата y увел. с верху в низ)
    //далее проверяем, если самалет ниже чем надо, ставим его на место
    if Sam.y+GetImageHeight(Sam.img)>=(GetHeight-20) then Sam.y:=(getHeight-20)-getImageHeight(Sam.img);
   end;
 
  if key=KE_KEY2 then//если удерживается 2
   begin
    Sam.y:=Sam.y-3;//подымаем самаль на 3
    if Sam.y<=0 then Sam.y:=0;//проверяем не улетел ли он в космос
   end;
//дальше, в соответствии с наклоном самалета в ту или иную сторону, корректируется его позиция на оси X   
  Sam.x:=Sam.x+Sam.kren;
 
  if Sam.x<=0 then Sam.x:=0;//проверяем не улетел наш самалет куда нибудь влево или вправо
  if Sam.x>=getWidth-getImageWidth(Sam.img) then Sam.x:=getwidth-GetImageWidth(Sam.img);//за пределы экрана
 
    i:=i+1;//инкрементируем счетчик
    if i=5 then y:=y+35;//читай так "если прошло 5 циклов времени, то опускаем нашу полосу разметки чуть ниже"
    if i=10 then y:=y+35;//после еще 5-ти циклов времени еще опускаем нашу разметку
    if i=15 then y:=y+35;//и еще раз
    if i>20 then//после очередных 5-ти циклов времени возвращаем ее обратно, так создается впечатление, что
                //самалет летит вперед, пролетая полосу разметки
    begin
     i:=0;
     y:=getHeight/2;
    end;
 
 
 
  repaint;//выводим на экран все что мы до этого нарисовали
    delay(50);//делаем задержку в 0.05 секунды. Это можно считать скоростью игры
 
until GetKeyClicked=KE_KEY0;//выполняется цикл пока не нажмем на "0"
 
end.
Проблема такова-при движении самолета поверх взлетной полосы и разметки, она как бы просвечивает сквозь него...хочется сделать , чтобы спрайты самолета были всегда на первом плане, а разметка-на втором. Помогите пожалуйста разобраться
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.04.2010, 19:38
Ответы с готовыми решениями:

Изменение уже написанной строки в консоле
Есть некая строка выведенная с помощью Console.Write(); После этого пользователь должен ввести значение, а после нажатия клавиши Enter...

Защита программы написанной на C#
Смотрел прошлые темы, но по дате по моему уже не актуально, т.к каждый день разрабатываются как способы взлома, так и защиты. Ну так какие...

Стоимость программы написанной на С#
Ребят подскажите как рассчитать стоимость программного продукта?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.04.2010, 19:38
Помогаю со студенческими работами здесь

Компилирование компилятором С++ программы написанной на С
Здравствуйте! Скажите пожалуйста, если я создам файл .cpp и напишу его полностью на Си. Насколько это будет плохо? То есть, я не буду...

Запуск программы написанной на java
Здравствуйте. Я написал программу используя IDE Intellij IDEA, но не знаю как её запустить программу НЕ ИЗ IDE. Я читал на многих сайтах,...

Сохраненине результата программы, написанной в VB
Помогите! Срочно нужно сохранить в файл результаты работы программы на VB6. Есть рабочая форма- на форме результат. Нажатием на...

Взаимодействие написанной программы и компьютера
Здравствуйте, уважаемые программисты!) Я в ваших рядах меньше месяца и в данный момент, изучив основы программирования в Visual Studio...

Провести трассировку написанной программы.
Провести трассировку написанной программы, т.е. пошаговое отслеживание изменений всех переменных после выполнения каждого оператора...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru