Необходима помощь в освоении азов создания игр
|
|
redinard | Дата: Вторник, 25 Октября 2011, 18:07 | Сообщение # 21 |
постоянный участник
Сейчас нет на сайте
| ивеняюсь,это я когда на сайт выкладывал ошибку допустил,компилятор мне следуюющее выдаёт Quote [Linker error] undefined reference to `menuNamespace::menu(std::string*, int)'
Я белый и пушистый но имею когти и зубы
|
|
| |
0x90 | Дата: Вторник, 25 Октября 2011, 18:11 | Сообщение # 22 |
участник
Сейчас нет на сайте
| Добавьте к проекту свой файл MenuUtility.сpp
|
|
| |
redinard | Дата: Вторник, 25 Октября 2011, 18:18 | Сообщение # 23 |
постоянный участник
Сейчас нет на сайте
| спасибо,это я упустил ,но проблемма ещё не решина ,ещё осталось: Quote pirateTown.o: No such file or directory.
Я белый и пушистый но имею когти и зубы
|
|
| |
0x90 | Дата: Вторник, 25 Октября 2011, 18:23 | Сообщение # 24 |
участник
Сейчас нет на сайте
| Напиши точные названия всех *.h и *.cpp файлов, которые ты используешь в проекте.
|
|
| |
redinard | Дата: Вторник, 25 Октября 2011, 18:31 | Сообщение # 25 |
постоянный участник
Сейчас нет на сайте
| MenuUtility.cpp MenuUtility.h pirateTown.cpp pirateTown.hДобавлено (25.10.2011, 18:31) --------------------------------------------- есть ещё несколько побочных файлов которые создаёт Dev C++ .exe файл в принципе создаётся но игра вылитает через некоторое время
Я белый и пушистый но имею когти и зубы
|
|
| |
0x90 | Дата: Вторник, 25 Октября 2011, 18:32 | Сообщение # 26 |
участник
Сейчас нет на сайте
| Town или Tawn? В любом случае делаю предположения, что этот файл был недавно переименован, а линкер ищет объектные файлы со старым названием. Тебе нужно сделать rebuild.
Сообщение отредактировал 0x90 - Вторник, 25 Октября 2011, 18:34 |
|
| |
redinard | Дата: Вторник, 25 Октября 2011, 18:42 | Сообщение # 27 |
постоянный участник
Сейчас нет на сайте
| попробовал,до одного места ...
Я белый и пушистый но имею когти и зубы
|
|
| |
0x90 | Дата: Вторник, 25 Октября 2011, 19:43 | Сообщение # 28 |
участник
Сейчас нет на сайте
| В любом случае код рабочий, ты что-то с IDE накосячил. Собирай VC
|
|
| |
redinard | Дата: Вторник, 25 Октября 2011, 22:11 | Сообщение # 29 |
постоянный участник
Сейчас нет на сайте
| А для такого кода какая из версий Microsoft Visual C++ подойдёт (ну конечно кроме Microsoft Visual C++ 6.0-она то я и так знаю что подходит) ?
Я белый и пушистый но имею когти и зубы
|
|
| |
0x90 | Дата: Вторник, 25 Октября 2011, 23:38 | Сообщение # 30 |
участник
Сейчас нет на сайте
| Любая
|
|
| |
redinard | Дата: Среда, 26 Октября 2011, 20:02 | Сообщение # 31 |
постоянный участник
Сейчас нет на сайте
| я что то такое слышал что новые версии требуют другую интерпритацию кода ... Добавлено (26.10.2011, 02:42) --------------------------------------------- очередной код с ошибкой : Code //Dragon.cpp #include <string> #include <ctime> #include <cstdlib> #define MAX(a,b) a>b? a:b using namespace std; class Dragon { private: int speed; string name; int hitPoints; int armour; int treasure; int clawDamage; int size; protected: Dragon(int theSize); int getArmour(){return armour;} int& getHitPoints(){return hitPoints;} int getClawDamage(){return clawDamage;} int getSize(){return size;} virtual int attack(int targetArmour,int specialDamage); public: virtual int attack(int targetArmour)=0; virtual void defend(int damage)=0; int getTreasure(){return treasure;} virtual string getName(){return name;} int getSpeed(){return speed;} bool isAlive(){return hitPoints>0;} }; Dragon::Dragon(int theSize): size(theSize) { if(size<1||size>4) size=3; clawDamage=2*size; speed=3*size; hitPoints=4*size; armour=size; treasure=1000*size; srand(time(0)); } int Dragon::attack(int targetArmour,int specialDamage) { int useSpecial=rand()%2;//0 или 1 int damage; if (useSpecial) damage = specialDamage; else damage = getClawDamage(); return MAX(damage - targetArmour,0); } Code //RedDragon.cpp class RedDragon:public Dragon { private: int fireDamage; public: RedDragon(int theSize); int attack(int targetArmour); void defend(int damage); string getName(){return "Красный дракон";} }; RedDragon::RedDragon(int theSize): Dragon(theSize) { fireDemage=4*getSize(); } int RedDragon::attack(int targetArmour) { return Dragon::attack(targetArmour,fireDamage); } void RedDragon::defend(int damage) { getHitPoints()-=(damage-getArmour())/3; } Code //BlackDragon class BlackDragon:public Dragon { private: int fireDamage; public: BlackDragon(int theSize); int attack(int targetArmour); void defend(int damage); string getName(){return "Чёрный дракон";} }; BlackDragon::BlackDragon(int theSize): Dragon(theSize) { poisonDemage=getSize(); } int RedDragon::attack(int targetArmour) { return Dragon::attack(targetArmour,poisonDamage); } void BlackDragon::defend(int damage) { getHitPoints()-=damage-getArmour(); } Code //BlueDragon class BlueDragon:public Dragon { private: int iceDamage; public: RedDragon(int theSize); int attack(int targetArmour); void defend(int damage); string getName(){return "Синий дракон";} }; BlueDragon::BlueDragon(int theSize): Dragon(theSize) { fireDemage=3*getSize(); } int BlueDragon::attack(int targetArmour) { return Dragon::attack(targetArmour,iceDamage); } void BlueDragon::defend(int damage) { getHitPoints()-=(damage-getArmour())/2; } Code //DragonLord.cpp #include <iostream> #include <ctime> #include <cstdlib> #include "Dragon.cpp" #include "RedDragon.cpp" #include "BlueDragon.cpp" #include "BlackDragon.cpp"
using namespace std; int menuChoise(); int main(void) { srand(time(0)); Dragon*dragons[3]; int hp=15; int armour=2; int tempArmour; int tempAttack; dragons[0]=new RedDragon(rand()%4+1); dragons[1]=new BlackDragon(rand()%4+1); dragons[2]=new BlueDragon(rand()%4+1); Dragons*d=dragons[rand()%3]; cout<<"Добро пожаловать благородный рыцарью\n" <<"Ты должен спасти принцессу." <<"Её похитил " <<d->getName()<<".\n" <<"Ты должен победить дракона.\n"; cout<<"воя сила: "<<hp<<endl; while (d->isAlive()&& hp>0) { int choise=menuChoise(); int (choise==3)goto RUN; else if (choise==1) { tempAttack=rand()%16+5; tempArmour=armour; } else { tempAttack=rand()%11; tempArmour=armour+4; } hp-=d->attack(armour); d->defend(rand()%16-5); cout<<"\nТы наносишь мощьный удар и ущерб" <<tempAttack<<" damage.\n"; cout<<"Твоя сила: "<<hp; } if(d->isAlive()) cout<<"\nТы побеждён" <<"могущественным драконом.\n"; else cout<<"\n\nТы победил дракона !" <<"Поздравляем\n" <<"принцесса спасена.\n"; return 0; } int menuChoise() { int choise; do{ cout<<endl <<"[1]Атаковать\n" <<"[2]Оборонятся\n" <<"[3]Бежать\n"; cin>>choise; }while(choise<1 && choise>3); return choise; } Добавлено (26.10.2011, 02:50) --------------------------------------------- конкретнее меня волнуе вот эта строка: Quote class RedDragon:public Dragon Добавлено (26.10.2011, 20:02) --------------------------------------------- Скачал исходники к этой книге,исходник этой программы откомпилировал в Microsoft Visual C++ 6.0 и в Dev C++ ,и оба компилятора мне выдают ошибки,причём разные ...
Я белый и пушистый но имею когти и зубы
|
|
| |
Els | Дата: Четверг, 27 Октября 2011, 10:22 | Сообщение # 32 |
почетный гость
Сейчас нет на сайте
| Ну то дай нам знать какие ошибки выдеет VS и DEV C++ , и могбы взять по новее VS хотябы версию 8.0 , или ты просто взял потому что авторы этой книги работают именно в ней?
|
|
| |
AGDev | Дата: Четверг, 27 Октября 2011, 10:56 | Сообщение # 33 |
был не раз
Сейчас нет на сайте
| Quote //DragonLord.cpp
int choise=menuChoise(); int (choise==3)goto RUN; ///должно быть if (choise==3) goto RUN; else if (choise==1) { tempAttack=rand()%16+5; tempArmour=armour; } else { tempAttack=rand()%11; tempArmour=armour+4; }
|
|
| |
redinard | Дата: Четверг, 27 Октября 2011, 16:55 | Сообщение # 34 |
постоянный участник
Сейчас нет на сайте
| Quote (Els) Ну то дай нам знать какие ошибки выдеет VS и DEV C++ , и могбы взять по новее VS хотябы версию 8.0 , или ты просто взял потому что авторы этой книги работают именно в ней? В действительности авторы предлогают компилировать в Code Warior,но в содержании книги автор признаётся что работает в Microsoft Visual C++ 6.0,я конечно могу взять более новую версию,но мне надо уверенность что новые версии без проблемм поддержат старый код,потому что я слышал что в новых версиях идёт новый стандарт кода,к примеру я в универе весь первый курс компилировал код в BORLAND-е,и даже в библиотеках Microsoft Visual C++ 6.0 уже нет таких полезных вещей как clrscr(); и т.п. Так что остаются вопросы: Можно ли переходить на более новые версии не боясь что прийдёрся по новому интерпритировать код ? Не создадут ли они проблеммы при работе с DirectX SDK ? И в чём же ощутимое превосходство более новых версий ?
Я белый и пушистый но имею когти и зубы
|
|
| |
Els | Дата: Четверг, 27 Октября 2011, 17:41 | Сообщение # 35 |
почетный гость
Сейчас нет на сайте
| Quote (redinard) Не создадут ли они проблеммы при работе с DirectX SDK ? C DX проблем не будет Quote (redinard) И в чём же ощутимое превосходство более новых версий ? Более новее версии дают новые возможности (думаю это понятно) , добавляются новые библиотеки и некоторые исключаются
|
|
| |
redinard | Дата: Четверг, 27 Октября 2011, 18:00 | Сообщение # 36 |
постоянный участник
Сейчас нет на сайте
| Quote (redinard) Можно ли переходить на более новые версии не боясь что прийдёрся по новому интерпритировать код ? а как насчёт этого вопроса ?
Я белый и пушистый но имею когти и зубы
|
|
| |
05142 | Дата: Четверг, 27 Октября 2011, 18:31 | Сообщение # 37 |
постоянный участник
Сейчас нет на сайте
| redinard, должно работать.
mecinvader
|
|
| |
Els | Дата: Пятница, 28 Октября 2011, 00:04 | Сообщение # 38 |
почетный гость
Сейчас нет на сайте
| Quote (redinard) Можно ли переходить на более новые версии не боясь что прийдёрся по новому интерпритировать код ? Можеш быть уверенным , все будет работать
|
|
| |
redinard | Дата: Воскресенье, 30 Октября 2011, 13:44 | Сообщение # 39 |
постоянный участник
Сейчас нет на сайте
| ОК попробую ... ) Добавлено (30.10.2011, 12:44) --------------------------------------------- Установил Microsoft Visual Studio 2008,и уже на простейшем коде который ранее работал появились ошибки ... Code #include <iostream> #include <conio.h>
int main(void) { cout<<"Добро пожаловать.Три испытания чести." "\nзлой маг похител девицу,и" "её судьба в твоих руках" "\nон предлогает пройти тебе 3 испытания" "чести в его роковом лабиринте"; bool goldTaken,diamondsTaken,killedByDragon; cout<<"\n\nТы входишь в первую комнату." "\nЗдесь столько золота что ты едва веришь своим глазам" "\nВозмёшь ли ты золото(1-да,0-нет)?"; cin>>goldTaken; if(goldTaken) cout<<"\nЗолото остаётся тебе,но" "ты провалил первое испытание" "\nИгра окончена.\n\n"; else { cout<<"\n\nПоздравляем ты прошол первое испытание чести !" "\nТы переходишь во вторую комнату." "она полна брилиантов" "\nВозмёшь ли ты брилианты" "(1-да,0-нет)?"; cin>>diamondsTaken; if(diamondsTaken) cout<<"Брилианты достаются тебе," "но ты провалил второе испытание" "\nЕвоя жадность очивидна." "\nИгра окончена.\n\n"; else { cout<<"Поздравляем ,ты" "прошол первые два испытания чести" "\n\nТы входишь в третью комнату." "\nНа несчаствонго крестянина напал дракон !" "\nДвигатся дальше не обращая на них внимания " "(1-да,0-нет)?"; cin>>killedByDragon; if(killedByDragon) cout<<"\nТы пиытаешся проскользнуть мимо" "и дракон тебя замечает" "\nОдним огненым дуновением " "он превращает тебя в пепел. Ты мёртв" "\nИгра окончена\n\n"; else cout<<"Поздравляем ты прошол все 3 испытания!\n\n" "Конец.\n\n"; } } getch(); return 0; } Quote 1>------ Построение начато: проект: 13, Конфигурация: Debug Win32 ------ 1>Компиляция... 1>656.cpp 1>c:\users\redinard\desktop\13\13\656.cpp(6) : error C2065: cout: необъявленный идентификатор 1>c:\users\redinard\desktop\13\13\656.cpp(12) : error C2065: cout: необъявленный идентификатор 1>c:\users\redinard\desktop\13\13\656.cpp(15) : error C2065: cin: необъявленный идентификатор 1>c:\users\redinard\desktop\13\13\656.cpp(15) : warning C4804: >>: небезопасное использование типа 'bool' в операции 1>c:\users\redinard\desktop\13\13\656.cpp(17) : error C2065: cout: необъявленный идентификатор 1>c:\users\redinard\desktop\13\13\656.cpp(22) : error C2065: cout: необъявленный идентификатор 1>c:\users\redinard\desktop\13\13\656.cpp(28) : error C2065: cin: необъявленный идентификатор 1>c:\users\redinard\desktop\13\13\656.cpp(28) : warning C4804: >>: небезопасное использование типа 'bool' в операции 1>c:\users\redinard\desktop\13\13\656.cpp(30) : error C2065: cout: необъявленный идентификатор 1>c:\users\redinard\desktop\13\13\656.cpp(36) : error C2065: cout: необъявленный идентификатор 1>c:\users\redinard\desktop\13\13\656.cpp(43) : error C2065: cin: необъявленный идентификатор 1>c:\users\redinard\desktop\13\13\656.cpp(43) : warning C4804: >>: небезопасное использование типа 'bool' в операции 1>c:\users\redinard\desktop\13\13\656.cpp(45) : error C2065: cout: необъявленный идентификатор 1>c:\users\redinard\desktop\13\13\656.cpp(52) : error C2065: cout: необъявленный идентификатор 1>Журнал построения был сохранен в "file://c:\Users\RedinarD\Desktop\13\13\Debug\BuildLog.htm" 1>13 - ошибок 11, предупреждений 3 ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Я белый и пушистый но имею когти и зубы
|
|
| |
BOOM | Дата: Понедельник, 31 Октября 2011, 08:06 | Сообщение # 40 |
I am the creator of ADE
Сейчас нет на сайте
| std::cout; либо в начале вноси using namespace std;
Так как компилятор не находит cout и cin, которые находятся в именном пространстве std.
______________________________ Я вернулся, и это чудо. ______________________________
|
|
| |