С Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/64: Рейтинг темы: голосов - 64, средняя оценка - 4.72
6 / 6 / 2
Регистрация: 02.10.2010
Сообщений: 100

Марио

06.03.2011, 17:59. Показов 12440. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Скажите пожалуйста ктонибудь делал игру Марио на Паскале . Или может у когонить исходники есть ,выложите пожалуйста.Объясните пожалуйста как можно реализовать этот алгоритм,больше всего не понимаю как сделать, чтобы когда Марио идёт территория открывалась дальше . Заранее спасибо .
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.03.2011, 17:59
Ответы с готовыми решениями:

Платформер в стиле марио
Здавтсвуйте, вот надо писать курсач и темя я выбрал видать не самую лёгкую:fie:. Так вот нужно написать платформер 2D типо Марио, с...

Марио
Хотел создать игру на подобии Марио. только не знаю как сделать так чтобы когда персонаж бегал к примеру на право то задний план двигался...

Марио
Охото было создать чет типа марио.. txSSmIMWXK4

14
 Аватар для Shtolz
5 / 5 / 1
Регистрация: 10.10.2008
Сообщений: 138
07.03.2011, 16:01
ну можно сделать так:

создаем текстовый файл который будет мапой те матрица M x N где каждый символ означает определенную единицу игрового мира например 0 - это пустое пространство 1- это земля m - это марио f - это цветочек итд далее при запуске игры записываешь матрицу из файла в массив M x N и выводишь с условием (если A[i] = 'm' то нарисовать марио, если A[i] = 'f' то нарисовать цветок ) а движение экрана реализовывать движением индекса вывода. например мапа у нас размером 20-высота и 200-ширина а экран размером 20 на 30. выводишь на экран часть мапы 20 на 30 начиная с 0 потом при движении марио выводишь с 1 итд. смотри Название: Безымянный.png
Просмотров: 1362

Размер: 1.9 Кб

а вообще пиши лучше на directX быстрей и красивей получится. на DelphiX марио можно запару дней написать.
1
6 / 6 / 2
Регистрация: 02.10.2010
Сообщений: 100
07.03.2011, 22:54  [ТС]
Спасибо идея очень даже не плохая !! Но есть ещё очень много непонятных вопросов!!

Добавлено через 7 минут
Ну мне её потом ещё и на Делфи переделать нужно !!! Просто ме ещё Делфи не начинали ,но я так имею общее предстовление там кнопку создать , фотку вставить но не больше

Добавлено через 1 минуту
Но хотелось бы реализовать это на Паскале !! Выкладывайте сюда свои идеи у кого какие есть !! Буду очень благодарен !
0
 Аватар для SuPeR XaKer
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,876
07.03.2011, 22:59
http://translate.google.ru/tra... d%3Divnsfd
2
 Аватар для Cegou
37 / 32 / 9
Регистрация: 04.03.2011
Сообщений: 120
07.03.2011, 23:31
Я нуб в паскале, но было бы интересно изучить исходники Марио. Спасибо!
0
6 / 6 / 2
Регистрация: 02.10.2010
Сообщений: 100
07.03.2011, 23:57  [ТС]
SuPeR XaKer Спасибо тебе огромное !! Но всеравно выкладывайте свои идеи !!Просто хотелось бы самому написать !!

Добавлено через 6 минут
Да !! тот код просто так не Осилить !! Хотелось бы самому!!! Помогите кто чем может !! может какиенибудь книжки есть !! или ещё чёнить типо того !!
0
 Аватар для Cegou
37 / 32 / 9
Регистрация: 04.03.2011
Сообщений: 120
08.03.2011, 00:20
Ромка666, как только начну с графикой работать, думаю через неделю - другую, попробую чем - нибудь помочь, ибо самому интересно
0
6 / 6 / 2
Регистрация: 02.10.2010
Сообщений: 100
08.03.2011, 08:56  [ТС]
ок !!

Добавлено через 27 секунд
Давай !! сместе интереснее будет !!
0
 Аватар для Shtolz
5 / 5 / 1
Регистрация: 10.10.2008
Сообщений: 138
08.03.2011, 13:46
Цитата Сообщение от Ромка666 Посмотреть сообщение
Но есть ещё очень много непонятных вопросов!!
а что не понятно ?? задавай вопросы - расскажу
0
6 / 6 / 2
Регистрация: 02.10.2010
Сообщений: 100
08.03.2011, 14:28  [ТС]
Я просто чтото плохо представляю как !! Можно реализовать твой алгоритм !! Ну например у мя есть мапа определённого размера!! считать ее нарисовать определённые объекты непроблема но ведь они всегда будут рисоваться на одном и томже месте при движении марио !! И ещё как лучше оформлять объекты!! В виде чего ,чтобы потом их можно было легкоиспользовать !! И как сделатьтак , чтобы марио например сталкнувшись с определённым объектом не продолжал свой путь !! Как его остановить я знаю но чтобы экран не потухал и игра продолжалась !!
0
 Аватар для Shtolz
5 / 5 / 1
Регистрация: 10.10.2008
Сообщений: 138
08.03.2011, 15:52
ну я бы сделал так:
1- есть глобальный игровой цикл в нем происходят все изменения.
2- есть определенные константы содержащие символы соответствующие определенному действию например UP = 'w'
3 - есть 2 матрицы 1-это мапа, 2-это набор объектов в виде записей содержащих
  • картинки
  • код картинки в мапе
  • итд по ходу еще что нибудь понадобится =)
5 - и собственно сам цикл игровой
  • *берем первый символ из мапы
  • *ищем этот символ в массиве объектов(mapArr[i,j] = objArr[k].code)
  • *отображаем соответствующую картинку
  • *так по всей видимой части мапы
  • *далее читаем символ с клавиатуры
  • *производим соответствующие изменения в мапе (например шаг вперед mapArr[i,j] := '0'; mapArr[i+1,j] := 'm' ) перед этим естественно проверяем возможность этого действия например если впереди труба то незя
  • *похожим образом обрабатываем всю "живность"

пока все. более детально это уже по ходу написания
0
6 / 6 / 2
Регистрация: 02.10.2010
Сообщений: 100
09.03.2011, 13:29  [ТС]
Спасибо !! За столь подробный ответ !! Если ещё будут какието вопросы то буду задовать !!

Добавлено через 53 минуты
Только начал делать и сразу возникло много вопросов !! Я непонимаю как можно создать запись из объектов !! и как сделать , чтобы он прыгал и не проходил сквозь стены !! пока всё ,что смог буду пробовать !!! может что не так делаю так вы скажите вот собственно сам код ...
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
program mario1;
uses crt,graph;
var x,y,i,j,n,m:integer;
    k:char; map:text;
    a:array[1..100,1..100] of integer;
procedure GraphInterFace;
Var driver, mode, error:Integer;
    s: String;
begin
     driver:=detect; s:='';
     InitGraph(driver,mode,s);
end;
procedure ylet;
begin
assign(map,'map.txt');
reset(map);
for i:=1 to 5 do
begin
 for j:=1 to 8 do
 readln(map,a[i,j]);
 if a[i,j]=1 then
  circle(20,20,30);
  end;
end;
procedure pole;
begin
setcolor(white);
rectangle(0,400,640,480);
rectangle(250,300,350,325);
rectangle(450,300,490,400);
end;
Procedure mario (var a:integer;b:integer);
begin
     SetBkColor(11);
     SetColor(5);
     circle(30+a,60+b,20);
end;
begin
  clrscr;
  GraphInterFace;
  x:=20;
  y:=320;
     While true do
     begin
     pole ;
     mario(x,y);
           k:=#0;
          while (k<>#77) and (k<>#75) and (k<>#72) and (k<>#80) do
          begin
          k:=readkey;
          end;
          Cleardevice;
           Case k of
                #77:begin x:=x+10;  end;
                #75:begin x:=x-10;   end;
         end;end;end.
Добавлено через 16 часов 34 минуты
ооо!!

Добавлено через 1 час 58 минут
Shtolz, ну давай помогай советом !!
0
 Аватар для Shtolz
5 / 5 / 1
Регистрация: 10.10.2008
Сообщений: 138
09.03.2011, 14:49
извини пока времени нету =( зачет завтра . после посмотрю
0
 Аватар для Cegou
37 / 32 / 9
Регистрация: 04.03.2011
Сообщений: 120
09.03.2011, 16:05
Была у меня задачка такая на сдвиг массива.. Так вот, улучшив программу, которая у меня получилась я подумал, что из этого можно сделать игру на подобии змейки, только гораздо проще и в ASCII.
Пока только наработки, может пригодится:
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
uses
  crt;
 
const
  x = 23;
 
var
  a: array [1..x, 1..x] of char;
  i, j: integer;
  c: char;
  b: boolean;
  k: byte;
 
procedure swap(var a, b: integer);
var
  temp: integer;
begin
  temp := a;
  a := b;
  b := temp;
end;
 
begin
  begin
    for i := 1 to x do
    begin
      a[i, 1] := '#';
      a[i, x] := a[i, 1];
      a[1, i] := '#';
      a[x, i] := a[1, i];
    end;
    for i := 2 to x - 1 do
      for j := 2 to x - 1 do
        a[i, j] := ' ';
    a[x div 2 + 1, x div 2 + 1] := #1;
  end;
  repeat
    repeat
      clrscr;
      Writeln('Нажимайте ', #27, #26, ' для перемещения по диагонали и ', #25, #24, ' для перемещения по вертикали');
      k := 0;
      for i := 1 to x do
      begin
        begin
          for j := 1 to x do
            write(A[i, j], ' ');
        end;
        writeln;
      end;
      c := readkey;
      if c = #0 then b := true;
      if b then c := readkey;
      case c of
        #37:  
          begin
            for i := 2 to x - 1 do
            begin
              for j := 2 to x - 2 do
                swap(a[i, j], a[i, j + 1]);
            end;
          end;
        #39:  
          begin
            for i := 2 to x - 1 do
            begin
              for j := x - 2 downto 2 do
                swap(a[i, j], a[i, j + 1]);
            end;
          end;
        #38:
          begin
            for j := 2 to x - 1 do
            begin
              for i := 2 to x - 2 do
                swap(a[i, j], a[i + 1, j]);
            end;
          end;
        #40:
          begin
            for j := 2 to x - 1 do
            begin
              for i := x - 2 downto 2 do
                swap(a[i, j], a[i + 1, j]);
            end;
          end;
      else
        break;  
      end;
    until k = 0;
  until c = #27;
end.
В планах: причесать код, улучшить интерфейс, добавить монетку, до которой нужно будет добраться за определенное время, счетчик.

Добавлено через 53 минуты
В графике индексация координат идет так же, как и в массиве с верхнего левого угла?
0
6 / 6 / 2
Регистрация: 02.10.2010
Сообщений: 100
09.03.2011, 22:43  [ТС]
спасибо посмотрю !!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.03.2011, 22:43
Помогаю со студенческими работами здесь

Марио vs Соник
Какая игра лучше?

Смерть в марио
Необходимо сделать смерть врага марио. На данном моменте когда марио попадает на врага сверху он сам умирает. #include...

Марио, js первые ошибки
Пишу марио с использованием JS. И возникают проблемы, а именно с прыжками и ходьбой. Герой может прыгнуть на высоту по У 800000 и вернутся...

Разместить музыку в Марио
Доброго времени суток! Помогите разместить музыку в Марио. Файлы из sfml-2.0 скопировал в папку с main. Загрурил звуки из интернета и...

Платформер по типу марио
Выпало три свободных дня, решил набросать зачатки платформера. Вот что из этого вышло. C# (.NET Fx 2) + OpenGL (Tao Framework). ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru