青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天地之靈學習小組
我們學習小組的OpenGL學習筆記 大家一定要互相折磨呀~~
posts - 150,  comments - 156,  trackbacks - 0
它它它它它……我不說啥了,效果圖群里發過了,就是那么丑,還是RE。我有信心干掉它,靠我自己的力量,一點一點的。
我是一棵自卑的菜,膠州產的三里河大白菜。
  1 //需要學會讀取bmp格式圖片并處理
  2 
  3 /*    作者:PureMilk
  4     天地之靈學習小組
  5 */
  6 
  7 #include <ctime>
  8 #include <cmath>
  9 #include <cstdio>
 10 #include <GL/glut.h>
 11 #include <windows.h>
 12 
 13 static const int WindowWidth = 640;    //窗口的寬度和高度
 14 static const int WindowHeight = 480;
 15 
 16 int count = 0;    //速度計數器,每到一定時間count自增,達到speed,活動藥丸就下落
 17 int speed = 2000;    //speed值越大,下落速度越慢
 18 bool dead = false;    //是否游戲結束
 19 
 20 GLubyte *  RedWorm = NULL;    //三個讀取三顏色蟲子圖片的指針,蟲子圖片是24×24的24位色bmp
 21 GLubyte *  BlueWorm = NULL;
 22 GLubyte *  YellowWorm = NULL;
 23 
 24 enum GridType    //bottle里的每個格子的類型,什么都沒有,有藥丸,有蟲子和將被消去
 25 {
 26     NOTHING = 0, CAPSULE, WORM, REMOVE
 27 };
 28 
 29 enum Connect    //若bottle里是藥丸則需要記錄它與哪個方向相連
 30 {
 31     NOT_CONNECTED = 0, LEFT, RIGHT, UP, DOWN
 32 };
 33 
 34 enum Color    //BLACK就是什么都沒有的狀態
 35 {
 36     RED = 0, YELLOW, BLUE, BLACK
 37 };
 38 
 39 enum DoctorDirect    //活動藥丸要移動的方向
 40 {
 41     DD_NODIRECT = 0, DD_UP, DD_DOWN, DD_LEFT, DD_RIGHT
 42 };
 43 
 44 void myCircle( int x, int y, int r )    //我的畫填充圓函數,圓心是x,y,半徑是r <test OK>
 45 {
 46     glBegin( GL_TRIANGLE_FAN );
 47         for ( GLint i = 0; i < 360; i+=30 )
 48             glVertex2i( x+r*cos(i*6.28/360.0), y+r*sin(i*6.28/360.0) );
 49     glEnd();
 50 }
 51 
 52 /*×××××××××××未經檢測×××××××××××××××*/
 53 void _setColor( Color color )
 54 {
 55     switch (color)
 56     {
 57     case BLACK:
 58         glColor3f( 0.0f0.0f0.0f );
 59         break;
 60     case YELLOW:
 61         glColor3f( 1.0f1.0f0.0f );
 62         break;
 63     case BLUE:
 64         glColor3f( 0.0f0.0f1.0f );
 65         break;
 66     case RED:
 67         glColor3f( 1.0f0.0f0.0f );
 68         break;
 69     default:
 70         break;
 71     }
 72 }
 73 
 74 
 75 class Bottle
 76 {
 77 private:
 78     int b_x,b_y; //bottle可以容納藥丸的最左上角位置
 79     GridType b_grid_type[16][8]; //每個格子20像素長寬
 80     Color b_color[16][8];
 81     Connect b_connect[16][8];
 82 public:
 83     int getx( void )
 84     {
 85         return b_x;
 86     }
 87     int gety( void )
 88     {
 89         return b_y;
 90     }
 91     bool empty( int x, int y ) //若x,y位置為空,返回true,否則false
 92     {
 93         if ( x<0 || x>=8 || y<0 || y>=16 ) return false;
 94         if ( b_grid_type[y][x] == NOTHING ) return true;
 95         return false;
 96     }
 97     void set( Color color, int x, int y )
 98     {
 99         b_grid_type[y][x] = CAPSULE;
100         b_color[y][x] = color;
101     }
102     void setGridType( GridType grid_type, int x, int y )
103     {
104         b_grid_type[y][x] = grid_type;
105     }
106     void setColor( Color color, int x, int y )
107     {
108         b_color[y][x] = color;
109     }
110     void setConnect( int x, int y )
111     {
112         b_connect[y][x] = NOT_CONNECTED;
113     }
114     GridType getGridType( int x, int y )
115     {
116         return b_grid_type[y][x];
117     }
118     Color getColor( int x, int y )
119     {
120         return b_color[y][x];
121     }
122     Connect getConnect( int x, int y )
123     {
124         return b_connect[y][x];
125     }
126     bool fall( void )
127     {
128         int i, j;
129         bool flag = false;
130         for ( i = 15; i >0--i )
131         {
132             for ( j = 0; j <8++j )
133             {
134                 if ( b_grid_type[j][i] == NOTHING && b_grid_type[j][i-1== CAPSULE ) 
135                 {
136                     switch ( b_connect[j][i-1] )
137                     {
138                     case UP:
139                         b_grid_type[j][i] = CAPSULE;
140                         b_color[j][i] = b_color[j][i-1];
141                         b_connect[j][i] = UP;
142 
143                         b_color[j][i-1= b_color[j][i-2];
144                         b_connect[j][i-1= DOWN;
145 
146                         b_grid_type[j][i-2= NOTHING;
147                         b_color[j][i-2= BLACK;
148                         b_connect[j][i] = NOT_CONNECTED;
149                         flag = true;
150                         break;
151                     case RIGHT:
152                         if ( b_grid_type[j+1][i] == NOTHING )
153                         {
154                             b_grid_type[j][i] = CAPSULE;
155                             b_color[j][i] = b_color[j][i-1];
156                             b_connect[j][i] = RIGHT;
157 
158                             b_grid_type[j+1][i] = CAPSULE;
159                             b_color[j+1][i] = b_color[j+1][i-1];
160                             b_connect[j+1][i] = LEFT;
161 
162                             b_grid_type[j][i-1= NOTHING;
163                             b_color[j][i-1= BLACK;
164                             b_connect[j][i-1= NOT_CONNECTED;
165 
166                             b_grid_type[j+1][i-1= NOTHING;
167                             b_color[j+1][i-1= BLACK;
168                             b_connect[j+1][i-1= NOT_CONNECTED;
169                             flag = true;
170                         }
171                         break;
172                     default:
173                         break;
174                     }
175                 }
176             }
177         }
178         return flag;
179     }
180     void drawBottle( void )
181     {
182         int i,j;
183         glColor3f( 0.0f1.0f1.0f );//青色
184 
185         //**************先畫瓶口再畫瓶身******
186         //畫瓶子的內部,根據b_x,b_y和瓶子的內容物
187         for ( i = 0; i < 16++i )
188         {
189             for ( j = 0; j < 8++j )
190             {
191                 if ( b_grid_type[i][j] == WORM )
192                     drawWorm( b_x+j*24, b_y+i*24, b_color[i][j] );
193                 else if ( b_grid_type[i][j] == CAPSULE )
194                 {
195                     drawCapsule( b_x+j*24+12, b_y+i*24+12, b_connect[i][j] );
196                 }
197             }
198         }
199     }
200     
201     void drawCapsule( int x, int y, Connect connect )
202     {
203         //將相連的部分畫上
204         switch ( connect )
205         {
206         case LEFT:
207             glRectf( x-12, y-12, x, y+12 );
208             break;
209         case RIGHT:
210             glRectf( x, y-12, x+12, y+12 );
211             break;
212         case UP:
213             glRectf( x-12, y-12, x+12, y );
214             break;
215         case DOWN:
216             glRectf( x-12, y, x+12, y+12 );
217             break;
218         default:
219             break;
220         }
221         //***********畫圓并填充*********
222         myCircle( x, y, 12 );
223     }
224 
225     void drawWorm( int x, int y, Color color )
226     {
227         GLubyte * Worm = NULL;
228         glRasterPos2i( x, y );
229 
230         switch ( color )
231         {
232         case RED:
233             Worm = RedWorm;
234             break;
235         case BLUE:
236             Worm = BlueWorm;
237             break;
238         case YELLOW:
239             Worm = YellowWorm;
240             break;
241         case BLACK:
242             break;
243         }
244 
245         if ( Worm != NULL )
246         {
247             glDrawPixels(2424, GL_RGB, GL_UNSIGNED_BYTE, Worm);
248             glPolygonStipple(Worm);
249         }
250     }
251 
252     Bottle( int level, int xx, int yy )
253     {
254         int i; //vc6這點真恨人
255         b_x = xx;
256         b_y = yy;
257         for ( i = 0; i < 16++i )
258         {
259             for ( int j = 0; j < 8++j )
260             {
261                 b_grid_type[i][j] = NOTHING;
262                 b_color[i][j] = BLACK;
263                 b_connect[i][j] = NOT_CONNECTED;
264             }
265         }
266         for ( i = 0; i < level*4++i )
267         {
268             int x = rand()%16;
269 
270             printf( "x = %d\n", x );
271 
272 
273 
274             int y = rand()%8;
275             Color color = (Color)(rand()%3);
276             if ( ok( x, y, color, level ) )
277             {
278                 b_grid_type[x][y] = WORM;
279                 b_color[x][y] = color;
280             }
281             else
282                 --i;
283         }
284     }
285     bool ok( int x, int y, Color color, int level )
286     {
287         if ( level < 15 && x <= 6 ) return false;
288         if ( ((level+1)>>1)+3+< 16 ) return false;
289         if ( x-2 >= 0 && b_grid_type[x-1][y] == WORM && b_color[x-1][y] == color 
290             && b_grid_type[x-2][y] == WORM && b_color[x-2][y] == color ) return false;
291         if ( x+2 < 8 && b_grid_type[x+1][y] == WORM && b_color[x+1][y] == color 
292             && b_grid_type[x+2][y] == WORM && b_color[x+2][y] == color ) return false;
293         if ( y+2 < 16 && b_grid_type[x][y+1== WORM && b_color[x][y+1== color 
294             && b_grid_type[x][y+2== WORM && b_color[x][y+2== color ) return false;
295         if ( b_grid_type[x][y-1== WORM && b_color[x][y-1== color 
296             && b_grid_type[x][y-2== WORM && b_color[x][y-2== color ) return false;
297         return true;
298     }
299 };
300 
301 static Bottle* bottle = NULL;
302 
303 class Doctor
304 {
305 private:
306     int d_x,d_y; //活動藥丸(左下角)相對于瓶子的位置,不是像素點
307     bool d_state; //橫的false,豎的true
308     Color d_color[2]; //倆藥丸的顏色
309     DoctorDirect d_direct;
310 public:
311     Doctor( void )
312     {
313         d_x = 3; d_y = 0
314         d_state = false
315         d_direct = DD_NODIRECT;
316         d_color[0= (Color)(rand()%3);
317         d_color[1= (Color)(rand()%3);
318     }
319     void drawDoctor( void )
320     {
321         //***************畫醫生的形象*******************
322         if ( d_state )
323         {
324             bottle->drawCapsule( bottle->getx()+20*d_x+10, bottle->gety()+20*d_y+10, UP );
325             bottle->drawCapsule( bottle->getx()+20*d_x+10, bottle->gety()+20*d_y-10, DOWN );
326         }
327         else
328         {
329             bottle->drawCapsule( bottle->getx()+20*d_x+10, bottle->gety()+20*d_y+10, RIGHT );
330             bottle->drawCapsule( bottle->getx()+20*(d_x+1)+10, bottle->gety()+20*d_y+10, LEFT );
331         }
332     }
333     void move( void )
334     {
335         int i,j;
336         bool tag = true;
337         switch( d_direct )
338         {
339         case DD_DOWN:
340             if ( d_state )
341             {
342                 if ( bottle->empty( d_x, d_y+1 ) )
343                 {
344                     ++d_y;
345                     break;
346                 }
347             }
348             else
349             {
350                 if ( bottle->empty( d_x, d_y+1 ) && bottle->empty( d_x+1, d_y+1 ) )
351                 {
352                     ++d_y;
353                     break;
354                 }
355             }
356             /*************這里沒寫完,預計是個while(true)的循環*********************/
357             while ( tag )
358             {
359                 bool flag = true;
360                 if ( d_state )
361                 {
362                     bottle->set( d_color[0], d_x, d_y );
363                     if ( d_y-1 != 0 )
364                         bottle->set( d_color[1], d_x, d_y-1 );
365                 }
366                 else
367                 {
368                     bottle->set( d_color[0], d_x, d_y );
369                     bottle->set( d_color[1], d_x+1, d_y );
370                 }
371 //先消,不能消break
372                 for ( i = 15; i >= 0--i )
373                 {
374                     int number = 0;
375                     Color corrent = BLACK;
376                     for ( j = 0; j < 8++j,++number )
377                     {
378                         if ( bottle->getColor( j, i ) != corrent )
379                         {
380                             if ( number >= 4 )
381                             {
382                                 int cnt = j-1;
383                                 while ( number-- )
384                                 {
385                                     bottle->setGridType( REMOVE, cnt, i );
386                                     tag = true;
387                                 }
388                             }
389                             else 
390                             {
391                                 number = -1;
392                             }
393                         }
394                     }
395                 }
396                 for ( i = 7; i >= 0++i )
397                 {
398                     int number = 0;
399                     Color corrent = BLACK;
400                     for ( j = 0; j < 16++j,++number )
401                     {
402                         if ( bottle->getColor( i, j ) != corrent )
403                         {
404                             if ( number >= 4 )
405                             {
406                                 int cnt = i-1;
407                                 while ( number-- )
408                                 {
409                                     bottle->setGridType( REMOVE, cnt, j );
410                                     tag = true;
411                                 }
412                             }
413                             else 
414                             {
415                                 number = -1;
416                             }
417                         }
418                     }
419                 }
420                 if ( tag )
421                 {
422                     Sleep( 500 );
423                     for ( i = 0; i < 16++i )
424                     {
425                         for ( j = 0; j < 8++j )
426                         {
427                             if ( bottle->getGridType(j, i) == REMOVE )
428                             {
429                                 bottle->setColor( BLACK, j, i );
430                                 bottle->setGridType( NOTHING, j, i );
431                                 switch ( bottle->getConnect(j,i) )
432                                 {
433                                 case UP:
434                                     bottle->setConnect( j, i-1 );
435                                     break;
436                                 case DOWN:
437                                     bottle->setConnect( j, i+1 );
438                                     break;
439                                 case LEFT:
440                                     bottle->setConnect( j-1, i );
441                                     break;
442                                 case RIGHT:
443                                     bottle->setConnect( j+1, i );
444                                     break;
445                                 default:
446                                     break;
447                                 }
448                                 bottle->setConnect( j, i );
449                             }
450                         }
451                     }
452                 }
453 
454                 if ( tag )
455                 {
456                     //如果消了,就掉
457                     while ( bottle->fall() )
458                         Sleep(500);
459                 }
460 
461                 Sleep( 500 );
462             }
463             //凡是落下不管是否消掉都要重置活動藥丸位置和顏色
464             d_x = 3; d_y = 0
465             d_state = false
466             d_direct = DD_NODIRECT;
467             d_color[0= (Color)(rand()%3);
468             d_color[1= (Color)(rand()%3);
469             
470             break;
471         case DD_UP:
472             if ( d_state )
473             {
474                 if ( bottle->empty( d_x+1, d_y ) ) d_state = false;
475                 else if ( bottle->empty( d_x-1, d_y ) ) { --d_x; d_state = false; }
476             }
477             else
478             {
479                 if ( bottle->empty( d_x, d_y-1 ) )
480                 {
481                     d_state = true;
482                     Color tmp = d_color[0];
483                     d_color[0= d_color[1];
484                     d_color[1= tmp;
485                 }
486                 else if ( bottle->empty( d_x+1, d_y-1 ) )
487                 {
488                     ++d_x;
489                     d_state = true;
490                     Color tmp = d_color[0];
491                     d_color[0= d_color[1];
492                     d_color[1= tmp;
493                 }
494             }
495             break;
496         case DD_LEFT:
497             if ( d_state && bottle->empty( d_x-1, d_y ) && bottle->empty( d_x-1, d_y-1 ) ) --d_x;
498             if ( !d_state && bottle->empty( d_x-1, d_y ) ) --d_x;
499             break;
500         case DD_RIGHT:
501             if ( d_state && bottle->empty( d_x+1, d_y ) && bottle->empty( d_x+1, d_y-1 ) ) --d_x;
502             if ( !d_state && bottle->empty( d_x+1, d_y ) ) --d_x;
503             break;
504         default:
505             break;
506         }
507     }
508     void fall( void )
509     {
510         d_direct = DD_DOWN;
511         move();
512     }
513     void setDirect( DoctorDirect direct )
514     {
515         d_direct = direct;
516     }
517 };
518 
519 static Doctor* doctor = NULL;
520 
521 void init( void )
522 {
523     bottle = new Bottle( 522470 );
524     doctor = new Doctor();
525 }
526 
527 void key( unsigned char key_char, int not_use, int not_use_1 )
528 {
529     switch ( key_char )
530     {
531     case 'w':
532     case 'W':
533         doctor->setDirect( DD_UP );
534         break;
535     case 's':
536     case 'S':
537         doctor->setDirect( DD_DOWN );
538         break;
539     case 'a':
540     case 'A':
541         doctor->setDirect( DD_LEFT );
542         break;
543     case 'd':
544     case 'D':
545         doctor->setDirect( DD_RIGHT );
546         break;
547     default:
548         doctor->setDirect( DD_NODIRECT );
549         break;
550     }
551 }
552 
553 
554 void step( void )
555 {
556     if ( dead ) 
557         return ;
558     doctor->move();
559     ++count; 
560     if ( count == speed ) 
561     {
562         count = 0;
563         doctor->fall(); 
564     }
565 }
566 
567 void timer( int not_use )
568 {
569     step();
570     glutPostRedisplay();
571     if ( !dead )
572     {
573         glutTimerFunc( 10, timer, 0 );
574     }
575 }
576 
577 void drawBG( void )
578 {
579     int i,j;
580     glColor3f( 0.0f0.0f0.7f );
581     for ( i = 0; i < 32++i )
582     {
583         for ( j = 0; j < 30++j )
584         {
585             if ( ((i+j)&1== 0 )
586                 glRectf( i*20, j*16, (i+1)*20, (j+1)*16 );
587         }
588     }
589 }
590 
591 void draw( void )
592 {
593     drawBG();
594     bottle->drawBottle();
595     doctor->drawDoctor();
596 }
597 
598 void display( void )
599 {
600     glClear( GL_COLOR_BUFFER_BIT );
601     draw();
602     glutSwapBuffers();
603 }
604 
605 int main( int argc, char * argv[] )
606 {
607     static GLint    ImageWidth;
608     static GLint    ImageHeight;
609 
610     // 打開文件
611     FILE* pFile = fopen("blueworm.bmp""rb");
612     if( pFile == 0 )
613         exit(0);
614 
615     // 讀取圖象的大小信息
616     fseek(pFile, 0x0012, SEEK_SET);
617     fread(&ImageWidth, sizeof(ImageWidth), 1, pFile);
618     fread(&ImageHeight, sizeof(ImageHeight), 1, pFile);
619 
620     // 計算像素數據長度
621    int PixelLength = ImageWidth * 3;
622     while( PixelLength % 4 != 0 )
623         ++PixelLength;
624     PixelLength *= ImageHeight;
625 
626     // 讀取像素數據
627     BlueWorm = (GLubyte*)malloc(PixelLength);
628     if( BlueWorm == 0 )
629         exit(0);
630 
631     fseek(pFile, 54, SEEK_SET);
632     fread(BlueWorm, PixelLength, 1, pFile);
633 
634     fclose(pFile);
635 
636     pFile = fopen("redworm.bmp""rb");
637     if( pFile == 0 )
638         exit(0);
639 
640     // 讀取圖象的大小信息
641     fseek(pFile, 0x0012, SEEK_SET);
642     fread(&ImageWidth, sizeof(ImageWidth), 1, pFile);
643     fread(&ImageHeight, sizeof(ImageHeight), 1, pFile);
644 
645     // 計算像素數據長度
646     PixelLength = ImageWidth * 3;
647     while( PixelLength % 4 != 0 )
648         ++PixelLength;
649     PixelLength *= ImageHeight;
650 
651     // 讀取像素數據
652     RedWorm = (GLubyte*)malloc(PixelLength);
653     if( RedWorm == 0 )
654         exit(0);
655 
656     fseek(pFile, 54, SEEK_SET);
657     fread(RedWorm, PixelLength, 1, pFile);
658 
659     fclose(pFile);
660 
661 
662     pFile = fopen("yellowworm.bmp""rb");
663     if( pFile == 0 )
664         exit(0);
665 
666     // 讀取圖象的大小信息
667     fseek(pFile, 0x0012, SEEK_SET);
668     fread(&ImageWidth, sizeof(ImageWidth), 1, pFile);
669     fread(&ImageHeight, sizeof(ImageHeight), 1, pFile);
670 
671     // 計算像素數據長度
672     PixelLength = ImageWidth * 3;
673     while( PixelLength % 4 != 0 )
674         ++PixelLength;
675     PixelLength *= ImageHeight;
676 
677     // 讀取像素數據
678     YellowWorm = (GLubyte*)malloc(PixelLength);
679     if( YellowWorm == 0 )
680         exit(0);
681 
682     fseek(pFile, 54, SEEK_SET);
683     fread(YellowWorm, PixelLength, 1, pFile);
684 
685 
686 
687     // 關閉文件
688     fclose(pFile);
689 
690 
691 
692     srand( GetTickCount() );
693     init();
694 
695     glutInit( &argc, argv );
696     glutInitDisplayMode( GLUT_RGBA|GLUT_DOUBLE );
697     glutInitWindowPosition( 5050 );
698     glutInitWindowSize( WindowWidth, WindowHeight );
699     glutCreateWindow( "Dr Mario By PureMilk" );
700     glutDisplayFunc( display );
701     glutKeyboardFunc( key );
702     glutTimerFunc( 10, timer, 0 );
703     gluOrtho2D( 0, WindowWidth, WindowHeight, 0 );
704     glutMainLoop();
705     
706     return 0;
707 }


FeedBack:
# re: 10月26日_707行代碼,比圖形學的頁數還多5_By PureMilk
2008-10-26 21:11 | 肖赫_王婷婷_王冠_鄭燚_孫婷
竟然這么長,今天是沒法看了。明天繼續....  回復  更多評論
  
# re: 10月26日_707行代碼,比圖形學的頁數還多5_By PureMilk[未登錄]
2008-10-26 22:42 | missdeer
在vc中調試RE還是比較方便的,大部分情況RE時,調試器能顯示出當時的調用棧,很容易定位  回復  更多評論
  
# re: 10月26日_707行代碼,比圖形學的頁數還多5_By PureMilk[未登錄]
2008-10-26 22:46 | missdeer
其實比上一篇沒長多少,main里相同的代碼寫了三次-_-b  回復  更多評論
  
# re: 10月26日_707行代碼,比圖形學的頁數還多5_By PureMilk
2008-10-27 15:24 | 肖赫_王婷婷_王冠_鄭燚_孫婷
哈哈哈被你發現啦  回復  更多評論
  

<2010年1月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

常用鏈接

留言簿(6)

隨筆分類(149)

隨筆檔案(150)

同道中人

搜索

  •  

積分與排名

  • 積分 - 50317
  • 排名 - 457

最新隨筆

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美激情成人在线视频| 99国产精品久久久久久久| 国产日韩在线视频| 国产精品www色诱视频| 国产精品99一区二区| 国产精品美女午夜av| 国产精品久久中文| 国户精品久久久久久久久久久不卡| 国产一区二区视频在线观看| 红桃视频国产精品| 亚洲另类视频| 亚洲欧美日韩在线综合| 久久精品国产99精品国产亚洲性色| 欧美自拍偷拍午夜视频| 免费国产一区二区| 日韩特黄影片| 久久精品视频在线| 欧美日韩国产黄| 国产亚洲aⅴaaaaaa毛片| 亚洲国产成人久久综合一区| 日韩亚洲欧美高清| 久久久久久久精| 亚洲精品你懂的| 亚洲精品国产精品国产自| 亚洲欧美中文日韩在线| 欧美99久久| 国产色爱av资源综合区| 亚洲激情午夜| 久久蜜桃av一区精品变态类天堂| 亚洲精品黄色| 欧美aⅴ99久久黑人专区| 国产麻豆精品视频| 一区二区三区不卡视频在线观看| 久久精品国产欧美激情| 亚洲剧情一区二区| 蜜桃av噜噜一区| 欧美伦理91i| 国产深夜精品| 亚洲综合激情| 亚洲精品乱码久久久久| 久久岛国电影| 国产女精品视频网站免费| 99视频一区二区| 欧美福利一区二区三区| 久久成人精品视频| 国产日韩欧美二区| 性欧美超级视频| 亚洲午夜激情| 国产精品乱码一区二区三区| 在线视频精品一区| 亚洲免费观看高清在线观看| 欧美成人综合网站| 亚洲精品婷婷| 日韩视频不卡| 国产精品久久7| 亚洲欧美影院| 亚洲一区免费| 国产日韩视频一区二区三区| 欧美综合国产| 久久国产精品久久久久久电车| 国产日韩高清一区二区三区在线| 欧美一级理论性理论a| 午夜亚洲福利| 1024亚洲| 亚洲免费久久| 国产日韩欧美在线播放| 久久久蜜臀国产一区二区| 久久久久国内| 亚洲毛片av| 亚洲视频狠狠| 国内精品久久久久久久影视蜜臀 | 久久久噜噜噜久久| 久久精精品视频| 亚洲第一黄网| 亚洲精品久久久久久下一站| 欧美日韩免费看| 欧美一级片一区| 久久躁日日躁aaaaxxxx| 日韩天堂在线观看| 亚洲影院一区| 在线看成人片| 日韩视频在线播放| 国产日韩欧美中文| 亚洲精美视频| 国产欧美在线播放| 欧美成人午夜免费视在线看片| 欧美—级高清免费播放| 亚洲欧美日韩精品综合在线观看| 午夜精品久久久久久久久久久久久| 激情久久中文字幕| 日韩午夜精品| 精品成人久久| 一区二区三区久久网| 亚洲综合色网站| 欧美大片免费看| 国产精品白丝av嫩草影院| 久久国产精品一区二区| 久久综合九色综合欧美就去吻| 野花国产精品入口| 久久精品女人天堂| 亚洲性夜色噜噜噜7777| 久久久久久香蕉网| 午夜精品久久久久久久男人的天堂 | 亚洲一区二区精品在线| 在线观看亚洲视频| 亚洲伊人伊色伊影伊综合网| 亚洲激情国产精品| 欧美一区二区三区啪啪| av不卡在线观看| 久久三级视频| 久久经典综合| 欧美亚一区二区| 最新国产成人av网站网址麻豆| 国产一区三区三区| 亚洲校园激情| 亚洲香蕉在线观看| 欧美日韩国产91| 亚洲国产精品一区二区www| 国内精品美女在线观看| 亚洲欧美另类中文字幕| 亚洲一区欧美| 欧美日韩精品综合| 亚洲国产精品综合| 亚洲日本成人女熟在线观看| 久久精品亚洲一区二区三区浴池| 欧美一二三视频| 国产精品一区二区久久| 一本色道久久99精品综合| 亚洲日本成人| 欧美国产先锋| 亚洲精品国产精品国自产观看浪潮| 在线播放日韩| 免费不卡在线视频| 亚洲国产精品va| 日韩亚洲在线观看| 欧美黑人在线观看| 亚洲人屁股眼子交8| 日韩视频一区二区在线观看 | 精品不卡在线| 久久五月婷婷丁香社区| 欧美阿v一级看视频| 1769国产精品| 欧美国产精品一区| 亚洲精品综合精品自拍| 艳妇臀荡乳欲伦亚洲一区| 欧美日韩国产免费观看| 一本久久a久久免费精品不卡| 亚洲视频在线观看网站| 国产精品久久久久久久第一福利| 亚洲一区在线看| 久久综合伊人77777蜜臀| 亚洲丰满少妇videoshd| 欧美激情中文字幕乱码免费| 99在线精品视频在线观看| 亚洲成人在线视频播放 | 久久久999国产| 女仆av观看一区| 日韩视频精品在线观看| 欧美日韩免费一区二区三区| 99re国产精品| 久久久www免费人成黑人精品 | 国产精品v欧美精品∨日韩| 亚洲综合视频1区| 噜噜噜91成人网| 一本在线高清不卡dvd| 国产欧美视频一区二区三区| 久久米奇亚洲| 一区二区三区免费看| 久久精品国产一区二区电影| 亚洲国产美女精品久久久久∴| 欧美日韩18| 久久久久这里只有精品| 一区二区三区欧美在线观看| 久久久久综合一区二区三区| 99热免费精品在线观看| 国产一区二区三区久久久| 欧美国产日韩一区| 欧美影院成人| 一区二区三区精品视频| 欧美a级一区| 久久国产精品99久久久久久老狼| 亚洲美女av网站| 黑人巨大精品欧美黑白配亚洲| 欧美日韩久久精品| 老司机午夜精品视频在线观看| 亚洲午夜性刺激影院| 91久久久亚洲精品| 久久久免费av| 欧美亚洲日本国产| 在线一区视频| 亚洲破处大片| 在线观看国产成人av片| 国产欧美日本| 国产精品视频免费| 国产精品久久久久久久久借妻 | 先锋影音一区二区三区| 日韩一级免费观看| 亚洲国产精品嫩草影院| 欧美 亚欧 日韩视频在线| 久久久久久电影|