精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Unity3D 游戲引擎之iOS自定義游戲搖桿與飛機平滑移動

移動開發(fā) iOS 游戲開發(fā)
移動開發(fā)游戲中使用到的觸摸游戲搖桿在iPhone上是非常普遍的,畢竟是全觸摸屏手機,今天MOMO 通過一個小例子和大家討論Unity3D 中如何自定義一個漂亮的全觸摸游戲搖桿。

值得高興的是,Unity3D 游戲引擎的標準資源中已經幫助我們封裝了一個游戲搖桿腳本,所以實現部分的代碼可以完全借助它的,具體調用需要我們自己來。

 Joystick.js是官方提供的腳本,具體代碼如下,有興趣的朋友可以仔細研究研究,MOMO就不多說啦。哇咔咔~

[代碼]js代碼:

001 ////////////////////////////////////////////////////////////// 
002 // Joystick.js 
003 // Penelope iPhone Tutorial 
004 // 
005 // Joystick creates a movable joystick (via GUITexture) that  
006 // handles touch input, taps, and phases. Dead zones can control 
007 // where the joystick input gets picked up and can be normalized. 
008 // 
009 // Optionally, you can enable the touchPad property from the editor 
010 // to treat this Joystick as a TouchPad. A TouchPad allows the finger 
011 // to touch down at any point and it tracks the movement relatively  
012 // without moving the graphic 
013 ////////////////////////////////////////////////////////////// 
014    
015 @script RequireComponent( GUITexture ) 
016    
017 // A simple class for bounding how far the GUITexture will move 
018 class Boundary  
019
020     var min : Vector2 = Vector2.zero; 
021     var max : Vector2 = Vector2.zero; 
022
023    
024 static private var joysticks : Joystick[];                  // A static collection of all joysticks 
025 static private var enumeratedJoysticks : boolean = false; 
026 static private var tapTimeDelta : float = 0.3;              // Time allowed between taps 
027    
028 var touchPad : boolean;                                     // Is this a TouchPad? 
029 var touchZone : Rect; 
030 var deadZone : Vector2 = Vector2.zero;                      // Control when position is output 
031 var normalize : boolean = false;                            // Normalize output after the dead-zone? 
032 var position : Vector2;                                     // [-1, 1] in x,y 
033 var tapCount : int;                                         // Current tap count 
034    
035 private var lastFingerId = -1;                              // Finger last used for this joystick 
036 private var tapTimeWindow : float;                          // How much time there is left for a tap to occur 
037 private var fingerDownPos : Vector2; 
038 private var fingerDownTime : float; 
039 private var firstDeltaTime : float = 0.5; 
040    
041 private var gui : GUITexture;                               // Joystick graphic 
042 private var defaultRect : Rect;                             // Default position / extents of the joystick graphic 
043 private var guiBoundary : Boundary = Boundary();            // Boundary for joystick graphic 
044 private var guiTouchOffset : Vector2;                       // Offset to apply to touch input 
045 private var guiCenter : Vector2;                            // Center of joystick 
046    
047 function Start() 
048
049     // Cache this component at startup instead of looking up every frame     
050     gui = GetComponent( GUITexture ); 
051        
052     // Store the default rect for the gui, so we can snap back to it 
053     defaultRect = gui.pixelInset;    
054        
055     defaultRect.x += transform.position.x * Screen.width;// + gui.pixelInset.x; // -  Screen.width * 0.5; 
056     defaultRect.y += transform.position.y * Screen.height;// - Screen.height * 0.5; 
057        
058     transform.position.x = 0.0; 
059     transform.position.y = 0.0; 
060            
061     if ( touchPad ) 
062     { 
063         // If a texture has been assigned, then use the rect ferom the gui as our touchZone 
064         if ( gui.texture ) 
065             touchZone = defaultRect; 
066     } 
067     else 
068     {                
069         // This is an offset for touch input to match with the top left 
070         // corner of the GUI 
071         guiTouchOffset.x = defaultRect.width * 0.5; 
072         guiTouchOffset.y = defaultRect.height * 0.5; 
073            
074         // Cache the center of the GUI, since it doesn't change 
075         guiCenter.x = defaultRect.x + guiTouchOffset.x; 
076         guiCenter.y = defaultRect.y + guiTouchOffset.y; 
077            
078         // Let's build the GUI boundary, so we can clamp joystick movement 
079         guiBoundary.min.x = defaultRect.x - guiTouchOffset.x; 
080         guiBoundary.max.x = defaultRect.x + guiTouchOffset.x; 
081         guiBoundary.min.y = defaultRect.y - guiTouchOffset.y; 
082         guiBoundary.max.y = defaultRect.y + guiTouchOffset.y; 
083     } 
084
085    
086 function Disable() 
087
088     gameObject.active = false; 
089     enumeratedJoysticks = false; 
090
091    
092 function ResetJoystick() 
093
094     // Release the finger control and set the joystick back to the default position 
095     gui.pixelInset = defaultRect; 
096     lastFingerId = -1; 
097     position = Vector2.zero; 
098     fingerDownPosition = Vector2.zero; 
099        
100     if ( touchPad ) 
101         gui.color.a = 0.025;     
102
103    
104 function IsFingerDown() : boolean 
105
106     return (lastFingerId != -1); 
107
108        
109 function LatchedFinger( fingerId : int ) 
110
111     // If another joystick has latched this finger, then we must release it 
112     if ( lastFingerId == fingerId ) 
113         ResetJoystick(); 
114
115    
116 function Update() 
117 {    
118     if ( !enumeratedJoysticks ) 
119     { 
120         // Collect all joysticks in the game, so we can relay finger latching messages 
121         joysticks = FindObjectsOfType( Joystick ); 
122         enumeratedJoysticks = true; 
123     }    
124            
125     var count = Input.touchCount; 
126        
127     // Adjust the tap time window while it still available 
128     if ( tapTimeWindow > 0 ) 
129         tapTimeWindow -= Time.deltaTime; 
130     else 
131         tapCount = 0; 
132        
133     if ( count == 0 ) 
134         ResetJoystick(); 
135     else 
136     { 
137         for(var i : int = 0;i < count; i++) 
138         { 
139             var touch : Touch = Input.GetTouch(i);           
140             var guiTouchPos : Vector2 = touch.position - guiTouchOffset; 
141        
142             var shouldLatchFinger = false; 
143             if ( touchPad ) 
144             {                
145                 if ( touchZone.Contains( touch.position ) ) 
146                     shouldLatchFinger = true; 
147             } 
148             else if ( gui.HitTest( touch.position ) ) 
149             { 
150                 shouldLatchFinger = true; 
151             }        
152        
153             // Latch the finger if this is a new touch 
154             if ( shouldLatchFinger && ( lastFingerId == -1 || lastFingerId != touch.fingerId ) ) 
155             { 
156                    
157                 if ( touchPad ) 
158                 { 
159                     gui.color.a = 0.15; 
160                        
161                     lastFingerId = touch.fingerId; 
162                     fingerDownPos = touch.position; 
163                     fingerDownTime = Time.time; 
164                 } 
165                    
166                 lastFingerId = touch.fingerId; 
167                    
168                 // Accumulate taps if it is within the time window 
169                 if ( tapTimeWindow > 0 ) 
170                     tapCount++; 
171                 else 
172                 { 
173                     tapCount = 1; 
174                     tapTimeWindow = tapTimeDelta; 
175                 } 
176                                                
177                 // Tell other joysticks we've latched this finger 
178                 for ( var j : Joystick in joysticks ) 
179                 { 
180                     if ( j != this ) 
181                         j.LatchedFinger( touch.fingerId ); 
182                 }                        
183             }                
184        
185             if ( lastFingerId == touch.fingerId ) 
186             {    
187                 // Override the tap count with what the iPhone SDK reports if it is greater 
188                 // This is a workaround, since the iPhone SDK does not currently track taps 
189                 // for multiple touches 
190                 if ( touch.tapCount > tapCount ) 
191                     tapCount = touch.tapCount; 
192                    
193                 if ( touchPad ) 
194                 {    
195                     // For a touchpad, let's just set the position directly based on distance from initial touchdown 
196                     position.x = Mathf.Clamp( ( touch.position.x - fingerDownPos.x ) / ( touchZone.width / 2 ), -1, 1 ); 
197                     position.y = Mathf.Clamp( ( touch.position.y - fingerDownPos.y ) / ( touchZone.height / 2 ), -1, 1 ); 
198                 } 
199                 else 
200                 {                    
201                     // Change the location of the joystick graphic to match where the touch is 
202                     gui.pixelInset.x =  Mathf.Clamp( guiTouchPos.x, guiBoundary.min.x, guiBoundary.max.x ); 
203                     gui.pixelInset.y =  Mathf.Clamp( guiTouchPos.y, guiBoundary.min.y, guiBoundary.max.y );      
204                 } 
205                    
206                 if ( touch.phase == TouchPhase.Ended || touch.phase == TouchPhase.Canceled ) 
207                     ResetJoystick();                     
208             }            
209         } 
210     } 
211        
212     if ( !touchPad ) 
213     { 
214         // Get a value between -1 and 1 based on the joystick graphic location 
215         position.x = ( gui.pixelInset.x + guiTouchOffset.x - guiCenter.x ) / guiTouchOffset.x; 
216         position.y = ( gui.pixelInset.y + guiTouchOffset.y - guiCenter.y ) / guiTouchOffset.y; 
217     } 
218        
219     // Adjust for dead zone  
220     var absoluteX = Mathf.Abs( position.x ); 
221     var absoluteY = Mathf.Abs( position.y ); 
222        
223     if ( absoluteX < deadZone.x ) 
224     { 
225         // Report the joystick as being at the center if it is within the dead zone 
226         position.x = 0; 
227     } 
228     else if ( normalize ) 
229     { 
230         // Rescale the output after taking the dead zone into account 
231         position.x = Mathf.Sign( position.x ) * ( absoluteX - deadZone.x ) / ( 1 - deadZone.x ); 
232     } 
233            
234     if ( absoluteY < deadZone.y ) 
235     { 
236         // Report the joystick as being at the center if it is within the dead zone 
237         position.y = 0; 
238     } 
239     else if ( normalize ) 
240     { 
241         // Rescale the output after taking the dead zone into account 
242         position.y = Mathf.Sign( position.y ) * ( absoluteY - deadZone.y ) / ( 1 - deadZone.y ); 
243     } 
244 }

單擊Create 創(chuàng)建一個GUI Texture,命名為Joy ,它用來顯示游戲搖桿,如下圖所示將搖桿的圖片資源,與搖桿的腳本連線賦值給Joy.  Pixel Inset 中可以設置搖桿的顯示位置與顯示寬高。

到這一步 build and run 就可以在iPhone上看到這個游戲搖桿,并且可以通過觸摸它,360度平滑過度。

在屏幕中繪制一個飛機,通過游戲搖桿去控制飛機的移動。

創(chuàng)建一個腳本,命名為Main.js 如下圖所示  將 Main.js 、joy、plan 分別 綁定在Main Camera 上。

moveJoystick.position.x;

moveJoystick.position.y;

這兩個值是非常重要的兩個信息,它們的取值范圍是 -1 到 +1 ,表示 用戶觸摸搖桿的位置, 上 下 左 右 的信息。

[代碼]js代碼:

01 //游戲搖桿對象 
02 var moveJoystick : Joystick; 
03    
04 //飛機的貼圖 
05 var plan : Texture; 
06    
07 //飛機在屏幕中的坐標 
08 var x = 0; 
09 var y = 0; 
10    
11 //避免飛機飛出屏幕,分別是X、Y最大坐標,最小坐標是0、0 
12 var cross_x = 0; 
13 var cross_y = 0; 
14    
15 //飛機移動的速度 
16 var planSpeed = 20; 
17    
18 function Start() { 
19     //初始化賦值 
20     x = 100; 
21     y = 100; 
22     cross_x = Screen.width -  plan.width; 
23     cross_y = Screen.height -  plan.height; 
24        
25
26    
27 function Update () { 
28     //得到游戲搖桿的反饋信息,得到的值是 -1 到 +1 之間 
29        
30     var touchKey_x =  moveJoystick.position.x; 
31     var touchKey_y =  moveJoystick.position.y; 
32        
33     //搖桿向左 
34     if(touchKey_x == -1){ 
35         x -= planSpeed; 
36            
37     } 
38     //搖桿向右 
39     else if(touchKey_x == 1){ 
40         x += planSpeed; 
41            
42     } 
43     //搖桿向上 
44     if(touchKey_y == -1){ 
45         y += planSpeed; 
46            
47     } 
48     //搖桿向下 
49     else if(touchKey_y == 1){ 
50         y -= planSpeed; 
51            
52     } 
53        
54     //防止飛機飛出屏幕,出界檢測 
55     if(x < 0){ 
56         x = 0; 
57     }else if(x > cross_x){ 
58         x = cross_x; 
59     } 
60        
61     if(y < 0){ 
62         y = 0; 
63     }else if(y > cross_y){ 
64         y = cross_y; 
65     } 
66
67    
68    
69    
70    
71 function OnGUI () { 
72    
73    
74   //將飛機繪制在屏幕中 
75   GUI.DrawTexture(Rect(x,y,128,128),plan);   
76    
77 }

導出 build and run  看看在iPhone 上的效果,通過觸摸游戲搖桿可以控制飛機的移動啦,不錯吧,哇咔咔~~

 

 

 

責任編輯:冰凝兒
相關推薦

2012-12-24 08:40:12

2012-12-24 08:52:44

iOSUnity3D

2012-12-24 08:46:50

iOSUnity3D

2012-12-24 08:57:35

iOSUnity3D

2012-12-24 08:50:21

iOSUnity3D

2012-12-24 09:04:04

iOSUnity3D

2012-12-24 08:48:25

iOSUnity3D

2012-12-24 08:56:15

iOSUnity3D

2012-12-24 09:07:09

iOSUnity3D

2012-12-24 08:51:23

iOSUnity3D

2012-12-24 09:01:41

iOSUnity3D

2012-12-24 08:54:47

iOSUnity3D

2012-12-24 09:06:14

iOSUnity3D

2012-12-24 08:45:19

iOSUnity3D

2012-12-24 09:02:48

iOSUnity3D

2012-12-24 09:11:58

iOSUnity3D

2012-12-24 09:00:31

iOSUnity3D

2012-12-24 09:17:12

iOSUnity3D

2012-12-24 09:15:57

iOSUnity3D

2014-04-17 11:05:30

點贊
收藏

51CTO技術棧公眾號

精品久久久91| 亚洲综合一区在线| 国产精品jizz在线观看麻豆| 级毛片内射视频| 浪潮色综合久久天堂 | 国产美女免费无遮挡| 在线一区视频观看| 亚洲综合久久久久| 日本一区二区三区www| 久久久久精彩视频| 亚洲视频碰碰| 亚洲一区二区福利| 青青草精品在线| 亚洲欧洲自拍| 亚洲精品乱码久久久久久黑人 | 亚洲欧美高清视频| 久久久亚洲一区| 伦伦影院午夜日韩欧美限制| 无套内谢大学处破女www小说| 欧美亚洲福利| 婷婷久久综合九色国产成人| 视频一区视频二区视频| 亚洲奶汁xxxx哺乳期| 美国十次了思思久久精品导航| 欧美激情网友自拍| 91制片厂在线| 欧美极品中文字幕| 欧美大胆人体bbbb| 美女网站视频黄色| 小草在线视频免费播放| 亚洲综合成人网| 亚洲精品欧美精品| 欧美91精品久久久久国产性生爱| 久久激情五月激情| 国产成人在线精品| 国产无人区码熟妇毛片多| 婷婷亚洲综合| 在线精品国产成人综合| 欧美双性人妖o0| 网站一区二区| 555夜色666亚洲国产免| 免费观看国产精品视频| 制服丝袜中文字幕在线| 一区在线中文字幕| 亚洲国产欧美不卡在线观看 | 中文在线资源观看视频网站免费不卡| 人妻体内射精一区二区三区| 国产精品毛片aⅴ一区二区三区| 在线中文字幕一区| 国产免费毛卡片| sm在线观看| 亚洲永久精品国产| 久久久久久久香蕉| 视频在线这里都是精品| 亚洲图片你懂的| 欧美h视频在线观看| 91精品大全| 中文在线免费一区三区高中清不卡| 久久久99国产精品免费| 五月天激情婷婷| 成人动漫一区二区在线| 国产欧美日韩一区| 乱精品一区字幕二区| 丁香桃色午夜亚洲一区二区三区| 亚洲一区二区久久久久久久| 国产精品久久久久久久一区二区| 另类欧美日韩国产在线| 国产精品一区二区三区在线播放 | 欧美激情专区| 青青免费在线视频| 国产亚洲1区2区3区| 日韩资源av在线| 福利视频在线看| 中文字幕一区免费在线观看| 亚洲 国产 欧美一区| 天堂资源在线中文| 最新不卡av在线| 日韩人妻一区二区三区蜜桃视频| 激情图片在线观看高清国产| 午夜精品久久久久影视| 男人天堂1024| 久久xxx视频| 欧美精品一卡二卡| 国产欧美视频一区| 美女久久久久| 精品国产网站地址| 久久精品国产av一区二区三区| 最新成人av网站| 国产91免费看片| 一区二区三区午夜| 成人性生交大片免费| 免费国产一区二区| 日本中文字幕伦在线观看| 一区二区三区精品视频| 1024av视频| 国产69精品久久| 日韩精品中午字幕| 无码国产69精品久久久久同性| 人人狠狠综合久久亚洲婷| 久久91超碰青草是什么| 成年人免费高清视频| 久久电影网站中文字幕| 国产精品果冻传媒潘| 草碰在线视频| 亚洲香肠在线观看| 青青青在线视频免费观看| 秋霞一区二区三区| 亚洲欧洲一区二区三区久久| 欧美色图一区二区| 天堂精品中文字幕在线| 91成人理论电影| 欧美孕妇孕交黑巨大网站| 香蕉免费毛片视频| 美腿丝袜一区二区三区| 精品乱色一区二区中文字幕| h视频网站在线观看| 亚洲香蕉伊在人在线观| 99国产精品久久久久久| 欧美亚洲大陆| 欧美另类极品videosbest最新版本| www亚洲视频| 国产成人亚洲精品青草天美| 午夜久久资源| 性孕妇free特大另类| 日韩三级高清在线| 香蕉成人在线视频| 丝袜美腿亚洲一区| 精品网站在线看| 色婷婷在线播放| 欧美猛男gaygay网站| 精品国产成人亚洲午夜福利| 亚洲高清免费| 999视频在线观看| 日本三级在线播放完整版| 色视频一区二区| 你懂得在线视频| 精品动漫3d一区二区三区免费版 | 不卡免费追剧大全电视剧网站| 欧美人妇做爰xxxⅹ性高电影 | 国产精品婷婷| 高清视频一区| 午夜av在线免费观看 | 日本美女一级片| 亚洲欧美偷拍三级| 无尽裸体动漫2d在线观看| 精品久久久久久久久久久下田| 91高潮在线观看| 老牛影视av牛牛影视av| 夜夜夜精品看看| 国产精品欧美性爱| 欧美精品一区二区三区久久久竹菊| 成人激情视频在线观看| 欧美18一19xxx性| 欧美人成免费网站| 久草综合在线视频| 国产精品中文字幕欧美| 免费的av在线| 亚洲午夜精品| 久久久爽爽爽美女图片| 秋霞视频一区二区| 天天色综合天天| free性中国hd国语露脸| 麻豆精品网站| 亚洲一区二区在线观| 99只有精品| 日韩在线播放视频| 精品国产免费无码久久久| 一区二区三区精品| 免费日本黄色网址| 欧美一区=区| 午夜一区二区三区| 国产精品3区| 国内精品久久久久影院 日本资源| 人成网站在线观看| 在线观看日韩精品| 国产精品久久国产精麻豆96堂| 精品在线播放免费| 久久www视频| 麻豆国产欧美一区二区三区r| 人人爽久久涩噜噜噜网站| 东热在线免费视频| 欧美一区二区三区精品| 日韩伦人妻无码| 久久久亚洲综合| 欧美www在线| www.88av| 麻豆91精品视频| 特大黑人娇小亚洲女mp4| swag国产精品一区二区| 欧美又大又粗又长| 日本在线免费| 亚洲电影在线观看| 国产第一页在线观看| 亚洲人一二三区| 一女三黑人理论片在线| 日本强好片久久久久久aaa| 麻豆传媒网站在线观看| 国产精品欧美三级在线观看| 91影视免费在线观看| 自拍网站在线观看| 久久精品电影网站| 五月婷婷开心中文字幕| 欧美军同video69gay| 久久免费激情视频| 亚洲欧美另类图片小说| 日韩精品卡通动漫网站| 国产一区二区三区不卡在线观看| 九九九九免费视频| 亚洲深深色噜噜狠狠爱网站| 欧美另类高清视频在线| 一区二区三区四区视频免费观看| 日韩av电影在线网| 麻豆蜜桃在线| 日韩一区二区久久久| 三级在线电影| 日韩欧美成人激情| 136福利视频导航| 精品久久久视频| 福利所第一导航| 国产精品青草综合久久久久99| 国产午夜在线一区二区三区| 久久狠狠亚洲综合| 日韩视频免费在线播放| av成人激情| 久久久久久久9| 亚洲精品va| 午夜精品福利一区二区| 亚洲色图丝袜| 国产精品乱码一区二区三区| 99国内精品久久久久| 国产精品成av人在线视午夜片| 蜜臀av在线| 美女av一区二区三区| 欧美96在线| 最近2019中文免费高清视频观看www99| 天天操天天干天天爱| 欧美成人欧美edvon| 国产乱码久久久| 欧美久久免费观看| 亚洲网站免费观看| 日本久久电影网| 男人日女人网站| 欧美香蕉大胸在线视频观看| 日韩欧美亚洲一区二区三区| 亚洲一区二区精品久久av| 欧美黑吊大战白妞| 一级做a爱片久久| 久草视频在线资源站| 玉足女爽爽91| 美女视频黄免费| 亚洲一区二区偷拍精品| 毛片aaaaa| 亚洲成av人片一区二区三区| 精品无码人妻一区二区三区品| 亚洲一区二区高清| 日本一二三区不卡| 精品成人久久av| 中文字字幕在线中文| 91久久香蕉国产日韩欧美9色| chinese国产精品| 91国产成人在线| 亚洲精品91天天久久人人| 欧美婷婷六月丁香综合色| 怡红院成永久免费人全部视频| 欧美日韩不卡视频| 国产99999| 亚洲电影第1页| 日韩欧美电影在线观看| 亚洲人在线视频| av在线免费观看网| 久久国产精品久久久久| 丁香花在线观看完整版电影| 97国产精品视频人人做人人爱| 亚洲精品88| 国产精品入口免费视| 久久综合偷偷噜噜噜色| 国产成人免费观看| 你微笑时很美电视剧整集高清不卡| 日韩欧美第二区在线观看| 久久精品国内一区二区三区水蜜桃| 日韩不卡视频一区二区| 翔田千里一区二区| 天天视频天天爽| 成人自拍视频在线观看| 女~淫辱の触手3d动漫| 中文字幕一区av| 国产网站在线看| 91久久香蕉国产日韩欧美9色| 国产精品无码AV| 亚洲精品av在线播放| 鲁鲁视频www一区二区| 久草精品在线| 国产对白在线播放| 国产精品丝袜xxxxxxx| 波多野结衣国产精品| 99久久精品免费| 羞羞在线观看视频| 午夜欧美一区二区三区在线播放| 久久精品视频2| 精品国产免费一区二区三区香蕉| 久久精品色图| 欧美国产极速在线| 亚洲日本在线观看视频| 国产激情美女久久久久久吹潮| 精品免费av| 成年人网站国产| 久久精品国产99国产精品| 午夜视频在线观看国产| 日韩一区有码在线| 精品国产乱子伦| 日韩精品一区二区三区中文不卡 | 亚洲色图色老头| 午夜av在线免费观看 | 亚洲综合影院| 日韩妆和欧美的一区二区| 99国产精品久久久久久久成人热| 色婷婷综合网站| 久久欧美一区二区| 精品一级少妇久久久久久久| 欧美日韩一级大片网址| 欧美大片aaa| 国内免费久久久久久久久久久| 日日夜夜亚洲| 日韩免费三级| 三级欧美在线一区| 日韩精品人妻中文字幕有码 | 热这里只有精品| 日本网站在线观看一区二区三区| www.免费av| 亚洲国产日韩综合久久精品| 国产精品爽爽久久久久久| 一区二区三区日韩在线| 色在线中文字幕| 韩国一区二区三区美女美女秀| 牛牛国产精品| 中文字幕在线视频一区二区三区 | 日本不卡一区二区三区视频| 亚洲激情视频| 午夜福利三级理论电影| 怡红院av一区二区三区| 国产视频手机在线| 久久亚洲电影天堂| 粉嫩一区二区三区在线观看| 在线免费观看一区二区三区| 日韩成人午夜电影| 日本一级免费视频| 欧美性受极品xxxx喷水| 国产资源在线观看| 国产精品第七十二页| 视频精品在线观看| 日本三区在线观看| 国产亚洲婷婷免费| 波多野结衣绝顶大高潮| 国产一区二区三区丝袜| 欧美日韩精品一区二区三区视频| 日本免费高清一区二区| 日韩精品成人一区二区在线| 国产成人免费观看网站| 欧美亚洲综合久久| 日本精品一区二区三区在线播放| 91久久国产精品91久久性色| 亚洲精品97| 日本一区二区在线免费观看| 欧美日韩在线看| 99精品老司机免费视频| 成人春色激情网| 国产精品国码视频| 好吊日免费视频| 欧美探花视频资源| 黄视频网站在线看| 国产视频一区二区不卡| 免费国产自线拍一欧美视频| 亚欧精品视频一区二区三区| 欧美顶级少妇做爰| 国精一区二区三区| 欧美日韩一区二区三区在线观看免| 日韩精品电影一区亚洲| 日韩视频中文字幕在线观看| 亚洲护士老师的毛茸茸最新章节| 日本综合久久| 国产成人免费高清视频| 91在线观看下载| 中文字幕一区二区三区人妻四季| 欧美成人剧情片在线观看| 日韩成人动漫在线观看| 奇米影音第四色| 亚洲国产视频在线| 国产三区四区在线观看| 7777精品伊久久久大香线蕉语言| 国产精品毛片一区二区三区| 三区四区在线观看| 精品福利视频一区二区三区| 欧美色网在线| 大陆极品少妇内射aaaaaa| 久久精品亚洲乱码伦伦中文| 国产农村妇女毛片精品| 日韩av免费在线观看| 中文字幕午夜精品一区二区三区| 大又大又粗又硬又爽少妇毛片| 欧美妇女性影城|