Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

για καποιο λογο αυτος ο κωδικας κανει ενα 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

post-283918-0-82508900-1403024969_thumb.jpg

Δημοσ.
 
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); // ???
}
}
}
Δεν κατάλαβα τη λογική στο δικό σου παράδειγμα αλλά γιατί δεν κάνεις μια υλοποίηση όπως η παραπάνω ;
Δημοσ.

Ξεμπέρδεψε τη λογική στα loops γιατί έτσι που είναι δε διαβάζεται. Απ' το να διορθώσεις κάτι που είναι εγγενώς στραβό, κάντο καλύτερα σωστά από την αρχή.

  • Like 2
Δημοσ.

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

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...