Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2011, 02:01   #1
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию PackMan

Всем доброй ночи.
Задали задание.Написать игру типа пакмэн.
цель игры заключается в том чтобы собрать на поле все имеющиеся бонусы, не попасться врагу, ну и при окончании уровня расставить пакмэну способности.
Застрял вот на чем:
1)Не получается поставить условие, чтоб если пакмэн наступил на бонус то бонус пропал, и после того как все бонусы собраны чтоб закончился уровень, и выдалось меню персонажа.
2)Это конечно же выставить движущихся врагов, при встрече с которыми должны отниматься жизни.(чёт не выходит расставить врага).
3)Помогите сделать так, чтоб при передвижении персонажа, не нужно было обновлять всё окно, (тоисть сделать так чтоб оно не мигало),
по моему делается как то с помощью дескриптора окна,(ток ни фига вообще не понял как)
За ранее благодарен.
(прикрепил 2 файла, исходный код и header)
на всякий случай и код.
Код:
#include "col.h"
//-------------------------------------------Глобальные переменные----------------------------------------//
	const int syze_y=20;
	const int syze_x=20;
	int face=2;
	int coor_y=0;
	int coor_x=0;
	int change=1;
	enum{empty=183,bonus=15,wall=35,enemy=1};

	struct character
	{
		int smile;
		int str;
		int stam;
		int hold;
		int hp;
		int score;

	};

	struct _enemy
	{
		int fac;
		int y;
		int x;

	};
//---------------------------------------Прототипы----------------------------------------------------------//
	void clearfield(int field[syze_y][syze_x]);
	void showfield(int field[syze_y][syze_x],character &);
	int GetControl();
	void SetAction(int );
	void SetBonuses(int field[syze_y][syze_x]);



//--------------------------------------------------------------------------------------------------------//
	
//-------------------------------------Маин---------------------------------------------------------------//
int main()
{
setlocale(LC_ALL,"Russian");
srand(time(NULL));
character  chr;
chr.smile=2;
chr.hp=2;
chr.score=0;
_enemy e;
e.fac=1;
e.x=10;
e.y=10;
int field[syze_y][syze_x];
		


clearfield(field);
SetBonuses(field);
showfield(field,chr);

int action;
do
{
	
	system("cls");
	showfield(field,chr);
	action=GetControl();
	SetAction(action);
	
	
	
	
	
}while(chr.score!=1);


cin.get();
return 0;
}
//------------------------------------------Описание------------------------------------------------------//
	

	void	clearfield(int field[syze_y][syze_x])
	{
		for(int i=0;i<syze_y;i++)
		{
			for(int k=0;k<syze_x;k++)
			{
				field[i][k]=empty;
			}
		}

	}
	void	showfield(int field[syze_y][syze_x],character & chr)
	{
		
		cout<<chr.hp<<endl;
		for(int i=0;i<syze_y;i++)
		{
			for(int k=0;k<syze_x;k++)
			{
				if(i==coor_y&&k==coor_x)
				{
					cout<<(char)chr.smile;
					
					//---------------------------------
					if(coor_y==1&&coor_x==3)
						field[1][3]=empty;
					
					if(coor_y==4&&coor_x==8)
						field[4][8]=empty;
					
					if(coor_y==6&&coor_x==13)
						field[6][13]=empty;
					
					if(coor_y==16&&coor_x==3)
						field[16][3]=empty;
					
					
					//---------------------------------
				}

				else
				color((char)field[i][k],11,0);
			}
			cout<<endl;
		}

		
		
	}
	int GetControl()
	{
		int s=getch();
		cin>>s;
		return s;
	}
	void SetAction(int code)
	{
		if(GetAsyncKeyState(VK_UP))
		{
			if(coor_y>0)
			coor_y--;
		}
		if(GetAsyncKeyState(VK_DOWN))
		{
			if(coor_y!=19)
				coor_y++;
		}
		if(GetAsyncKeyState(VK_LEFT))
		{
			if(coor_x>0)
				coor_x--;
		}
		if(GetAsyncKeyState(VK_RIGHT))
		{
			if(coor_x!=19)
				coor_x++;
		}
		
		
			

	}
	void SetBonuses(int field[syze_y][syze_x])
	{

			field[1][3]=bonus;
			field[4][8]=bonus;
			field[6][13]=bonus;
			field[16][3]=bonus;

	}
Вложения
Тип файла: txt main.cpp.txt (2.4 Кб, 119 просмотров)
Тип файла: txt col.h.txt (2.0 Кб, 117 просмотров)

Последний раз редактировалось revaldo666; 13.05.2011 в 04:18.
revaldo666 вне форума Ответить с цитированием
Старый 13.05.2011, 11:29   #2
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

с бонусами разобрался, надо было так.
Код:
if(field[coor_y][coor_x]==bonus)
						field[coor_y][coor_x]=empty;
а фот движение врага полностью забуксовал...
вот функция...может кто то поправит...буду благодарен...
Код:
void SetEnemy(int field[syze_y][syze_x], character & chr)
	{
		field[ey][ex]=enemy;
		if(ex<syze_x)
			ex=rand()%+1;
		if(ex>0)
			ex=rand()%-1;
		if(ey<syze_x&&ey>0)
			ey=rand()%+1;
		if(field[coor_y][coor_x]==enemy)
					{
						chr.hp--;
					}

	}

Последний раз редактировалось revaldo666; 13.05.2011 в 12:06.
revaldo666 вне форума Ответить с цитированием
Старый 13.05.2011, 13:53   #3
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

провозился с врагом ещё около часа...не хочет двигатся хоть об стену бейся...
revaldo666 вне форума Ответить с цитированием
Старый 13.05.2011, 14:50   #4
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

ну блин...помогите кто нибудь плиз..
revaldo666 вне форума Ответить с цитированием
Старый 07.06.2011, 20:31   #5
spsancti
Новичок
Джуниор
 
Регистрация: 07.06.2011
Сообщений: 1
По умолчанию

Могу продать свой пакман (моя курсовая была...) имеется редактор уровней, сбор бонусов, враги, генератор случайного уровня, красивая менюшка, все в цвете.

имеются _подробные_ комментарии!

Хочу примерно $20-25..
499_-_030_-_068-icq
spsancti вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание игры Packman AngelOfDeath Gamedev - cоздание игр: Unity, OpenGL, DirectX 17 27.08.2008 13:15
Packman на Delphi 7 GuVer Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 17.06.2007 17:09