goldsphere, а hge у тебя объявлен глобальной переменной? Ну и создается он не через new, а с помощью функции hgeCreate. И само собой что он должен создаваться до использования.
да, у меня получается такая иерархия файлов: в objClass.h подключены все инклюды и объявлена HGE *hge; , а objClass подключён к main FinderX - Android Аркада
Объявлять hge в хедере как внешнюю переменную не стоит. Можно попробовать в начале конструктора написать
Code
HGE *hge = hgeCreate(HGE_VERSION);
и дальше использовать его как обычно. hgeCreate здесь должен возвратить указатель на тот экземпляр hge, который ты создал в main. Всё гениальное просто. И хреново работает.
Попробовал ваши варианты, иногда возникает ситуация, что он таки запускается, но нечего не происходит, более того прога не выключается, даже завершением процесса, только перезагрузка компа(или если поезёт, остановкой отладки), но такое происходит только если в коде есть какие-либо манипуляции с объектом Obj. Я был бы очень благодарен если бы вы исправили мой код класса в исходнике и прокомментировали. FinderX - Android Аркада
Вот работающий код, в комментариях не нуждается, как сделать, я описал выше.
увы и ах, но у меня он всё равно вылетает, только уже после запуска экрана и логотипа hge, и вылетает уже не на получении текстуры а на получении ширины спрайта. Но раз у вас робит, то я лучше попробую переустановить студию
Добавлено (21.11.2012, 12:05) --------------------------------------------- Что-то не помагает(
Добавлено (22.11.2012, 14:49) --------------------------------------------- Вот, что вылетает:
Добавлено (22.11.2012, 15:18) --------------------------------------------- Вылет на присваивании текстуры я решил. Если кому интересно вот так:
Текстура должна лежать рядом с экзешником. Она у тебя не загружается и при вызове GetHeight для несуществующей текстуры прога крэшится. Короче, положи текстуру в папки Debug/Release, где у тебя exe Многие вопросы по Windows отпадут, если посмотреть тут
int A[8]={2,-3,5,7,-1,0,9,2}; int main () { int min1=A[9]; int min2=A[9]; int i; for (i=1; i<8; i++) if (min1>A[i]) min1=A[i]; for (i=1; i<8; i++) if (min2>A[i]) min2=A[i]; printf("Min elements=%d\t%d\n", min1, min2); return 0; }
sem6666, вот напечатал прогу для упорядковувания массива от меньшего значения к большему.Думаю додумаешься как отсюда вывести второе найменьшее число:
Code
#include <iostream> #include <cmath> using namespace std;
int main(){ int temp; //переменная которая будет хранить промежуточное значение елемента масива int arr[10]; //масив с числами
for (int i=0;i<9;i++){ //заполняем случайными числами arr[i]=rand(); }
for (int i=0;i<9;i++){ //выводим полученные значения массива cout<<arr[i]<<" "; } cout<<"\n"; for (int i=0;i<9;i++){ //в этом цикле мы упорядочим массив(числа будут распологатся от меньшего к большему) if (arr[i]>arr[i+1]){ //если текущий елемент массива(i) больше чем следующий(i+1) то меняем их местами. (далее принцип) temp=arr[i]; //помещаем значение текущего елемента в нашу спец. переменную arr[i]=arr[i+1]; //присваеваем текущему елементу значение следующего елемента arr[i+1]=temp; //получаем значение текущего елемента и присваиваем его следующему елементу } } for (int i=0;i<9;i++){ // выводим на екран упорядоченный масив cout<<arr[i]<<" "; } return 0; }
В том то и дело, что надо сделать основываясь на том коде. Так как препод сказал, если будет использоваться что то что идёт после третьей главы книги, просто завалит на зачёте. А arr и cout, это с пятой главы примерно. Книга Керниган Б.,Ритчи Д. Программирование на C (2-е издание, 2009). Есть как раз по упорядочению код
#include "stdafx.h" #include <stdio.h>
int A[8]={-1,0,3,-4,5,7,9,2}; int main () { int v,i,j; for (i=0; i<7; i++) for (j=0; j<7; j++) if (A[j]>A[j+1]){ v=A[j]; A[j]=A[j+1]; A[j+1]=v; } for (i=0; i<8; i++) printf ("%d\t", A[i]); printf ("\n"); return 0; }
Но само задание на нахождение двух наименьших чисел.
sem6666, твой синтаксис просто убивает программу , где {} ? у hero564, C++ . arr - название массива , cout - вывести из потока ( С++) .
Ты начинающий , но код писать не буду . 1 назнач мин1 и мин2 - 0 элементами массива. 2 находищь мин1 (цикл с условием) 3 находишь ещё одно мин , (цикл с условием+чтоб мин2 !=мин 1) " Кто в страхе живет, тот и гибнет от страха. " Леонардо Да Винчи
Сообщение отредактировал WPhoeniXW - Суббота, 24 Ноября 2012, 02:33
Текстура должна лежать рядом с экзешником. Она у тебя не загружается и при вызове 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
int A[8]={2,-3,5,7,-1,0,9,2}; int main () { int min1=A[9]; int i; for (i=1; i<8; i++) if (min1>A[i]) min1=A[i]; printf("Min elements=%d\n", min1); return 0; }
И вот задание, модифицировать его, чтоб найти не одно наименьшее, а два. Добавляю:
Code
int A[8]={2,-3,5,7,-1,0,9,2}; int main () { int min1=A[9]; int min2=A[9]; int i,j; for (i=1; i<8; i++) if (min1>A[i]) min1=A[i]; { for (j=1; j<8; j++) if (min2>A[j]) min2=A[j]; printf("Min elements=%d\t%d\n", min1, min2); return 0;} }
А вот как сделать чтоб второй минимум выдавал, так и не пойму. Так равные получаются.
Сообщение отредактировал sem6666 - Суббота, 24 Ноября 2012, 15:48