játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5462
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2523

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2192
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Játék futtatása cd-rõl 2005.05.18 08:20


Ha gondoltatok már arra, hogy egy igazi, egész cd-s játékot irtok, ami csak akkor megy ha a cd bent van, akkor szükségetek lesz erre a kis kódra. Szerintem ezen kivül van még több módszer erre, de még nem találkoztam a többivel. Ezt a kis részletet a Quake II forrásából "vettem kölcsön" (kösz Carmack).

Szóval van egy játékunk, ami mondjuk már megtölt félig egy cd-t. Már irtunk is hozzá egy kis install progit, de azt szeretnénk, hogy a cd-rõl olvassa be az adatokat (pl. texturákat, hangokat...). Nem is lenne ezzel gond, de nem mindenkinek pl. az E a cd olvasója mint nekünk. Akkor ezt meg kellene tudakolni, forduljunk bátran öreg barátunkhoz a Windows-hoz.
Elõször is minden féleképpen be kell fûzni a kódba a windows.h fájlt (itt egy dos-os programot irunk az egyszerûség kedvéért):

Kód:
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <windows.h>


Eddig nem lett túlbonyolítva ugye?

Kód:
[sea]
int main()
{
    char drive[4];    //itt fogjuk tárolni a meghajtókat
    char test[256];   //ide másoljuk be a cd betûjét és a cd-n keresett
    //                 fájl nevét
    FILE *file;       //ellenõrzésre, hogy létezik-e a keresett fájl az
    //                 éppen tesztelt meghajtón

    drive[0] = 'c';   //a keresést a 'c' meghajtótól kezdjük
    drive[1] = ':';   //kell magyarázni??
    drive[2] = '';
    drive[3] = 0;     //a karakterlánc végét jelölõ 0

    for( drive[0] = 'c'; drive[0] <= 'z'; drive[0]++) //szépen sorra
    //megyünk a 'c'-tõl a 'z' meghajtóig
    {
        sprintf(test, "%sPCGuru.exe", drive);//összerakjuk a
        //karakterláncot (pl. "c:PCGuru.exe")
        file = fopen(test, "r"); //megpróbáljuk megnyitni a fájlt
        if(file) //ha megnyitottuk, akkor biztos van olyan fájl
        {
            fclose(file);     //zárjuk be a fájlt, úgyis csak eddig
            //kellett
            if(GetDriveType(drive) == DRIVE_CDROM) //ha a meghajtó
            //tipusa cd-rom, valószinûleg megtaláltuk a cd-n a
            //keresett fájlunkat
                cout<<"A pc guru cd a "<<drive<<" meghajtoban van!"<<endl;
                //kiirjuk, hogy melyik a meghajtó
                //betûje és már húzunk is innnen
        }
    }

    system("PAUSE");
    return 0;
}
[/sea]


Ha lefut már meg is van a cd, innnetõl már hivatkozhatunk is a meghajtóra.

A cikk MS Word doc formátumban

beast

Értékelés: 10.00

Új hozzászólás
bloodknife          2006.05.31 10:11
Szép Brada!