TheRammer Δημοσ. 17 Ιουνίου 2014 Δημοσ. 17 Ιουνίου 2014 για καποιο λογο αυτος ο κωδικας κανει ενα block να μην εμφανίζεται void Game::DrawField(int x ,int y,int width,int height) { int xt=0; int yt=0; int value=60; for(xt = 0;xt<width;xt++) { if(((x+xt)+xt*value)<700 && y<500 && ((x+xt)+xt*value)>1 && y>1) { DrawBlock(((x+xt)+xt*value),((y+yt)+yt*value)); } for(yt = 0; yt<height;yt++) { if(x<700 && ((y+yt)+yt*value)<500 && x>1 && ((y+yt)+yt*value)>1) { DrawBlock(((x+xt)+xt*value),((y+yt)+yt*value)); } } } } εγραψα το function call ετσι : "DrawField(50,50,6,2);" και το αποτελεσμα ειναι στην photo
NewProject Δημοσ. 17 Ιουνίου 2014 Δημοσ. 17 Ιουνίου 2014 void Game::DrawBlock(int xpos,int ypos,int width, int height); void Game::DrawFiled(int fwidth,int fheight,int bwidth, int bheight,int bspace); /// ... void Game::DrawFiled(int fwidth,int fheight,int bwidth, int bheight) { for(int y=0; y<fheight; y += bheight + bspace) { for(int x=0; x<fwidth; x += bwidth + bspace) { DrawBlock(x,y,bwidth,bheight); } } } void Game::DrawBlock(int xpos,int ypos,int width, int height) { for(int y=0; y<height; y++) { for(int x=0; x<width; x++) { DrawPixel(xpos+x, ypos+y); // ??? } } } Δεν κατάλαβα τη λογική στο δικό σου παράδειγμα αλλά γιατί δεν κάνεις μια υλοποίηση όπως η παραπάνω ;
defacer Δημοσ. 17 Ιουνίου 2014 Δημοσ. 17 Ιουνίου 2014 Ξεμπέρδεψε τη λογική στα loops γιατί έτσι που είναι δε διαβάζεται. Απ' το να διορθώσεις κάτι που είναι εγγενώς στραβό, κάντο καλύτερα σωστά από την αρχή. 2
TheRammer Δημοσ. 18 Ιουνίου 2014 Μέλος Δημοσ. 18 Ιουνίου 2014 ok τελικα λυθηκε το προβλημα . εβαλα το if(((x+xt)+xt*value)<700 && y<500 && ((x+xt)+xt*value)>1 && y>1) { DrawBlock(((x+xt)+xt*value),((y+yt)+yt*value)); } μετα το δευτερο for loop
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα