Basic Code : Step3-1a
///+ Prefix linkto BasicCode1
//// Lines for set up Psychlops environment
#include <psychlops.h>
using namespace Psychlops;
///- Prefix linkto BasicCode1
///+ Main Routine
//// Psychlops runs at the first line of this function psychlops_main().
void psychlops_main() {
///+ 0 SetGlobal
////Prepare global parameters
const int maxrectnum = 200;
int rectnum = 100/*ID:rectnumber 25.0 200.0 25.0*/;
double rectsize = 3.0/*ID:dotsize 1.0 10.0 1.0*/;
Psychlops::Rectangle rect[maxrectnum];
double rectcolorR[maxrectnum];
double rectcolorG[maxrectnum];
double rectcolorB[maxrectnum];
///- 0 SetGlobal
Canvas window(Canvas::window);
///+ 1 Initialize
////Initialize
for(int i=0; i < rectnum; i++){
///+ 1.1
////set positions and sizes
rect[i].set(rectsize, rectsize); //Set a size of rectangles.
rect[i].centering(); //Move Rectangles to the center.
rect[i].shift((i - 0.5 * rectnum) * rectsize * 1.5/*ID:RectHGap 1.0 3.0 0.5*/,
(i - 0.5 * rectnum) * rectsize * 1.5/*ID:RectVGap 1.0 3.0 0.5*/); //Move Rectangles to initial positions
///- 1.1
///+ 1.2
////set colors
rectcolorR[i]=(double)i * 0.5/*ID:RGain 0.0 1.0 0.5*//(double)rectnum; //Set R values. Note that "i" and "rectnum" is converted to double-type.
rectcolorG[i]=(double)i * 0.5/*ID:GGain 0.0 1.0 0.5*//(double)rectnum; //Set G values. Note that "i" and "rectnum" is converted to double-type.
rectcolorB[i]=(double)i * 0.5/*ID:BGain 0.0 1.0 0.5*//(double)rectnum; //Set B values. Note that "i" and "rectnum" is converted to double-type.
///- 1.2
}
///- 1 Initialize
///+ 2 drawing
////drawing objects
while(!Keyboard::esc.pushed()){
window.clear(Color::black); //Clear window with black
for(int i=0; i < rectnum; i++){
rect[i].draw(Color(rectcolorR[i], rectcolorG[i], rectcolorB[i])); //draw objects by designated colors.
}
window.flip();
}
///- 2 drawing
}
///- Main Routine
./Bin/Debug/PsychlopsSilverlight4test.xap