View previous topic :: View next topic |
Author |
Message |
kkeemmss
Joined: 04 Jan 2007 Posts: 232 Location: Riga
|
Posted: Thu Feb 07, 2008 1:14 pm Post subject: |
|
Tagad meiginu uzrakstit pirmo SDL programinu. Google atradu http://pgdc.purdue.org/sdltutorial/sdl_setup.html
Code: | #ifdef WIN32
#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "SDLmain.lib")
#endif
#include "SDL.h"
int main(int argc, char **argv)
{
printf("\nHello SDL User!\n");
/* initialize SDL */
if ( SDL_Init( SDL_INIT_VIDEO ) < 0 )
{
fprintf( stderr, "Video initialization failed: %s\n",
SDL_GetError( ) );
SDL_Quit( );
}
SDL_Quit( );
return 0;
} |
izpildu visu kas nu tai lapa teikts, kods nokompilejas bet rezultatu gan uz ekrana ieraudzit neizdodas.
tutorialis it ka rakstits citam VS bet man VS 2005 vai ta varetu but problema? |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Thu Feb 07, 2008 1:43 pm Post subject: |
|
ko tu gribi ieraudzīt?
ja erroru nav, tad viss ir normāli! _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
kkeemmss
Joined: 04 Jan 2007 Posts: 232 Location: Riga
|
Posted: Thu Feb 07, 2008 1:47 pm Post subject: |
|
printf("\nHello SDL User!\n");
vai šitam neko nevaidzeja uz ekrana izvadit? |
|
Back to top |
|
|
Kamazs Guru
Joined: 17 Jan 2003 Posts: 829 Location: The glorious ancient city of Loja
|
Posted: Thu Feb 07, 2008 1:53 pm Post subject: |
|
Nē. Tas izvada failaa "stdout.txt" _________________ ...un es uzskatu, ka Fallout ir etalons |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Thu Feb 07, 2008 3:16 pm Post subject: |
|
SDL bibliotēku var uzbūvēt divos veidus - vienā, ka visa konsole paliek kā konsole (outputs ir uz ekrāna), un otrā tad, kad viss outputs tiek redirektēts uz jau minēto stdout.txt failu tekošajā direktorijā. Defaultā piedāvātais SDL uzkompilētais binarijs (no libsdl.org) realizē otro variantu.
Reku vari izlasīt, vairākus variantus kā to atslēgt: http://www.libsdl.org/cgi/docwiki.cgi/FAQ_20Console
RTFM! :) |
|
Back to top |
|
|
kkeemmss
Joined: 04 Jan 2007 Posts: 232 Location: Riga
|
Posted: Tue Feb 12, 2008 11:42 am Post subject: |
|
ja lietoju vienkārši getch() vai cin >>, man programa apstājās un gaida,
bet ar kādu funkciju pārbauda, vai no klaviatūras ir nospiests kāds taustiņš, tipa vai buferī ir kaut kas ko nolasīt?
if .....?
{ c = getch(); } |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
|
Back to top |
|
|
kkeemmss
Joined: 04 Jan 2007 Posts: 232 Location: Riga
|
Posted: Tue Feb 12, 2008 12:07 pm Post subject: |
|
njā ar SDL es kaut kā nevaru iedraudzēties. vairākus'iesācēju materiālus papētiju, bet kaut kā neizdodas nokompilet to kodu no manuāla.
Pagaidām vēl dzīvoju konsolē, tapēc tas getch() liekas diezgan piemērots, bet kad gribēšu grafiku sākt zīmēt, tad ar directx man tā lieta daudz veiksmīgāk izdevās. |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Tue Feb 12, 2008 1:40 pm Post subject: |
|
Pastāsti kļūdas kādas tu dabū, tad arī tev pateiksim, ko tu dari nepareizi. Citādi jau palīdzēt nevarēsim.
Ja nu gribi bez SDL, bet ar tīru WinAPI, tad tev paskaties uz GetAsyncKeyState funkciju. |
|
Back to top |
|
|
kkeemmss
Joined: 04 Jan 2007 Posts: 232 Location: Riga
|
Posted: Wed Feb 20, 2008 11:12 am Post subject: |
|
Tā pati konsole, meiģinu rakstit:
Code: | int a = random(360);
int a = rnd(360);
... |
protams kompilators nepazist ne random ne rnd, vai sintakse ir pareiza? vai man jainklude kada biblioteka? kura? paldies. |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Wed Feb 20, 2008 11:26 am Post subject: |
|
Šādus jautajumus tev ir jāuzdod manuālī, nevis jābrīnās, kāpēc nekompilējas:
http://www.cplusplus.com/reference/clibrary/cstdlib/rand.html (neskaties tikai uz piemēru ar to % - tas ir riktīgi slikti).
Tātad vienreiz programmas sākumā: srand(time(NULL));
Un tad, kad vajag randomu: inta = (rand() * 360) / (RAND_MAX+1);
Tikai ņem vērā, ka defaultais random ģenerators C++'ā ir vājš - tas dod tikai 15 bitus ar vērtībām. Priekš 0..360 intervāla tas, protams, ir pietiekoši, taču, ja gribēsi ģenerēt randomu lielākā intervālā, tad nāksies meklēt citu random ģenerētāju. Iesaku paskatīties uz MersenneTwister - tas ir ātrs un ļoooti randomisks (tā periods ir gigantisks skaitlis). |
|
Back to top |
|
|
kkeemmss
Joined: 04 Jan 2007 Posts: 232 Location: Riga
|
Posted: Sun Feb 24, 2008 7:51 pm Post subject: |
|
tagad '*' simboli ņirbēdami skraida pa ekrānu, bet lai kontroletu kadrus sekundē man derētu zināt sistēmas laiku. ar kādu funkciju tas darās? |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Feb 24, 2008 8:38 pm Post subject: |
|
Windows'ā vissīkāko laika iedaļu var izmērīt ar QueryPerformanceCounter funkciju. Ir vēl timeGetTime funkcija. Un vēl ir GetTickCount.
Un paklau, ir taču tāda lieta kā gūgle. Kāpēc tajā negribi ierakstīt kautko apmēram "C++ windows get time" ? |
|
Back to top |
|
|
kkeemmss
Joined: 04 Jan 2007 Posts: 232 Location: Riga
|
Posted: Sun Feb 24, 2008 9:08 pm Post subject: |
|
kapēc tos elementāros jautājumus uzdodu forumā?
laikam jau tapēc ka man atbildi google atrast ir daudz daudz reizes ilgāk, kā paprasīt šeit. |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Feb 24, 2008 9:29 pm Post subject: |
|
Ja godīgi - tad nesaprotu.
Manu atbildi uz savu jautājumu dabūji precīzi pēc 47 minūtēm
Bet ierakstot gūglē, piemēram, to pašu "C++ windows get time" un uzspiežot pirmā vai trešā linka, atbildi var dabūt izlasī minūtes laikā (ja ne sekunžu).
Kā var 47 minūtes būt ātrāk par 1 minūti? |
|
Back to top |
|
|
|