А зачем, кстати, покупать книги, когда проще скачать в электронном варианте? Всё равно лучше каждый новый пункт укреплять в среде разработки, да и в некоторых учебниках есть задачи для самоконтроля, некоторые из них тоже вручную программировать придется. То есть, такие книги читать лучше сидя за компьютером, я думаю)
Ага, и портить глаза) В таком случае купить себе электронную книгу и читать с неё, там хоть экран статичен. FinderX - Android Аркада
Добавлено (16.11.2012, 09:14) --------------------------------------------- Или SDL, он бесплатен, является чем-то между GAPI и движком, очень легкий. Но позволяет только 2д
со словами Нарушение прав доступа при чтении "0x00000000". 0x00000000 - это у нас переменная hge типа *HGE, не могу понять почему он вылетает, помогите. FinderX - Android Аркада
Сообщение отредактировал goldsphere - Суббота, 17 Ноября 2012, 16:29
goldsphere, если ты объявишь один лишь указатель, то выделится память только под указатель, а не под данные, на которые он ссылается. А потом ты пытаешься обратиться к этим данным, что и приводит к ошибке доступа. Должна быть какая-то функция инициализации или что-то в этом духе, руководство по движку тебе в помощь.
Дело в том, что все функции вырывающиеся через hge работают. Если текстуру, как отдельную переменную объявить(не в классе, а допустим в main),то всё нормально робит. Пробую HGE *hge = new(HGE); , подчёркивает (HGE) и говорит, что Нельзя использовать объект абстрактного класса HGE
Quote (MR_Borg)
goldsphere, у вас загрузка текстуры объявлена позже создания спрайта, переставьте местами.
goldsphere, а hge у тебя объявлен глобальной переменной? Ну и создается он не через new, а с помощью функции hgeCreate. И само собой что он должен создаваться до использования.
да, у меня получается такая иерархия файлов: в objClass.h подключены все инклюды и объявлена HGE *hge; , а objClass подключён к main FinderX - Android Аркада
Попробовал ваши варианты, иногда возникает ситуация, что он таки запускается, но нечего не происходит, более того прога не выключается, даже завершением процесса, только перезагрузка компа(или если поезёт, остановкой отладки), но такое происходит только если в коде есть какие-либо манипуляции с объектом Obj. Я был бы очень благодарен если бы вы исправили мой код класса в исходнике и прокомментировали. FinderX - Android Аркада
1. Вводится последовательность из n целых чисел. найти два наименьших числа;
#include <iostream>
Code
using namespace std; const int SIZE = 10; int main() { int arr[SIZE], min; for (int i=0;i<SIZE;++i) { cin>>arr[i]; } min = arr[0]; for (int i=0;i<SIZE;++i) { if(min<arr[i]) min=arr[i]; } cout<<min; system("PAUSE>>VOID"); return 0; }
Quote (sem6666)
2. Дан массив A размера N. Найти: минимальный элемент из его элементов с четными номерами: A2, A4, A6, … ;
Code
#include <iostream>
using namespace std; const int SIZE = 10; int main() { int A[SIZE], min; for (int i=0;i<SIZE;++i) { cin>>A[i]; } min = A[2]; for (int i=0;i<SIZE;++i) { if(i%2==0) if(A[i]<min) min=i; } cout<<min; system("PAUSE>>VOID"); return 0; }
Вот работающий код, в комментариях не нуждается, как сделать, я описал выше.
увы и ах, но у меня он всё равно вылетает, только уже после запуска экрана и логотипа hge, и вылетает уже не на получении текстуры а на получении ширины спрайта. Но раз у вас робит, то я лучше попробую переустановить студию
Добавлено (21.11.2012, 12:05) --------------------------------------------- Что-то не помагает(
Добавлено (22.11.2012, 14:49) --------------------------------------------- Вот, что вылетает:
Добавлено (22.11.2012, 15:18) --------------------------------------------- Вылет на присваивании текстуры я решил. Если кому интересно вот так:
Текстура должна лежать рядом с экзешником. Она у тебя не загружается и при вызове GetHeight для несуществующей текстуры прога крэшится. Короче, положи текстуру в папки Debug/Release, где у тебя exe
И всего-то? Я неделю мучил) Спасибо огромное. На всякий случай залатаю этот баг
Добавлено (24.11.2012, 15:13) --------------------------------------------- У меня такая ситуация, надо считать с файла 2 числа и объявить двухмерный массив с соответствующими размерами, однако так можно делать только с константами, а в константы соответственно не считать значений, есть ли способ решить мою проблему или хотя бы обойти?
#include<fstream> #include<iostream> using namespace std;
int main() { ifstream f1 ("map.nzm"); int x, y; f1>>x>>y; int n[9][2]; for(int j=0;j<y;++j) for(int z=0;z<x;++z) f1>>n[j][z]; for(int j=0;j<y;++j) { cout<<endl; for(int z=0;z<x;++z) { cout<<n[j][z]; } } f1.close(); cin.get(); return 0; }
содержимое map.nzm:
Code
9 2 1 2 0 3 3 2 2 3 1 1 2 0 3 3 2 2 3 1
Выдаёт 1212033 1203331 Как видите первая строчка вывелась неправильно, я отследил и получается что сначала считываются первые 2 числа со второй строчки, потом 2 числа с 3(на первую пока не обращайте внимание, она относится к предыдущему вопросу), так собственно почему и как исправить? Попробовал с 5 строками(такими же), правильно вывело только 5-ую( остальные такие : 120331203 P.S Надеюсь я тут не надоел со своими вопросами, а то я уже предвкушаю, что ошибка будет в какой-то мелочи(а так и будет) )) ================================================================================= вопрос решён) FinderX - Android Аркада
Сообщение отредактировал goldsphere - Воскресенье, 25 Ноября 2012, 10:59