Я понимаю что поздно,ну лучшее поздно чем никогда Глава 1 Создание Мира
Откройте Examples/Tutorials/Tutorial1/tutorial1_win.dsp через Microsoft Visual C (MSVC), Потом Нажмите 'Build' Меню и выберите 'Set Active Configuration',а в "Set Active Configuaration "Выберите Select the "Win32 D3D8 Debug" Конфигурацию ..Соберите проект. Все Теперь вы готовы ...
Компилируем проект ,если нет ошибок читаем дальше Всё мы сделали загрузку DFF файлов. Теперь ищем функцию AttachInputDevices() в win/events.c файле, Посмотрите на эту функцию сейчас
Теперь компилируем,запускаем,и нажимаем F1 должен появиться объект. Что бы Удалить Объект при закрытие программы,делаем следующие Ищем Terminate3D() в main.c, и перед ним добавляем
и в функцию Terminate3d добавьте линию вызова этой функция (destoryclumpCb)
Код
static void Terminate3D(void) { /* Close or destroy RenderWare components in the reverse order they */ /* were opened or created... */ RpWorldForAllClumps(World, _destroyClumpCB, NULL);
Direct = RpLightCreate(rpLIGHTDIRECTIONAL); if (Direct) { RwFrame *f = RwFrameCreate(); RpLightSetFrame(Direct, f); RpWorldAddLight(World, Direct); }
}
Функцию добавили ну её надо вызвать ... в Initialize3D() добавим вызов этой функции
Код
/* Create an empty world if not loading a RWS... */ World = CreateWorld(); if( World == NULL ) { RsErrorMessage(RWSTRING("Cannot create world.")); return FALSE; } /* Create the lights */ CreateLights(); /* Create a camera using the democom way... */ Camera = CreateCamera(World);
Потом добавим функцию для удаление света По аналоги с функции для удаление объектов добавляем функцию
Код
static void DestroyLights() { if (Direct) { RwFrame *f; RpWorldRemoveLight(World, Direct); f = RpLightGetFrame(Direct); RpLightSetFrame(Direct, NULL); RwFrameDestroy(f); RpLightDestroy(Direct); Direct = NULL; }
if (Ambient) { RpWorldRemoveLight(World, Ambient); RpLightDestroy(Ambient); Ambient = NULL; }
}
А дальше вызовите эту функцию в Terminate3D(), также как вызвали и RpWorldForAllClumps()
Дополнение 1 Туториала l
Так как это конец 1 главы ,значит и Tutorial1.dsp,мы будем разбирать файлы ,и начнём с main.c и с функцие CreateWorld(Void)
camera = CameraCreate(RsGlobal.maximumWidth, RsGlobal.maximumHeight, TRUE);//Создаём камеру if( camera ) { RwCameraSetNearClipPlane(camera, 0.1f);//Указываем качество рядом RwCameraSetFarClipPlane(camera, 30.0f);//Указываем качество далеко
RpWorldAddCamera(world, camera);//Добавляем камеру в мир
RsGlobal.appName = RWSTRING("RenderWare Graphics Tutorial One");//Название проекта
return TRUE; }
return FALSE; }
Код
static RwBool InitializeMenu(void) { static RwChar fpsLabel[] = RWSTRING("FPS_F");//Водим Название Пункта меню,в данном случае кол фпс
if( MenuOpen(TRUE, &ForegroundColor, &BackgroundColor) )//если меню открыто { MenuAddEntryBool(fpsLabel, &FPSOn, NULL);//Добавляем пункт меню,FPSOn это переменная типа bool
а вот список замен...кому нужен будет(взято с Оригинального туториала)
Код
rwID_CAMERA RwCamera chunk. See RwCameraStreamRead rwID_TEXTURE RwTexture chunk. See RwTextureStreamRead rwID_MATERIAL RpMaterial chunk. See RpMaterialStreamRead. rwID_WORLD RpWorld chunk. See RpWorldStreamRead. rwID_SPLINE RpSpline chunk. See RpSplineStreamRead rwID_MATRIX RwMatrix chunk. See RwMatrixStreamRead rwID_GEOMETRY RpGeometry chunk. See RpGeometryStreamRead. rwID_CLUMP RpClump chunk. See RpClumpStreamRead. rwID_LIGHT RpLight chunk. See RpLightStreamRead. rwID_ATOMIC RpAtomic chunk. See RpAtomicStreamRead rwID_TEXDICTIONARY RwTexDictionary - platform specific texture dictionary. See RwTexDictionaryStreamRead. rwID_IMAGE RwImage chunk. See RwImageStreamRead rwID_ANIMANIMATION RtAnimAnimation chunk. See RtAnimAnimationStreamRead. rwID_HANIMANIMATION RtAnimAnimation chunk. For backwards compatibility. See rwID_ANIMANIMATION. rwID_TEAM RpTeam chunk. See RpTeamStreamRead rwID_DMORPHANIMATION RpDMorphAnimation - delta morph animation chunk. See RpDMorphAnimationStreamRead rwID_TEAMDICTIONARY RpTeamDictionary chunk. See RpTeamDictionaryStreamRead rwID_PITEXDICTIONARY RwTexDictionary - platform independent texture dictionary. See RtPITexDictionaryStreamRead. rwID_TOC RtTOC chunk. See RtTOCStreamRead rwID_PRTSTDGLOBALDATA RpPrtStdEmitterClass, RpPrtStdParticleClass and RpPrtStdPropertyTable chunks. See RpPrtStdEClassStreamRead, RpPrtStdPClassStreamRead RpPrtStdPropTabStreamRead and RpPrtStdGlobalDataStreamRead rwID_PATCHMESH RpPatchMesh chunk. See RpPatchMeshStreamRead rwID_UVANIMDICT UV anim dictionary chunk. See RpUVAnimGetDictSchema rwID_ENVIRONMENT RpEnvironment chunk is used internally to convey art package background < settings to the Visualizer.
Надеюсь урок поможет....
Извините если не в тот раздел ,просто не знал в какой раздел добавить .. Уроки будут добавляется.
Добавлено (27.04.2013, 10:04) --------------------------------------------- Добавил урок по Программированию загрузчика текстур....и других загрузчиков...