Форум программистов, компьютерный форум, киберфорум
Программирование мультимедиа
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 2
Регистрация: 12.04.2014
Сообщений: 102

Tiled Map и волновой алгоритм

21.10.2015, 11:05. Показов 1150. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, помогите решить вопрос реализации волнового алгоритма, когда мы загружаем уровни с помощью Tiled Map.
По алгоритму нам нужно создать карту подобную нашей и проверять есть ли на первоначальной карте на этом этапе стена и дошли ли мы до цели. Если дошли шагаем, при этом проверяем ближайшие клетки. С Tiled Map не работала, вообще не представляю к чему привязать ее здесь. Препод предложил создать упрощенный вариант моей карты(двумерный массив), там все делать, но как потом перейти обратно к моей карте?

Добавлено через 54 минуты
Все что касается Tiled Map и файлов по уровню я брала тут http://habrahabr.ru/post/199064/
Вот мой класс Враг, только я хочу переделать взаимодействие героя с врагом, а то они у меня жутко тупые.
C++
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
#ifndef ENEMY_H
#define ENEMY_H
#include "Entity.h"
class Enemy:public Entity{
    int zq,timer;
    public:
    Enemy (sf::Image &image,sf::String Name,Level &lvl,float X, float Y, float W, float H): Entity(image,Name,X,Y,W,H){
        zq=1;state=left;timer=0;
        obj=lvl.GetAllObjects();//иницилизируем нужные объекты для взаимодействия врага с картой
        if(name=="EasyEnemy"){
            sprite.setTextureRect(sf::IntRect(0,0,w,h));
        }
    }
    void checkCollisionWithMap()//ф ция проверки столкновений с картой
    {
        for (int i = 0; i<obj.size(); i++)//проходимся по объектам
            if (getRect().intersects(obj[i].rect))//проверяем пересечение игрока с объектом
            {
                if (obj[i].name == "solid"||"teleport1"||"teleport2")//если встретили препятствие
                {if (dy>0)    { y = obj[i].rect.top - h;dy=0.1;}
                if (dy<0)    { y = obj[i].rect.top + obj[i].rect.height;}
                if (dx>0)    { x = obj[i].rect.left - w; }
                if (dx<0)    { x = obj[i].rect.left + obj[i].rect.width;  }
                }
            }
    }
    void update(float time)
    {
        if (name == "EasyEnemy"){//для персонажа с таким именем логика будет такой
            timer+=time;
            if (timer+1000>1000) {zq=rand()%3;}
            if (timer>500) {if (zq==0)  {if (x>px) {speed=0.1,state=left; timer=0;} {if (y>py) {speed=0.1,state=up; timer=0;} }}}
            if (timer>500) {if (zq==1)  {if (x<px) {speed=0.1,state=right; timer=0;} {if (y<py) {speed=0.1,state=down; timer=0;} }}}
            switch(state)
            {
            case right: dx=speed; dy=0;  break;
            case left: dx=-speed; dy=0;  break;
            case down: dx=0; dy=speed; break;
            case up: dx=0; dy=-speed;   break;
            case stay:break;
            }
            x += dx*time;
            y += dy*time;
            checkCollisionWithMap();
            sprite.setPosition(x + w / 2, y + h / 2); //задаем позицию спрайта в место его центра
        }
    }
};
Я хочу создать функцию подобную этой в своем классе, но не представляю, как ее адаптировать к моему Tiled Map.
Что мне в ней изменить?

C++
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
void find_path(int N,int M)
{
    struct t{
        int x, y;
    };
    t Q[10000], S, G;
    int i_st=0, i_end=1, t, i, j, a[100][100]={0};
    for(i=0; i<N; i++)
        for(j=0; j<M; j++)
        {
            if(wayToPacMan[i][j]=='G') {G.x=i; G.y=j;}
            if(wayToPacMan[i][j]=='S') {S.x=i; S.y=j;}
        }
    a[G.x][G.y]=1;
    Q[0].x=G.x; Q[0].y=G.y;
    while(i_st<i_end)
    {
        if(a[Q[i_st].x-1][Q[i_st].y]==0 && wayToPacMan[Q[i_st].x-1][Q[i_st].y]!='#')
        {
            Q[i_end].x=Q[i_st].x-1; Q[i_end++].y=Q[i_st].y;
            a[Q[i_st].x-1][Q[i_st].y]=a[Q[i_st].x][Q[i_st].y]+1;
        }
        if(a[Q[i_st].x+1][Q[i_st].y]==0 && wayToPacMan[Q[i_st].x+1][Q[i_st].y]!='#')
        {
            Q[i_end].x=Q[i_st].x+1; Q[i_end++].y=Q[i_st].y;
            a[Q[i_st].x+1][Q[i_st].y]=a[Q[i_st].x][Q[i_st].y]+1;
        }
        if(a[Q[i_st].x][Q[i_st].y-1]==0 && wayToPacMan[Q[i_st].x][Q[i_st].y-1]!='#')
        {
            Q[i_end].x=Q[i_st].x; Q[i_end++].y=Q[i_st].y-1;
            a[Q[i_st].x][Q[i_st].y-1]=a[Q[i_st].x][Q[i_st].y]+1;
        }
        if(a[Q[i_st].x][Q[i_st].y+1]==0 && wayToPacMan[Q[i_st].x][Q[i_st].y+1]!='#')
        {
            Q[i_end].x=Q[i_st].x; Q[i_end++].y=Q[i_st].y+1;
            a[Q[i_st].x][Q[i_st].y+1]=a[Q[i_st].x][Q[i_st].y]+1;
        }
        i_st++;
    }
    if(a[S.x][S.y]==0)
        cout<<"No way"<<endl;
    else
    {
        t=a[S.x][S.y];
        while(t>1)
        {
            if(a[S.x-1][S.y]==t-1)
            {
                wayToPacMan[S.x-1][S.y]='+';
                S.x--; t--;
            }
            else
            if(a[S.x+1][S.y]==t-1)
            {
                wayToPacMan[S.x+1][S.y]='+';
                S.x++; t--;
            }
            else
            if(a[S.x][S.y-1]==t-1)
            {
                wayToPacMan[S.x][S.y-1]='+';
                S.y--; t--;
            }
            else
            if(a[S.x][S.y+1]==t-1)
            {
                wayToPacMan[S.x][S.y+1]='+';
                S.y++; t--;
            }
        }
    }
}

Или все-таки надо заморачиваться с дублированием моей карты в двумерном массиве. Ребята, очень надеюсь на помощь-я сама не справляюсь, опыта вообще нет. Заочка(((
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.10.2015, 11:05
Ответы с готовыми решениями:

Tiled Map и волновой алгоритм
Делаю игру пакман. Нашла, что для привидений хорошо подходит волновой алгоритм. Нашла примеры реализации -все они завязаны на двумерных...

SFML+Tiled Map Editor
Здравствуйте Опишу ситуацию: Пытаюсь на курсач написать игру на С++ с использованием SFML, TinyXML и Tiled Map Editor по урокам...

При подключении TILED MAP ошибка
Такой вопрос. Делаю игру по примеру https://www.youtube.com/watch?v=NA8NPOxZEDk . Но после редактирования в tiled map программа выкидывает...

13
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,965
Записей в блоге: 232
21.10.2015, 14:22
--- ответил не в тему ---
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,965
Записей в блоге: 232
21.10.2015, 21:40
Цитата Сообщение от lenarano Посмотреть сообщение
С Tiled Map не работала, вообще не представляю к чему привязать ее здесь. Препод предложил создать упрощенный вариант моей карты(двумерный массив), там все делать, но как потом перейти обратно к моей карте?
Я сформировал мысль. C Tiled Map работать очень просто. Карта рисуется с помощью TileSet (см. рисунок справа). Вы кликаете на квадратик и начинаете им рисовать. Это нужно попробробовать на практике. Далее карта экспортируется из меню в текстовый файл формата CVS. В файле тайлы обозначаются цифрами. То есть в файле будет двумерный массив.

К примеру, я нарисовал небольшую карту и экспортировал в CVS. Получил двумерный массив. Здесь 0 - каменный блок, 2 - кирпичный блок, -1 - пустота и т.д. Вот содержимое файла.

2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2
2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,280,-1,-1,-1,-1,-1,2
2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,313,-1,-1,-1,-1,-1,2
2,-1,-1,412,-1,-1,-1,-1,-1,-1,-1,269,270,271,-1,-1,-1,-1,-1,2
2,-1,-1,445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2
2,-1,-1,269,270,271,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2
2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,413,414,415,-1,-1,2
2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2
2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2
2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2
2,-1,-1,-1,-1,-1,-1,-1,269,270,271,-1,-1,-1,-1,-1,-1,-1,-1,2
2,-1,269,270,271,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2
2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2
2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2
2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2
2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
2,-1,-1,-1,-1,-1,-1,-1,264,265,-1,-1,-1,264,265,-1,-1,-1,-1,-1
2,-1,-1,-1,-1,-1,-1,-1,297,298,-1,-1,-1,297,298,-1,-1,-1,-1,-1
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Миниатюры
Tiled Map и волновой алгоритм  
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,965
Записей в блоге: 232
21.10.2015, 21:43
По поводу волнового алгоритма: Урок 41. C++ Волновой алгоритм [A* pathfinding]

Кликните здесь для просмотра всего текста
0
2 / 2 / 2
Регистрация: 12.04.2014
Сообщений: 102
21.10.2015, 23:38  [ТС]
Я правильно поняла, что мне нужно скачать эту программку. Потом в самом редакторе выбрать файл, экспорт в эту программку? Далее нужно работать с 2 двумерными массивами. Один-тот который у вас сверхУ, а второй такой же размерности- в нем делаем поиск. Объекты тоже будут указываться в таком массиве?У них тоже будут цифры как у блоков?

Добавлено через 12 минут
Нашла, что это формат, но у меня не предлагается сохранить в этом формате-его нет в списке.
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,965
Записей в блоге: 232
21.10.2015, 23:42
Нужно выбрать в меню: "File" -> "Export As" -> в поле "Save as type" выбрать "CVS files (*.cvs)"

Вы знаете, как добавить TileSet в редактор?

Потренируйтесь рисовать с помощью этого TileSet:
Миниатюры
Tiled Map и волновой алгоритм  
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,965
Записей в блоге: 232
21.10.2015, 23:53
TileSet добавляется так. Для начала нужно создать новый проект: в меню выбрать "File" -> "New..."

После создания проекта нужно открыть TileSet, для этого на панели справа нужно кликнуть сюда:
Миниатюры
Tiled Map и волновой алгоритм  
0
2 / 2 / 2
Регистрация: 12.04.2014
Сообщений: 102
22.10.2015, 00:02  [ТС]
Спасибо. У меня получилось два файла с 1 и 2 слоем. Я так понимаю, что нужен мне первый слой, т.к. на них у меня объекты "стена". Вот он.
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2048,2049,2049, 2049,2049,2050,2050,2049,2049,2050,2049, 2050,2050,2051,2497,2497,2497,2497,2497, 2497,2048,2049,2050,2049,2050,2049,2049, 2049,2049,2049,2049,2049,2050,2051,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2240,2241,2241, 2241,2241,2241,2241,2241,2241,2242,2241, 2242,2242,2243,2497,2497,2497,2497,2497, 2497,2240,2241,2242,2241,2242,2241,2242, 2241,2242,2241,2242,2242,2242,2243,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2048,2049,2049,2050,2049, 2050,2049,2049,2050,2049,2050,2050,2051, 2497,2497,2497,2497,2497,2497,4496,4369, 2562,2562,2562,2562,2562,2562,2562,2562, 2562,2562,2562,2562,4368,4499,2497,2497, 2497,2497,2497,2497,2048,2049,2050,2049, 2050,2049,2050,2050,2050,2050,2050,2050, 2051,2497,2497,2497
2497,2497,2497,2112,2113,2113,2114,2113, 2114,2113,2113,2114,2113,2114,2114,2115, 2497,2497,2497,2497,2497,2497,4560,4563, 2562,2562,2562,2562,2562,2562,2562,2562, 2562,2562,2562,2562,4560,4563,2497,2497, 2497,2497,2497,2497,2112,2113,2114,2177, 2177,2177,2178,2114,2114,2114,2114,2114, 2115,2497,2497,2497
2497,2497,2497,2176,2113,2114,2178,2177, 2178,2177,2177,2178,2177,2178,2178,2179, 2497,2497,2497,2497,2497,2497,4624,4371, 4497,4497,4497,4497,4497,4497,4497,4497, 4497,4497,4497,4497,4370,4627,2497,2497, 2497,2497,2497,2497,2176,2177,2177,2177, 2178,2178,2178,2177,2178,2113,2114,2114, 2115,2497,2497,2497
2497,2498,2497,2112,2113,2114,2113,2114, 2177,2178,2241,2242,2241,2242,2242,2243, 2497,2497,2497,2497,2497,2497,4688,4689, 4690,4689,4689,4690,4689,4689,4690,4689, 4690,4689,4689,4689,4690,4691,2497,2497, 2497,2497,2497,2497,2240,2241,2241,2241, 2242,2242,2242,2241,2242,2177,2178,2178, 2179,2497,2497,2497
2498,2498,2498,2176,2177,2178,2177,2178, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2112,2113,2114, 2115,2497,2497,2497
2498,2498,2498,2176,2177,2178,2114,2115, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2562,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2112,2113,2178, 2179,2497,2497,2497
2498,2498,2498,2176,2177,2178,2114,2179, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2562,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2562,2562, 2497,2497,2497,2497,2497,2112,2113,2114, 2115,2497,2497,2497
2498,2498,2498,2176,2177,2178,2178,2115, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2048,2049,2050,2051, 2497,2497,2497,2497,2048,2049,2050,2051, 2497,2497,2497,2497,2048,2049,2050,2051, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2176,2177,2178, 2179,2497,2497,2497
2497,2497,2497,2112,2177,2178,2178,2179, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2562,2562,2370,2112,2113,2114,2115, 2497,2497,2497,2497,2112,2113,2114,2115, 2497,2497,2497,2497,2112,2113,2114,2115, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2112,2113,2178, 2179,2497,2497,2497
2497,2497,2497,2176,2177,2177,2114,2115, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2562,2562,2497,2176,2177,2178,2179, 2497,2497,2497,2497,2176,2177,2178,2179, 2497,2497,2497,2497,2176,2177,2178,2179, 2562,2562,2562,2562,2497,2497,2497,2497, 2497,2562,2497,2497,2497,2176,2177,2178, 2179,2497,2497,2497
2497,2497,2497,2112,2113,2114,2178,2179, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2562,2562,2497,2240,2241,2242,2243, 2497,2497,2497,2497,2240,2241,2242,2243, 2497,2497,2497,2497,2240,2241,2242,2243, 2497,2497,2497,2497,2562,2562,2562,2562, 2562,2497,2497,2497,2497,2176,2177,2178, 2179,2497,2497,2497
2497,2497,2497,2240,2241,2241,2242,2243, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2240,2241,2242, 2243,2497,2497,2497
2497,2497,2497,2370,2370,2370,2370,2370, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2048,2049,2050,2050,2051, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2048,2049,2049,2050, 2051,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2112,2113,2114,2114,2115, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2112,2114,2113,2114, 2115,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2176,2177,2178,2178,2179, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2112,2114,2177,2178, 2179,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2112,2113,2114,2114,2115, 2497,2497,2497,2497,1664,1665,1664,1665, 1665,1665,1664,1665,2497,2497,2497,2497, 1664,1665,1664,1665,1664,1665,1664,1665, 2497,2497,2497,2497,2112,2114,2113,2114, 2115,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2048,2049,2049,2050,2051, 2497,2497,2497,2176,2177,2178,2178,2179, 2497,2497,2497,2497,1728,1729,1728,1729, 1728,1729,1728,1729,2497,2497,2497,2497, 1728,1729,1728,1729,1728,1729,1728,1729, 2497,2497,2497,2497,2112,2178,2177,2178, 2179,2497,2497,2497,2497,2048,2049,2050, 2051,2497,2497,2497
2497,2497,2497,2176,2177,2113,2114,2115, 2497,2497,2497,2112,2113,2114,2177,2115, 2497,2497,2497,2497,1792,1793,1792,1793, 1792,1793,1792,1793,2497,2497,2497,2497, 1792,1793,1792,1793,1792,1793,1792,1793, 2497,2497,2497,2497,2112,2113,2113,2114, 2115,2497,2497,2497,2497,2112,2113,2114, 2115,2497,2497,2497
2497,2497,2497,2112,2113,2113,2114,2115, 2497,2497,2497,2176,2177,2178,2114,2179, 2497,2497,2497,2497,1664,1665,1664,1665, 1664,1665,1664,1665,2497,2497,2497,2497, 1664,1664,1664,1665,1664,1665,1664,1665, 2497,2497,2497,2497,2176,2177,2177,2178, 2179,2497,2497,2497,2497,2112,2113,2178, 2179,2497,2497,2497
2497,2497,2497,2176,2177,2177,2178,2179, 2497,2497,2497,2240,2241,2242,2242,2243, 2497,2497,2497,2497,1728,1729,1728,1729, 1728,1729,1728,1729,2497,2497,2497,2497, 1728,1728,1728,1729,1728,1729,1728,1729, 2497,2497,2497,2497,2240,2241,2241,2242, 2243,2497,2497,2497,2497,2176,2177,2114, 2115,2497,2497,2497
2497,2497,2497,2112,2113,2113,2114,2115, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,1792,1793,1792,1793, 1792,1664,1792,1793,2497,2497,2497,2497, 1792,1792,1792,1793,1792,1793,1792,1793, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2112,2113,2178, 2179,2497,2497,2497
2497,2497,2497,2176,2177,2177,2114,2115, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,1664,1665,1664,1665, 1664,1728,1664,1665,2497,2497,2497,2497, 1664,1665,1664,1665,1664,1665,1664,1665, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2176,2177,2114, 2115,2497,2497,2497
2497,2497,2497,2112,2113,2113,2178,2179, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,1728,1729,1728,1729, 1664,1792,1728,1729,2497,2497,2497,2497, 1728,1729,1728,1729,1728,1729,1728,1729, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2112,2113,2114, 2115,2497,2497,2497
2497,2497,2497,2112,2113,2113,2113,2114, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,1792,1793,1792,1793, 1728,1792,1792,1793,2497,2497,2497,2497, 1792,1793,1792,1793,1792,1793,1792,1793, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2176,2177,2178, 2179,2497,2497,2497
2497,2497,2497,2112,2113,2177,2177,2178, 2049,2049,2049,2050,2049,2050,2050,2051, 2497,2497,2497,2497,1664,1665,1792,1793, 1792,1792,1664,1665,2497,2497,2497,2497, 1664,1665,1664,1665,1664,1665,1664,1665, 2497,2497,2497,2497,2048,2049,2049,2050, 2049,2050,2049,2050,2049,2114,2113,2114, 2115,2497,2497,2497
2497,2497,2497,2112,2113,2177,2178,2178, 2113,2113,2113,2114,2113,2114,2114,2115, 2497,2497,2497,2497,1664,1665,1664,1665, 1792,1793,1728,1729,2497,2497,2497,2497, 1728,1729,1728,1729,1664,1665,1664,1665, 2497,2497,2497,2497,2112,2113,2113,2114, 2113,2114,2113,2114,2113,2114,2177,2178, 2179,2497,2497,2497
2497,2497,2497,2112,2113,2177,2177,2178, 2177,2178,2177,2178,2177,2177,2178,2179, 2497,2497,2497,2497,1728,1729,1728,1729, 1792,1793,1664,1665,2497,2497,2497,2497, 1664,1664,1664,1665,1728,1729,1728,1729, 2497,2497,2497,2497,2176,2177,2177,2178, 2177,2178,2177,2178,2177,2177,2178,2178, 2179,2497,2497,2497
2497,2497,2497,2240,2241,2241,2241,2242, 2241,2242,2241,2242,2241,2241,2242,2243, 2497,2497,2497,2497,1792,1793,1792,1793, 1792,1793,1728,1729,2497,2497,2497,2497, 1728,1728,1728,1729,1792,1793,1792,1793, 2497,2497,2497,2497,2240,2241,2241,2242, 2241,2242,2241,2242,2241,2241,2242,2242, 2243,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,1794,1795,1794,1795, 1794,1794,1794,1794,2497,2497,2497,2497, 1857,1857,1857,1857,1794,1794,1794,1795, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2498,2498,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2498,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2048,2049, 2050,2049,2049,2049,2049,2049,2049,2049, 2049,2049,2049,2050,2050,2049,2050,2051, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2048,2049,2050,2049, 2050,2049,2050,2049,2050,2049,2050,2049, 2050,2049,2050,2049,2050,2051,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2112,2113, 2114,2113,2113,2113,2113,2113,2113,2113, 2113,2113,2113,2114,2114,2113,2114,2115, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2112,2113,2114,2113, 2114,2113,2114,2113,2114,2113,2114,2113, 2114,2113,2114,2113,2114,2115,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2176,2177, 2178,2177,2177,2177,2177,2177,2177,2177, 2177,2177,2177,2178,2178,2177,2178,2179, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2176,2177,2178,2177, 2178,2177,2178,2177,2178,2177,2178,2177, 2178,2177,2178,2177,2178,2179,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2240,2241, 2242,2241,2241,2241,2241,2241,2241,2241, 2241,2241,2241,2242,2242,2241,2242,2243, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2240,2241,2242,2241, 2242,2241,2242,2241,2242,2241,2242,2241, 2242,2241,2242,2241,2242,2243,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497,2497,2497,2497,2497, 2497,2497,2497,2497
Теперь я создаю двумерный массив на его основе-верно? Но пакман и привидения у меня являются объекты. Они в этом формате отображаются?
0
2 / 2 / 2
Регистрация: 12.04.2014
Сообщений: 102
22.10.2015, 00:21  [ТС]
Все получилось и в результате .tmx преобразовался в 2 файла(1 и 2 слов), но там наверное нет моих объектов. Мой герой и привидения в карте были как объекты-они в этом формате отображаются и как понять, что среди всего кода это мой герой?
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,965
Записей в блоге: 232
22.10.2015, 00:45
Цитата Сообщение от lenarano Посмотреть сообщение
Мой герой и привидения в карте были как объекты-они в этом формате отображаются и как понять, что среди всего кода это мой герой?
Я использую Tiled чтобы в своей программе расставить объекты на свои места. В открытом TileSet вы можете кликнуть на любой тайл и увидеть его ID. Когда вы в своей программе считаете строки файла в двумерный массив, вы сможете во вложенном цикле перебирать все элементы массива и ставить объекты на свои места.

Добавлено через 4 минуты
Объекты вы создаёте в своей программе, а Tiled нужен, чтобы задать положения объектам. Конечно у Tiled много других возможностей, которые я пока не изучил, но даже просто для расстановки объектов он очень полезный.
1
2 / 2 / 2
Регистрация: 12.04.2014
Сообщений: 102
22.10.2015, 01:26  [ТС]
По волновому алгоритму, который я выложила я создам массив wayToPacMan[i][j] и считаю туда эти значения. Создам такой же размерности еще массив и инициализирую его нулями. После там мы указываем месторасположение моего-обьекта Героя и объекта Врагов. Как мне это указать? Что изменить в коде? Спрайты героя и врагов загружаются с другого изображения.

Добавлено через 1 минуту
C++
1
2
3
4
5
6
for(i=0; i<N; i++)
        for(j=0; j<M; j++)
        {
            if(wayToPacMan[i][j]=='G') {G.x=i; G.y=j;}
            if(wayToPacMan[i][j]=='S') {S.x=i; S.y=j;}
        }
Добавлено через 13 минут
Еще хотела спросить как их передавать в двумерный массив. Я это представляю как
C++
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
sf::String TileMap[HEIGHT_MAP]={
"000000000000000000000000000",
"0                         0",
"0  0000             0000  0",
"0  0  0             0  0  0",
"0  0  0             0  0  0",
"0  0000             0000  0",
"0                         0",
"0  0000             0000  0",
"0  0  0             0  0  0",
"0  0  0             0  0  0",
"0  0000             0000  0",
"s        mmmmmmmmm        0",
"s                         0",
"s                         0",
"0  0000             0000  0",
"0  0  0             0  0  0",
"0  0  0             0  0  0",
"0  0000             0000  0",
"0                         0",
"0  0000   k         0000  0",
"0  0  0   k     k   0  0  0",
"0  0  0             0  0  0",
"0  0000             0000  0",
"0                         0",
"000000000000000000000000000",
};

А тут как? Можно пример? Оно тоже разбито по строкам?
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,965
Записей в блоге: 232
22.10.2015, 01:28
Цитата Сообщение от lenarano Посмотреть сообщение
По волновому алгоритму, который я выложила я создам массив wayToPacMan[i][j] и считаю туда эти значения. Создам такой же размерности еще массив и инициализирую его нулями. После там мы указываем месторасположение моего-обьекта Героя и объекта Врагов. Как мне это указать? Что изменить в коде? Спрайты героя и врагов загружаются с другого изображения.
Вот тут лично я пока помочь не могу, так как у меня такая же ситуация: не сделал AI для врагов. Я пока что сделал простых врагов, которые двигаются по заранее определённым маршрутам, то есть для каждого врага есть свой массив Waypoints (то есть массив точек). Я делал по туториалу. Можете попробовать запустить мою демку:
Вложения
Тип файла: rar Packman (demo).rar (8.00 Мб, 1 просмотров)
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,965
Записей в блоге: 232
22.10.2015, 01:31
Цитата Сообщение от lenarano Посмотреть сообщение
Еще хотела спросить как их передавать в двумерный массив. Я это представляю как
Используйте числовой двумерный массив. Вы понимаете, что каждое число обозначает в файле CVS?
0
24 / 24 / 10
Регистрация: 17.12.2014
Сообщений: 72
22.10.2015, 07:47
По моему легче использовать TMXParser для загрузки карт, объектов и всего остального, чем использовать сырой csv. То есть использовать все возможности Tiled Map Editor. Немного нужно будет разобраться с форматом tmx. Документация.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2015, 07:47
Помогаю со студенческими работами здесь

Работа с Tiled Map, подключение xml файла
Создал карту в программе Tiled Map(делаю 2д игрушку). Формат файла XML/ Как теперь его использовать ? Как подключить карту? Интернет...

SFML + Tiled Map Editor + tinysml2 (трабл с версиями)
Здравствуйте, я сейчас разбираю уроки по SFML https://www.youtube.com/playlist?list=PLskEAOuS4gQMoAE68-71KRxQegr8rSw54 . Для создания...

Загрузка уровней в Unity из XML файла (Tiled Map Editor)
Хочу сделать простенький 2D платформер в Unity, в качестве тренировки (в дальнейшем планирую заняться разработкой метроидвании, но пока до...

Как загрузить карту, сделанную в Tiled Map Editor (в формате XML), в проект Visual Studio?
Здравствуйте, я разрабатываю игру, для нее сделал карту в Tiled Map Editor в формате XML, мне сказали скачать библиотеку TinyXML и...

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки )
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab () { int s1 = 0; int s2 =...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Камера 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, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru