Par dotazu k DirectX a C++ obecne – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Par dotazu k DirectX a C++ obecne – C / C++ – Fórum – Programujte.comPar dotazu k DirectX a C++ obecne – C / C++ – Fórum – Programujte.com

 

13. 1. 2008   #1
-
0
-

1) Je nejaka fuknce na otoceni pohledu na nejaky uhel? Ja nasel akorat D3DXMatrixLookAtLH a to dela otoceni na bod. A na to abych si delal funkci, ktera by vytvorila nejaky dummy bod a otocila pohled na nej jsem dost liny :)
2) Co znamena kdyz je nekde pred stringem napsano L? Treba: L"blabla"
3) Co znamena kdyz je za nejakym cislem f? Treba: 10.0f
4) Co znamena kdyz jsou nekde dve hvezdicky? Treba (void**)&p_Vertices?

To je asi zatim vsechno, myslim ze brzy pribydou dalsi :P

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
AdamHlavatovic0
Stálý člen
13. 1. 2008   #2
-
0
-

To CommanderZ : 2) to znameza ze string sa sklada z sirokych znakov (UTF16)
3) 10.0f znamena 10.0 float
4) int ** ppInt -> to je pointer na pointer na premennu typu int a to vase (void **)&p_Vertices je to iste, adresu ukazatela na p_Vertices pretipujete na adresu adresy typu void

Nahlásit jako SPAM
IP: 217.73.16.–
13. 1. 2008   #3
-
0
-

Diky. Jak ale muze byt adresa adresy? K cemu je to dobre?

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
nickJartin0
Návštěvník
13. 1. 2008   #4
-
0
-

To CommanderZ : adresa adresy, neboli pointer na pointer, lze napriklad pouzit jako ukazatel na 2rozmerne pole.

Nahlásit jako SPAM
IP: 80.188.253.–
nickJartin0
Návštěvník
13. 1. 2008   #5
-
0
-

To CommanderZ : Ad 1) jediny jiny zpusob, ktery me napada, jak otocit pohled, nez pomoci zminene funkce, je pouzit globalni transformace. Ale to znam z OpenGL, v D3D s tim zkusenosti nemam. Pokud v D3D existuje neco jako RotateMatrix, ktera by se aplikovala na "svet".

Nahlásit jako SPAM
IP: 80.188.253.–
AdamHlavatovic0
Stálý člen
13. 1. 2008   #6
-
0
-

To nickJartin : skutocne take cosi v d3d existuje, vcera som to dokonca videl na zazname s prednasky na FEL http://www.avc-cvut.cz/avc.php?id=1903 v jednom prezentovanom tutoriale (vizc vo videu), ale to je tak asi vsetko co vam otom mozem povedat, snad len ze to bolo celkom zaujimave.

Nahlásit jako SPAM
IP: 217.73.16.–
13. 1. 2008   #7
-
0
-

Jo, to ze je tam moznost otocit svetem vim, ale prijde mi to jako trochu zvlastni, otacet svetem kdyz muzu otacet kamerou :D

Jak vlastne to otoceni sveta funguje? Opravdu to zmeni relativni polohu vsech objektu vuci pocatku (0,0,0)?

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
13. 1. 2008   #8
-
0
-

Achjo, nic otom nevíš, umíš jenom rychlý základy C++, a tedka si myslíš že doštaněš 200vyčerpávajících odpovědí na 200 stupidních otázek o C++ a Derectu?

V directu jsou 3 matice, world, projection, camera.
Světová matice se ti stará o poluhu světa což jsou tebou vykreslované prevky.
Projekční se stará o tu projekci, stará se o to so je za něcim aby nebylo vidět a věci vzadu aby byli menší (o tu se zatim tak starat nemusíš).
A poslední je pohledová - pozice kamery, tě asi tady bude zajímat.
Když chceš měnit nějaký čísla jednoduše ho násobíš jinou maticí. O proti OGL máš na ty transformace zajímaví funkce a v té knihovně je spousta typů, kter jsou skvělé, ale obávám se že jim jentak neporozumíš, potřebuješ trochu znát C++.

Minimálně tak, aby jsi chápal věci tady http://builder.cz/serial24.html i možná půlka. Ale s kurzem odtut si moc neškrtneš, je jenom o začínání.
Pokud chceš víc informací tak se ozvi na icq: 320476631 určitě bych ti ještě něco zdělil.


Podlesní dobou tady přibývá hromady otázek o programování her. Já o tomto píšu kurz a kus ho už mám, ovšem zatím je pouze pro členy z týmu. Dokud se nerozhodnu kam ho dát.

Nahlásit jako SPAM
IP: 85.160.83.–
Muj starý nick Tomik512
13. 1. 2008   #9
-
0
-

Diky, ten serial vypada dobre. O OOP vim vicemene jen to, co jsem si prines z PHP.

Jinak, klidne se domluv s vedenim tohohle serveru, tady urcite takovy dobre napsany serial oceni. A publicitu (nasvtevnost) i respekt tu budes mit zajistenou.

Zrovna na DirectX (a jeste k tomu v C++) se mi na netu zadne opravdu komplexni tutorialy najit nepodarilo

Achjo, nic otom nevíš, umíš jenom rychlý základy C++, a tedka si myslíš že doštaněš 200vyčerpávajících odpovědí na 200 stupidních otázek o C++ a Derectu?


Kdyz se podivas, tak jsem se ptal na veci, ktere jsou v tutorialech temer vzdycky brane tak jako "tak to proste je a smirte se s tim".

I kdyz zase vim, ze obhajovat se moc nema smysl, vim ze v C++ docela dost plavu a na sapani se na DX je krapet brzo. Ja si ale nemuzu pomoct, me hrani si v konzoli ukrutne nebavi :)

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
13. 1. 2008   #10
-
0
-

CommanderZ "Ja si ale nemuzu pomoct, me hrani si v konzoli ukrutne nebavi :)":
Tak jí trochu rozblázni :D
Hele takle, pokud se chceš na DX vrhnout, tak do toho jdi, jenom jde oto aby jsi pochopil důležité věci v OOP, a naučil se syntaxi. Pak by ti nemělo dělat problém skusit si DirectX, když už znáš Win32, tak to je celkem významné plus. Ale to oop je v DX už důležité, to tě bude bavit až zjistíš jak to je super, C++ je jazyk kterej ti umožní velice efektivního psaní, ta knihovna STL má několik skvělých nástrojů co ulehčuje mnoho práce, když je nepoznáš, tak se v tom budeš trápit. A nebudeš skoro schopnej něco pořádně nakódit. Navíc jenom skusíš na tý konzoli jak to funguje. Pak se s DX daj psát i velice zajímavé projekty efektivně a všechno co ses v konzoli naučil využiješ.

kdyžtak se ozvi na to ICQ.

Nahlásit jako SPAM
IP: 85.160.114.–
Muj starý nick Tomik512
13. 1. 2008   #11
-
0
-

Tak jsem se pri prochazeni toho serialu zasek pekne brzo :(

Mam tenhle jednoduchy kod, chtel jsem si na nem jenom vyzkouset par zakladnich vlastnosti OOP:

// OOP Test.cpp : Defines the entry point for the console application.

//

#include <iostream>



class trida{
private: int cislo;
public: engine(int n);
public: static void printText(char* text);

};


trida::trida(int n){
cislo=n;
};

void trida::printText(char* text){
std::cout<<"\n\n"<<text<<" "<<cislo<<"\n\n";
}

int main(void){
trida e(15);
char mychar[100];
std::cout<<"hello\n";

while(1){
int i=0;
while((mychar[i] = std::cin.get()) != '\n')
i++;
e.printText(mychar);

}
return 0;
}
Problem je v tom, je to hlasi

oop test.cpp(21) : error C2597: illegal reference to non-static member 'trida::cislo'
Nejhorsi na tom je, ze mi prijde, ze v tom serialu ma definice te clenske promenne i jeji pouziti udelane uplne stejne :(

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
13. 1. 2008   #12
-
0
-

To je snad za trest!!!
Statická metoda, statická metoda je k tomu že se dá používat bez žádné instance. Například:



class Napis
{
public:
static void Hallo(){
cout<< "Hallo";
};
static void World(){
cout<< "World";
};
};

class Pisatko
{
public:
void Hallo(){
cout<< "Hallo";
};
void World(){
cout<< "World";
};
};

int main()
{
Napis.Hallo();
Napis.World();

Pisatko pis;
pis.Hallo();
pis.World();
return 0;
}

Obě třídy dělají to samé, ovšem není třeba dělat instanci když je to uplně zbytečné, a tak třída Napiš je v tomto Případě rozumější Než třída Písátko. Samozřejně že kod je blbost k ničemu, ale napsal jsem ho jako ukázku. Když jsou ale metody statické tak to jsou jako funkce bez třídy, neni nutné aby byly ve třídě.

K tvýmu vytvru:
Ty tam máš konstruktor, co nastaví přiřadí hodnotu proměnné cislo k tomu je třeba instance, bez ní by to nešlo, ale pak tam máš statickou metodu co tu proměnou používá, odkud jako má zjistit její hodnotu? Takto můžeš použít, ale musí to být statická proměnná a asi jedině konstantní.
Až na metodu engine, jsem te teda opravil, pamatuj si že metoda musí mít návratovej typ, je to vlastně funkce akorát je ve třídě, čili engine musí něco vracet jestli to má být meto a né proměná, no dal jsem pred ni void.

Tak asi takle:


#include <iostream>

class trida{
private:
int cislo;

public:
trida(int n); // konstruktor se píše taky sem!
void engine(int n); // tady nevim na to to má bejt a jestli to má něco vracet... Ale musíš dát návratovej typ!
void printText(char* text);
};

trida::trida(int n){
cislo=n;
};

void trida::printText(char* text){
std::cout<<"\n\n"<<text<<" "<<cislo<<"\n\n";
};

int main(void){
trida e(15);
char mychar[100];
std::cout<<"hello\n";

while(1){
int i=0;
while((mychar[i] = std::cin.get()) != '\n')
i++;
e.printText(mychar);
};
return 0;
};

:smile1: Sice to funguje, ale víš otom, že ty vykreslu hodnotu pointru (adresu) a né ten char? Proto asi nahrad:


void trida::printText(char* text){
std::cout<<"\n\n"<<text<<" "<<cislo<<"\n\n";
};

za


void trida::printText(char* text){
std::cout<<"\n\n"<<*text<<" "<<cislo<<"\n\n";
};

Pokud teda nechceš vykreslovat adresu. :)

Nahlásit jako SPAM
IP: 85.160.115.–
Muj starý nick Tomik512
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 20 hostů

Podobná vlákna

Par dotazu — založil Steve-o-

Pár dotazů k VS — založil yaqwsx

Pár dotazů — založil oxidián

GUI - pár dotazů — založil Hoptile12

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý