polidis Δημοσ. 10 Μαΐου 2006 Δημοσ. 10 Μαΐου 2006 Loipon molis katevasa kai dokimasa tin 0.3.3 kai apogoiteftika apo ta grafika. To evala se ena AMD 2200xp 256 ram kai 64ara share karta grafikon. 1.Epilego aspra poulia kai vlepo ola aspra kai tou andipalou. 2.Epilego mavra poulia kai ta vlepo ola aspra kai pali kai tou andipalou. Kai fisika patao Back etsi kai oxi Esc meta tin epilogi. 3 Giati paramenei to parathiro tou Dos kai den fevgei meta tin ekinisi tou programatos? Afta pros to paron giati den mporesa na dokimaso pexnidi kai na do an yparxoune provlimata giati ta vlepo ola aspra. P.S Den xero mpori kai na fteei kai i karta grafikon mou min se paro sto lemo mou etsi?
GT1807 Δημοσ. 10 Μαΐου 2006 Δημοσ. 10 Μαΐου 2006 Εγω εχω ενα προβλημα.Δεν μου δειχνει καθολου γραμματα.Μηπως δεν εχω καποια γραμματοσειρα.Στο μενου σου δειχνει απλως labels κενες.Κριμα κ φαινεται ωραιο ρε γμτ.Μαλλον δεν μου δειχνει κ τις ζαριες που ριχνω γιατι ακουω τον ηχο αλλα δεν βλεπω ζαρια. Τα σέβη μου
biocrasher Δημοσ. 10 Μαΐου 2006 Μέλος Δημοσ. 10 Μαΐου 2006 Οσον αφορα τα αποτελεσματα αυτο ειναι ολο: >void roll(int dice[2]) { #ifndef WIN32 int fd=open("/dev/urandom",O_RDONLY); #else int fd=0; #endif if(fd) { char bits[8]; int nbytes=read(fd,bits,8); dice[0]=abs(bits[abs(rand()%nbytes)])%6+1; nbytes=read(fd,bits,8); dice[1]=abs(bits[abs(rand()%nbytes)])%6+1; close(fd); } else { SDL_Delay(3); srand(SDL_GetTicks()); dice[0]=rand()%6+1; dice[1]=rand()%6+1; } }; 16 bytes διαβαζω καθε φορα, ενω στην εκδοση για win απλα κανω srand,rand. Δεν ξερω για σενα φιλε qtgeo, αλλα εμενα καπως θα με ξενιζε αν ενα απλο ταβλι μου ελεγε "Please wait, there is not enough entropy in your system!" Εν πασει περιπτωσει, δε νομιζω οτι εχει σημασια. Απλα τα αποτελεσματα ειναι λιγο καλυτερα. polidis: Εχω συμβαση με την Nvidia μονο Αλλα σοβαρα, το προβλημα εχει να κανει με τον φωτισμο και το εχω ξαναδει σε καποιες δοκιμες που εκανα. Αν κοιταξεις καλυτερα απο κατω(κουνωντας το ταμπλω με τα βελακια, ενω εχεις σηκωσει ενα πουλι) εχουν χρωμα απλα ο εντονος φωτισμος τα κανει ολα ασπρα. Στην εκδοση για linux αυτο λυνεται τρεχοντας με την παραμετρο --no-sep-spec. Στην εκδοση για windows δεν δεχεται παραμετρους, οποτε για την ωρα δεν λυνεται. Θα το κοιταξω στην επομενη version. Ισως να βαλω καποιο μονοχρωμο texture η κανα κουμπακι για μειωση της φωτεινοτητας. Θα δειξει... GT1807: Linux ή windows? στην πρωτη περιπτωση δεν ξεκιναει χωρις την καταλληλη γραμματοσειρα(courier ή arial), στην δευτερη αποκλειεται να μην εχουν τα windows arial γραμματοσειρα. Τωρα αν εχεις linux, το προβλημα ειχε εμφανιστει και παλιοτερα σε ati καρτες. Αν παλι εχεις windows...δεν ξερω τι συμβαινει. Απλα αν μπορεις πες μου καρτα γραφικων και λειτουργικο. Και στις δυο περιπτωσεις παντως, το θεμα υπερβαινει τις δυνατοτητες μου γιατι εχω μονο ενα pc με linux και nvidia... Και οσον αφορα το παραθυρακι του dos, θα το ψαξω, αλλα αν καποιος μπορει να με βοηθησει καλα θα ηταν. Κανεις που να ξερει προγραμματισμο windows? Ισως ειναι το οτι χρησιμοποιω το stderr για τα μυνηματα, ισως παλι και να θελει καποια βιβλιοθηκη παραπανω. Παντως με winmain ξεκιναει. Οσο για τα ζαρια, δεν τα βλεπεις καθολου επανω στο ταμπλω? Αυτο μου φαινεται πραγματικα παραξενο, ειδικα αν βλεπεις τα υπολοιπα μοντελα.(εκτος και αν εννοεις τον ηχο που κανουν τα μενου) Σε καθε περιπτωση σε παρακαλω δοκιμασε να πας στο πρωτο κουτακι στην πρωτη οθονη και στο δευτερο, τριτο ή τεταρτο στην δευτερη. Αν πηγες στο πρωτο πηγες στο tutorial που δεν φαινονται τα ζαρια ουτως ή αλλως. Ευχαριστω για το χρονο σας.
biocrasher Δημοσ. 10 Μαΐου 2006 Μέλος Δημοσ. 10 Μαΐου 2006 Πωπω... Μολις διαπιστωσα ενα bug. Ευχαριστω που εθιξες το θεμα qtgeo:-D . Ο ελεγχος παραπανω πρεπει να ειναι if(fd!=-1) (οποτε και στην περιπτωση για win η δηλωση πρεπει να ειναι int fd=-1; ) Την εχω ξανακανει αυτην την @#!&$...
kath Δημοσ. 10 Μαΐου 2006 Δημοσ. 10 Μαΐου 2006 Να κανω μονο μια ερωτηση ; Επειδη δεν εχω ασχοληθει με προγραμματισμο γραφικων/παιχνιδιων κτλ, δεν μπορω να καταλαβω τα αρχεια των μοντελων στον φακελο src\models\ , τι ακριβως κανουν ; Παρατηρω οτι υπαρχουν values , ομως , τι σκοπο εξυπηρετουν; πχ: > static GLuint pouliFace[]={ 0,1,2, 0,2,3, 0,3,4, 0,4,5, 0,5,6, 0,6,7, 0,7,8, 0,8,9, 0,9,10, 0,10,11, 0,11,12, 0,12,13, 0,13,14, 0,14,15, 0,15,16, 0,16,17, 0,17,18, 0,18,19, 0,19,20, 0,20,21, 0,21,22, 0,22,23, 0,23,24, 0,24,25, 0,25,26, 0,26,27, 0,27,28, 0,28,29, 0,29,30, 0,30,31, 0,31,32, 32,1,0 };
biocrasher Δημοσ. 10 Μαΐου 2006 Μέλος Δημοσ. 10 Μαΐου 2006 Οι τιμες ειναι indexed vertex arrays. To δευτερο,τριτο και τεταρτο array εχουν ιδιο μεγεθος και ειναι αντιστοιχα: συντεταγμενες διανυσματος, normal διανυσματος(μοναδιαιο δυανυσμα καθετο στο προηγουμενο, χρησιμοποιηται για τον υπολογισμο του φωτισμου) ,και uv συντεταγμενες(για το texture, εαν υπαρχει). Το πρωτο array αποτελει index σε αυτο των δυανυσματων και καθοριζει τα τριγωνα του αντικειμενου.
polidis Δημοσ. 10 Μαΐου 2006 Δημοσ. 10 Μαΐου 2006 polidis: Εχω συμβαση με την Nvidia μονο Αλλα σοβαρα' date=' το προβλημα εχει να κανει με τον φωτισμο και το εχω ξαναδει σε καποιες δοκιμες που εκανα. Αν κοιταξεις καλυτερα απο κατω(κουνωντας το ταμπλω με τα βελακια, ενω εχεις σηκωσει ενα πουλι) εχουν χρωμα απλα ο εντονος φωτισμος τα κανει ολα ασπρα. Στην εκδοση για linux αυτο λυνεται τρεχοντας με την παραμετρο --no-sep-spec. Στην εκδοση για windows δεν δεχεται παραμετρους, οποτε για την ωρα δεν λυνεται. Θα το κοιταξω στην επομενη version. Ισως να βαλω καποιο μονοχρωμο texture η κανα κουμπακι για μειωση της φωτεινοτητας. Θα δειξει... [/quote'] Koita Logika kati alo fteei kai oxi i karta mou. Oso kai mape na einai h karta pandos ta paixnidakia tis ta apla pou den theloune poles apetiseis se grafika ta paizi. Malon kati se programatistiko epipedo fteei.Ti na po. Paratheto ena Screenshot gia na deis oti etsi opos einai den mporis na paixeis Tavli.
Directx Δημοσ. 10 Μαΐου 2006 Δημοσ. 10 Μαΐου 2006 Λόγο τεχνικών προβλημάτων με την βιβλιοθήκη SDL και το εργαλείο προγραμματισμού μου (C/C++ Builder 6) δεν μπόρεσα να κάνω compile την εφαρμογή παρʼ όλα αυτά έγραψα μια γενική C ρουτίνα η οποία με βάση το Process ID (GetWindowThreadProcessId) μιας εφαρμογής (ορίζεται στην μεταβλητή _THideConsole.dwPID) αναζήτα (με την βοήθεια των EnumWindows και του EnumTopLevelWindows callback function) όλα τα Console παράθυρα (δηλαδή εκείνα τα παράθυρα που ανήκουν στην Process μας και η κλάση τους ονομάζεται «ConsoleWindowClass» - τουλάχιστον στα XP) κρύβοντας το πρώτο που θα βρει με την βοήθεια της ShowWindowAsync καθώς εξασφαλίζει την αλλαγή κατάστασης για παράθυρα διαφορετικών Threads και συνεπώς δεν μπλοκάρει την εκτέλεση της κλήσης περιμένοντας σώνει και καλά να υλοποιηθεί η αλλαγή (διαφορετικά άλλαξε την σε ShowWindow –δες τι δουλεύει καλύτερα με την SDL). Σε περίπτωση εύρεσης της console επιστρέφεται η τιμή επιτυχίας της ShowWindowAsync όπως καθορίζεται στο Windows SDK (από το SDK: [..]“previously visible window => TRUE , previously hidden window => FALSE”). Η ρουτίνα δοκιμάσθηκε επιτυχώς με το Process ID της εφαρμογή σου (εντοπίσθηκε με την βοήθεια του Task Manager) αν και δεν αποκλείω ασυμβατότητες καθώς η απόκρυψη του Console είναι κάτι που δεν συνίσταται από την Microsoft και δεν ξέρω πως αντιδρά βαθύτερα η υλοποίηση της SDL, αν μάλιστα η τελευταία παρέχει κάποια ρουτίνα που αποκρύβει την Console προτίμησε την. Φυσικά μπορεί να υπάρχουν bugs. Το που θα τοποθετηθεί στον κώδικα σου δυστυχώς δεν μπορώ να το προτείνω. > // HIDE CONSOLE STDOUT / STDERR FOR CURRENT RUNNING PROCESS // DIRECTX BETA. #include <windows.h> struct _TagHideConsole { HWND hwndCON; DWORD dwPID; }_THideConsole; BOOL CALLBACK EnumTopLevelWindows(HWND hWnd,LPARAM lParam) { // Match hWnd PID with our , ignore thread id. DWORD dwPID; char szClassName[33]; GetWindowThreadProcessId(hWnd,&dwPID); if(dwPID==_THideConsole.dwPID) { // Get Window class , for console it should be 'ConsoleWindowClass' if(GetClassName(hWnd,&szClassName,sizeof(szClassName))) if(!lstrcmp(szClassName,"ConsoleWindowClass")) { _THideConsole.hwndCON = hWnd; return FALSE; // Our process SDL window found - break enumeration! } } return TRUE; // Continue Top level windows enumeration } BOOL _HideConsole(void) { // Initialize _THideConsole members _THideConsole.hwndCON = NULL; _THideConsole.dwPID = GetCurrentProcessId(); // Enumerate all top-level windows EnumWindows((WNDENUMPROC)EnumTopLevelWindows,0); // Did we found our process SDL Console HWND? if(_THideConsole.hwndCON!=NULL) return ShowWindowAsync(_THideConsole.hwndCON,SW_HIDE); // No, we did not! return FALSE; } Υ.Γ. Ο απλός εντοπισμός του παράθυρου με FindWindow ή FindWindowEx δεν είναι επαρκείς καθώς από ότι είδα ο τίτλος αλλάζει με βάση το install directory ενώ υπάρχει και ο περιορισμός στους διαθέσιμους χαρακτήρες.
biocrasher Δημοσ. 10 Μαΐου 2006 Μέλος Δημοσ. 10 Μαΐου 2006 Μα καταλαβα τι εννοουσες και δεν θεωρω οτι φταιει η καρτα σου. Απλα υπαρχουν διαφορες σε καποια θεματα, αναλογα με το gpu, τις οποιες δεν μπορω να γνωριζω. Γι'αυτο αλλωστε και οι εταιριες παιχνιδιων δοκιμαζουν τα παιχνιδια τους με ολες τις εμπορικες καρτες πριν τα βγαλουν. Οπως ειπα ειναι το θεμα του φωτισμου, εφοσον φαινονται και τα μαυρα περιγραμματα γυρω απο καποια πουλια. Στην επομενη εκδοση θα βαλω καποια ρυθμιση για μειωση του φωτισμου. Υ.Γ1. δεν το λεω για να υπερασπιστω την αρτιοτητα του κωδικα μου, ο οποιος ουτως ή αλλως βριθει απο bugs, απλα ξερω περι τινος προκειται εφοσον το εχω συναντησει και παλιοτερα. Y.Γ2. αν δεν βαριεσαι, κατεβασε αυτo (ειναι σκετο το εκτελεσιμο) και πες μου: http://tavli3d.dotgeek.org/tavli3d.exe.zip (350 κb ειναι)
kath Δημοσ. 10 Μαΐου 2006 Δημοσ. 10 Μαΐου 2006 Υ.Γ. Ο απλός εντοπισμός του παράθυρου με FindWindow ή FindWindowEx δεν είναι επαρκείς καθώς από ότι είδα ο τίτλος αλλάζει με βάση το install directory ενώ υπάρχει και ο περιορισμός στους διαθέσιμους χαρακτήρες. Γιατι δεν μετονομαζεις τον τιτλο της κονσολας ; system("title Tavli 3D");
Directx Δημοσ. 10 Μαΐου 2006 Δημοσ. 10 Μαΐου 2006 Σωστό και αυτό! αρκεί να μην έχουμε πολλαπλά instances.
polidis Δημοσ. 10 Μαΐου 2006 Δημοσ. 10 Μαΐου 2006 To idio file mou ola ta poulia aspra ala ta zaria mavra opos fenete kai sto screenshot
biocrasher Δημοσ. 10 Μαΐου 2006 Μέλος Δημοσ. 10 Μαΐου 2006 Παιδια, ευχαριστω για τις ιδεες σας. Δοκιμαστε αυτο, αν μπορειτε: http://tavli3d.dotgeek.org/tavli3d.exe.zip Φιλε polidis αν μπορεις δοκιμασε το και εσυ, καθως εχω απενεργοποιησει τελειως τον specular φωτισμο, ωστε να δω αν το προβλημα σου ειναι κατι αλλο απο αυτο που νομιζα. Υ.Γ. Η αλλαγη που εκανα οσον αφορα την κονσολα ειναι στην αρχη του προγραμματος. Προσθεσα τις εξης γραμμες: HWND hide; AllocConsole(); hide = FindWindowA("ConsoleWindowClass", NULL); ShowWindow(hide, 0);
qtgeo Δημοσ. 10 Μαΐου 2006 Δημοσ. 10 Μαΐου 2006 biocrasher φυσικά και δεν ενωούσα να περιμένεις για εντροπία αλλά έτσι κι αλλιώς όπως το έχεις υλοποιήσει πάλι πέρνεις τα ίδια ζάρια κάθε φορά. int nbytes=read( fd,bits,8 ); Δέν ορίζεις πουθενά ούτε αποθηκεύεις ένα offset του σημείου που ίσουν πριν στο /dev/urandom και δέν σημαίνει ότι στην επόμενη κύκλα το urandom θα έχει αλλάξει περιεχόμενο. Είναι λάθος! Επίσης έχεις κάνει και άλλο σημαντικό λάθος εδώ: dice[0]=rand()%6+1; dice[1]=rand()%6+1; Κατά κανόνα για καλυτερα αποτελέσματα δέν πρέπει να πειράζεις τα low bits αλλά τα high bits και έπίσης έτσι παίρνεις και την τιμή μηδέν που είναι μή αποδεκτή στα ζάρια σου... Το σωστό είναι ...=1+6*rand()/(RAND_MAX+1.0); αν δεν κάνω λάθος Άσε δε που για ακόμα καύτερα αποτελέσματα άν θές χρησιμοποίησε την random().... C Ya!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.