It's second part of "handman" game making for android. In this article i will teach you about program drawing. (First part)
In first, we need to render all letters in table way in alphabet order. Fields in LetterField class:
In onDraw() method we must determine Paint object. It includes different propetries about style of drawing like colors, sizes, fonts:
Next part
Download source of the game
In first, we need to render all letters in table way in alphabet order. Fields in LetterField class:
String alphabet="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";//Russian script double letter_size=20; int letter_color=Color.BLACK; int rows=7; int columns=6; double off_const=0.4;//It's offset of letter's table relative top (the all height is 1) //Special coeficients for aligning of letter for style improving. double opt_a=0.20; double opt_b=0.65;
In onDraw() method we must determine Paint object. It includes different propetries about style of drawing like colors, sizes, fonts:
Paint paint=new Paint(); paint.setTextSize((float) letter_size); paint.setColor(letter_color); paint.setStrokeWidth(1); //We have set letter's style. double red_height=(1-off_const)*height;//Its variable is part of height for letters Methods of Canvas class for program drawing is: -drawLine(Xa, Ya, Xb, Yb, paint) - program drawing line from A to B via paint -drawText(X, Y, paint) - draw text in (X;Y) via paint for (int j=0;j<columns;j++){//Loop for every line float YLine=(float) ((double)(j)/(double)(columns)*red_height+off_const*height);//Find Y of horizontal grid line canvas.drawLine((float)(0), (float)(YLine), (float)(width), (float)(YLine), paint);//Drig line drawing //We will draw letters for (int i=0;i<rows;i++){//Loop for every line if(j*rows+i+1<=alphabet.length()){//Determine number of letter in alphabet and check allowing of this (we don't can to stuff come cells) float X=(float) ((double)(i)/(double)(rows)*width+opt_a/(double)(columns)*height); //Find X of letter (with horizontal shift for style) float Y=(float) ((double)(j)/(double)(columns)*red_height+opt_b/(double)(columns)*red_height+off_const*height);//Analogically like above canvas.drawText(alphabet.charAt(j*rows+i)+"", X, Y, paint);//Draw letter } } } //Verticlal lines drawing like horizaontal for (int i=0;i<=rows;i++){ float XLine=(float) ((double)(i)/(double)(rows)*width); canvas.drawLine((float)(XLine), (float)(height*off_const), (float)(XLine), (float)(height), paint); }Enjoy about drawed letters in launching.
Next part
Download source of the game
Комментариев нет:
Отправить комментарий