Matrix

KILLSMAKER

Erfahrenes Mitglied
visual c++.net v.2003
xp Home

moin!
Ich wollte einmal fragen, ob jemand ne Idee hat, wie ich den Matrixeffekt, also diese vielen Zahlen, die sich immer ändern, hinkriege. Ich habe es bis jetzt mir rand() probiert und dann per TextOut die Zeichen ausgegeben, allerdings ist das zu langsam. Weiß vielleicht jemand wie ich das beschleunigen könnte.
DANKE
 
moin


Was meinst du mit das ist zu langsam?!
Vielleicht ist dein Code/deine Berechnung zu aufwendig.

Beschreib dein Problem genauer, und poste mal deinen berechnungs und anzeige Code.


mfg
umbrasaxum
 
Schnell geht es auf jeden Fall, wenn du alles in eine Bitmap pinselst, und diese dann
per BitBlt auf den Bildschirm zeichnest, idealerweise nur die Rechtecke, die sich
wirklich verändert haben (InvalidateRect).

BadMourning
 
mein code:
nur für die erste Zeile:
Code:
case WM_CREATE:
		 
		 
		 SetTimer(hwnd,1,100,NULL);
		 return 0;
	 case WM_TIMER:
		 InvalidateRect(hwnd,NULL,FALSE);
		 return 0;
	 case WM_PAINT:
		 hdc=BeginPaint(hwnd,&ps);
		 
			 srand( (unsigned)time( NULL ) );
			 for(int q=0;q<49;q=q+3)
			 {
				 
				 zahl[q]=rand();
				 zahl[q]=zahl[q]%10;
				 
				 zahl[q+1]=zahl[q]+3;
				 zahl[q+1]=zahl[q+1]%10;
				 zahl[q+2]=zahl[q]+6;
				 zahl[q+2]=zahl[q+2]%10;
				 if(q==0)
				 {
					 wsprintf(num,TEXT("%d%d%d"),zahl[q],zahl[q+1],zahl[q+2]);
				 }
				 else
				 {
wsprintf(num,TEXT("%d%d%d%d"),num,zahl[q],zahl[q+1],zahl[q+2]);
					                 
				 }

			 
			 
		 TextOut(hdc,0,0,num,50);
		 
		 }
		 EndPaint(hwnd,&ps);
		 return 0;
Die tatsache , dass er nicht vollständig die Zeile füllt ,löse ich noch.
Also meine Frage richtet sich nur an die Berechnung: Ob da noch jemand eine Stelle sieht, wo mann was ändern könnte, sodass wirklich wie im Timer jede 1/10 Sekunde die Zahlen ändern.
DANKE
 
Zurück