亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ch12.htm

?? Java游戲開(kāi)發(fā)
?? HTM
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
<BLOCKQUOTE>
<TT><FONT FACE="Courier">public void init() {<BR>
&nbsp;&nbsp;// Load and track the images<BR>
&nbsp;&nbsp;tracker = new MediaTracker(this);<BR>
&nbsp;&nbsp;Eyes.initResources(this, tracker, 0);<BR>
<BR>
&nbsp;&nbsp;// Load the audio clips<BR>
&nbsp;&nbsp;clip[0] = getAudioClip(getCodeBase(), &quot;Res/Crow.au&quot;);
<BR>
&nbsp;&nbsp;clip[1] = getAudioClip(getCodeBase(), &quot;Res/Hyena.au&quot;);
<BR>
&nbsp;&nbsp;clip[2] = getAudioClip(getCodeBase(), &quot;Res/Monkey.au&quot;);
<BR>
&nbsp;&nbsp;clip[3] = getAudioClip(getCodeBase(), &quot;Res/Tiger.au&quot;);
<BR>
&nbsp;&nbsp;clip[4] = getAudioClip(getCodeBase(), &quot;Res/Wolf.au&quot;);
<BR>
}</FONT></TT>
</BLOCKQUOTE>
<P>
After the audio clips are initialized in <TT><FONT FACE="Courier">init</FONT></TT>
using <TT><FONT FACE="Courier">getAudioClip</FONT></TT>, they
are ready to be played.
<P>
The eyes you see in the applet are implemented as sprites, which
you'll learn about later in today's lesson. These sprites are
created in the <TT><FONT FACE="Courier">run</FONT></TT> method,
which also creates and initializes the sprite list. Listing 12.2
contains the source code for the run method.
<HR>
<BLOCKQUOTE>
<B>Listing 12.2. The </B><TT><B><FONT FACE="Courier">WildAnimals</FONT></B></TT><B>
class's </B><TT><B><FONT FACE="Courier">run</FONT></B></TT><B>
method.<BR>
</B>
</BLOCKQUOTE>
<BLOCKQUOTE>
<TT><FONT FACE="Courier">public void run() {<BR>
&nbsp;&nbsp;try {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;tracker.waitForID(0);<BR>
&nbsp;&nbsp;}<BR>
&nbsp;&nbsp;catch (InterruptedException e) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>
&nbsp;&nbsp;}<BR>
<BR>
&nbsp;&nbsp;// Create and add the sprites<BR>
&nbsp;&nbsp;sv = new SpriteVector(new ColorBackground(this, Color.black));
<BR>
&nbsp;&nbsp;for (int i = 0; i &lt; 8; i++) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;sv.add(new Eyes(this, new Point(Math.abs(rand.nextInt()
%<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size().width), Math.abs(rand.nextInt()
% size().width)),<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i % 2, Math.abs(rand.nextInt()
% 200)));<BR>
&nbsp;&nbsp;}<BR>
<BR>
&nbsp;&nbsp;// Update everything<BR>
&nbsp;&nbsp;long t = System.currentTimeMillis();<BR>
&nbsp;&nbsp;while (Thread.currentThread() == animate) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;// Update the animations<BR>
&nbsp;&nbsp;&nbsp;&nbsp;sv.update();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;repaint();<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;// Play an animal sound<BR>
&nbsp;&nbsp;&nbsp;&nbsp;if ((rand.nextInt() % 15) == 0)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clip[Math.abs(rand.nextInt()
% 5)].play();<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;try {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t += delay;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(Math.max(0, t
- System.currentTimeMillis()));<BR>
&nbsp;&nbsp;&nbsp;&nbsp;}<BR>
&nbsp;&nbsp;&nbsp;&nbsp;catch (InterruptedException e) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;}<BR>
&nbsp;&nbsp;}<BR>
}</FONT></TT>
</BLOCKQUOTE>
<HR>
<P>
Beyond creating the sprites for WildAnimals, the <TT><FONT FACE="Courier">run</FONT></TT>
method also handles playing the random animal sounds. This is
carried out by using the <TT><FONT FACE="Courier">nextInt</FONT></TT>
method of the <TT><FONT FACE="Courier">Random</FONT></TT> object
to get a random number between <TT><FONT FACE="Courier">-15</FONT></TT>
and <TT><FONT FACE="Courier">15</FONT></TT>. This random number
is checked to see whether it is equal to <TT><FONT FACE="Courier">0</FONT></TT>,
in which case a sound is played. This creates a 1-in-31 chance
of a sound being played each time through the update loop. There
is no magic surrounding the range of the random numbers; it was
determined by trying out different values. When a sound is to
be played, <TT><FONT FACE="Courier">nextInt</FONT></TT> is used
again to randomly select which sound to play. That's all there
is to playing the random sounds.
<P>
That covers all the unique aspects of the <TT><FONT FACE="Courier">WildAnimals</FONT></TT>
class. However, you still haven't seen how the eye sprites are
implemented. The <TT><FONT FACE="Courier">Eye</FONT></TT> class
implements a blinking eye sprite that can be either small or large.
It uses a static two-dimensional array of <TT><FONT FACE="Courier">Image</FONT></TT>
objects to store the frame animations for the blinking eye in
each size. Like all derived <TT><FONT FACE="Courier">Sprite</FONT></TT>
classes you've seen, the images are initialized in the <TT><FONT FACE="Courier">initResources</FONT></TT>
method:
<BLOCKQUOTE>
<TT><FONT FACE="Courier">public static void initResources(Applet
app, MediaTracker tracker, int id) {<BR>
&nbsp;&nbsp;for (int i = 0; i &lt; 4; i++) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;image[0][i] = app.getImage(app.getCodeBase(),
&quot;Res/SmEye&quot; + i + &quot;.gif&quot;);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;tracker.addImage(image[0][i], id);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;image[1][i] = app.getImage(app.getCodeBase(),
&quot;Res/LgEye&quot; + i + &quot;.gif&quot;);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;tracker.addImage(image[1][i], id);<BR>
&nbsp;&nbsp;}<BR>
}</FONT></TT>
</BLOCKQUOTE>
<P>
Figure 12.2 shows what the animation images for the eye look like.
<P>
<A HREF="f12-2.gif" ><B>Figure 12.2 : </B><I>The images used by the Eye class.</I></A>
<P>
The <TT><FONT FACE="Courier">Eye</FONT></TT> class contains two
member variables, <TT><FONT FACE="Courier">blinkDelay</FONT></TT>
and <TT><FONT FACE="Courier">blinkTrigger</FONT></TT>, for managing
the rate at which it blinks:
<BLOCKQUOTE>
<TT><FONT FACE="Courier">protected int blinkDelay,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blinkTrigger;</FONT></TT>
</BLOCKQUOTE>
<P>
<TT><FONT FACE="Courier">blinkDelay</FONT></TT> determines how
long the eye waits until it blinks again, and <TT><FONT FACE="Courier">blinkTrigger</FONT></TT>
is the counter used to carry out the wait. They are both initialized
to the blink delay parameter passed into the constructor of <TT><FONT FACE="Courier">Eye</FONT></TT>:
<BLOCKQUOTE>
<TT><FONT FACE="Courier">public Eyes(Component comp, Point pos,
int i, int bd) {<BR>
&nbsp;&nbsp;super(comp, image[i], 0, 1, 2, pos, new Point(0, 0),
0, Sprite.BA_WRAP);<BR>
&nbsp;&nbsp;blinkTrigger = blinkDelay = bd;<BR>
}</FONT></TT>
</BLOCKQUOTE>
<P>
The only overridden method in <TT><FONT FACE="Courier">Eye</FONT></TT>
is <TT><FONT FACE="Courier">incFrame</FONT></TT>, which handles
incrementing the animation frame:
<BLOCKQUOTE>
<TT><FONT FACE="Courier">protected void incFrame() {<BR>
&nbsp;&nbsp;if ((frameDelay &gt; 0) &amp;&amp; (--frameTrigger
&lt;= 0) &amp;&amp;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;(--blinkTrigger &lt;= 0)) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;// Reset the frame trigger<BR>
&nbsp;&nbsp;&nbsp;&nbsp;frameTrigger = frameDelay;<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;// Increment the frame<BR>
&nbsp;&nbsp;&nbsp;&nbsp;frame += frameInc;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;if (frame &gt;= 4) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frame = 3;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frameInc = -1;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;}<BR>
&nbsp;&nbsp;&nbsp;&nbsp;else if (frame &lt;= 0) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frame = 0;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frameInc = 1;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blinkTrigger = blinkDelay;
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;}<BR>
&nbsp;&nbsp;}<BR>
}</FONT></TT>
</BLOCKQUOTE>
<P>
It is necessary to override <TT><FONT FACE="Courier">incFrame</FONT></TT>
so that you can add the blinking functionality. This is done by
decrementing <TT><FONT FACE="Courier">blinkTrigger</FONT></TT>
and seeing whether it has reached zero. If so, it's time to blink!
Notice that the blink is still dependent on the frame delay, which
is very important. This is important because you don't want an
added feature, such as blinking, to interrupt a basic function
of the sprite, such as the frame delay.
<P>
The <TT><FONT FACE="Courier">incFrame</FONT></TT> method does
one other thing worth pointing out. If you think about it, a blink
must consist of going through the frame animations forward (to
close the eye) and then backward (to open the eye again). The
standard implementation of <TT><FONT FACE="Courier">incFrame</FONT></TT>
in <TT><FONT FACE="Courier">Sprite</FONT></TT>, which you saw
last week, always goes in a constant direction-that is, forward
or backward as determined by the sign of the <TT><FONT FACE="Courier">frameInc</FONT></TT>
member variable. In <TT><FONT FACE="Courier">Eye</FONT></TT>'s
<TT><FONT FACE="Courier">incFrame</FONT></TT>, you want the frame
animations to go forward and then backward without having to fool
with <TT><FONT FACE="Courier">frameInc</FONT></TT>. The <TT><FONT FACE="Courier">if-else</FONT></TT>
clause in <TT><FONT FACE="Courier">incFrame</FONT></TT> solves
this problem beautifully.
<P>
That finishes up the WildAnimals sample applet. It proves that
sound in Java is not only fun, but it is also easy to implement!
<H2><A NAME="Summary"><B><FONT SIZE=5 COLOR=#FF0000>Summary</FONT></B></A>
</H2>
<P>
Today you learned all about how sound is used in Java. You started
off by learning how Java supports sound through the <TT><FONT FACE="Courier">AudioClip</FONT></TT>
class and a few methods in the <TT><FONT FACE="Courier">Applet</FONT></TT>
class. You then progressed to building a complete applet using
sound to create somewhat of a virtual wilderness at night. It
showed you how easy it is to add sound to Java applets. It also
was a good example of how the sprite classes can be used in new
and creative ways.
<P>
You now have all the background necessary to add sound to any
Java applet you write, including games. Speaking of games, it's
almost time for you to write another one. But that will have to
wait until tomorrow!
<H2><A NAME="QA"><B><FONT SIZE=5 COLOR=#FF0000>Q&amp;A</FONT></B></A>
<BR>
</H2>

<TABLE>
<TR VALIGN=TOP><TD WIDTH=50><B>Q</B></TD><TD><B>Do I have to do anything special to mix sounds in Java?</B>
</TD></TR>
<TR VALIGN=TOP><TD WIDTH=50><B>A</B></TD><TD>No. The Java sound support automatically handles mixing sounds that are being played at the same time. This might seem trivial, but it is actually a very nice feature.
</TD></TR>
<TR VALIGN=TOP><TD WIDTH=50><B>Q</B></TD><TD><B>How do I play MIDI music in Java?</B>
</TD></TR>
<TR VALIGN=TOP><TD WIDTH=50><B>A</B></TD><TD>Right now, you can't. The current version of Java (1.0) doesn't provide any support for MIDI, but hopefully it will appear in a later release. Sun has promised more extensive multimedia features in the near 
future. For now, you can record music as an audio clip and then loop it; more on this tomorrow.
</TD></TR>
<TR VALIGN=TOP><TD WIDTH=50><B>Q</B></TD><TD><B>In the WildAnimals applet, how can I make the eyes blink faster?</B>
</TD></TR>
<TR VALIGN=TOP><TD WIDTH=50><B>A</B></TD><TD>Decrease the blink delay parameter passed into the constructor. More specifically, decrease the number used in the modulus operation after the call to <TT><FONT FACE="Courier">nextInt</FONT></TT>.
</TD></TR>
<TR VALIGN=TOP><TD WIDTH=50><B>Q</B></TD><TD><B>How can I add more animals to the WildAnimals applet?</B>
</TD></TR>
<TR VALIGN=TOP><TD WIDTH=50><B>A</B></TD><TD>The first step is to record or find more animal sounds and copy them to the <TT><FONT FACE="Courier">Res</FONT></TT> directory. You then need to increase the size of the <TT><FONT FACE="Courier">clip</FONT></TT> 
array of <TT><FONT FACE="Courier">AudioClip</FONT></TT> objects and load the new sounds in <TT><FONT FACE="Courier">init</FONT></TT> using the <TT><FONT FACE="Courier">getAudioClip</FONT></TT> method. Finally, in the call to <TT><FONT 
FACE="Courier">play</FONT></TT>  in the <TT><FONT FACE="Courier">run</FONT></TT> method, increase the number used to index into the <TT><FONT FACE="Courier">clip</FONT></TT> array (it is currently <TT><FONT FACE="Courier">5</FONT></TT>).
</TD></TR>
</TABLE>
<P>
<H2><A NAME="Workshop"><B><FONT SIZE=5 COLOR=#FF0000>Workshop</FONT></B></A>
</H2>
<P>
The Workshop section provides questions and exercises to help
you get a better feel for the material you learned today. Try
to answer the questions and at least think about the exercises
before moving on to tomorrow's lesson. You'll find the answers
to the questions in appendix A, &quot;Quiz Answers.&quot;
<H3><A NAME="Quiz"><B>Quiz</B></A></H3>
<OL>
<LI>Are any other sound formats supported by Java besides the
AU format?
<LI>Why should you use the <TT><FONT FACE="Courier">getCodeBase</FONT></TT>
method to get a base URL for a sound rather than the <TT><FONT FACE="Courier">getDocumentBase</FONT></TT>
method?
<LI>When would you need to use an <TT><FONT FACE="Courier">AudioClip</FONT></TT>
object rather than the <TT><FONT FACE="Courier">play</FONT></TT>
method in the <TT><FONT FACE="Courier">Applet</FONT></TT> class?
<LI>How do you stop a looped sound after it has started playing?
</OL>
<H3><A NAME="Exercises"><B>Exercises</B></A></H3>
<OL>
<LI>Draw or find an image containing some animals and use it as
the background. Hint: Use the <TT><FONT FACE="Courier">ImageBackground</FONT></TT>
class instead of the <TT><FONT FACE="Courier">ColorBackground</FONT></TT>
class when creating the <TT><FONT FACE="Courier">SpriteVector</FONT></TT>.
<LI>Try out different values for the blink delay of the eyes.
<LI>Add more animal sounds.
<LI>Modify the <TT><FONT FACE="Courier">Eye</FONT></TT> class
so that the eyes look like the animals are walking around.
</OL>
<P>
<HR WIDTH="100%"></P>

<CENTER><P><A HREF="ch11.htm"><IMG SRC="pc.gif" BORDER=0 HEIGHT=88 WIDTH=140></A><A HREF="index.htm"><IMG SRC="hb.gif" BORDER=0 HEIGHT=88 WIDTH=140></A><A HREF="#CONTENTS"><IMG SRC="cc.gif" BORDER=0 HEIGHT=88 WIDTH=140></A><A HREF="ch13.htm"><IMG 
SRC="nc.gif" BORDER=0 HEIGHT=88 WIDTH=140></A></P></CENTER>

<P>
<HR WIDTH="100%"></P>

</BODY>
</HTML>

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠网亚洲精品| 91精品婷婷国产综合久久性色| 国产一区二区在线免费观看| 麻豆精品视频在线观看免费| 日一区二区三区| 免费观看一级欧美片| 蜜桃一区二区三区在线| 激情综合色播激情啊| 极品尤物av久久免费看| 国产在线视视频有精品| 国内精品嫩模私拍在线| 国产成人免费视频网站高清观看视频 | 久久人人爽人人爽| 337p日本欧洲亚洲大胆色噜噜| 日韩欧美国产午夜精品| 久久久久高清精品| 国产精品乱子久久久久| 亚洲视频一区在线观看| 亚洲影视在线播放| 丝袜亚洲精品中文字幕一区| 琪琪久久久久日韩精品| 国产精品主播直播| 成人app在线观看| 欧美三日本三级三级在线播放| 欧美一a一片一级一片| 日韩视频一区在线观看| 久久精品亚洲精品国产欧美| 中文字幕一区二区视频| 亚洲成人黄色影院| 久久99热国产| 91在线一区二区| 69精品人人人人| 久久久精品免费网站| 亚洲日本一区二区| 蜜臀av性久久久久蜜臀aⅴ| 国产91丝袜在线播放九色| 在线看日韩精品电影| 日韩精品一区二| 中文字幕永久在线不卡| 视频一区二区三区中文字幕| 国产福利精品一区二区| 91成人网在线| 久久久国际精品| av不卡在线播放| 欧美精品乱人伦久久久久久| 国产午夜亚洲精品午夜鲁丝片| 亚洲在线中文字幕| 国产大陆亚洲精品国产| 在线观看免费视频综合| 久久久综合视频| 亚洲综合激情网| 国产盗摄一区二区| 欧美电影在哪看比较好| 中文字幕一区二区三区色视频| 性做久久久久久免费观看欧美| 国产.精品.日韩.另类.中文.在线.播放| 色香蕉成人二区免费| 精品久久一区二区| 亚洲午夜精品在线| 成人午夜在线免费| 日韩欧美久久久| 亚洲在线观看免费| 成人免费高清视频| 欧美一区在线视频| 一区二区久久久| 粉嫩aⅴ一区二区三区四区| 日韩视频在线一区二区| 亚洲小少妇裸体bbw| 不卡高清视频专区| 久久综合狠狠综合久久综合88 | 亚洲国产成人在线| 日本大胆欧美人术艺术动态| 99久久婷婷国产精品综合| 精品剧情在线观看| 视频一区欧美精品| 欧美天堂亚洲电影院在线播放| 国产精品美女久久久久高潮| 黄页网站大全一区二区| 91精品国产综合久久香蕉麻豆| 亚洲人亚洲人成电影网站色| 国产一区福利在线| 精品国产一区二区三区av性色| 亚洲成人7777| 欧美在线一区二区三区| 亚洲欧洲国产日韩| 国产aⅴ精品一区二区三区色成熟| 91精品欧美一区二区三区综合在| 亚洲一区二区在线观看视频| 99国产一区二区三精品乱码| 国产日韩高清在线| 国产一区二区三区免费看| 精品欧美乱码久久久久久| 蜜桃视频一区二区三区在线观看| 欧美美女bb生活片| 婷婷国产v国产偷v亚洲高清| 欧美日韩美少妇| 五月婷婷综合网| 欧美久久免费观看| 午夜影院久久久| 91超碰这里只有精品国产| 一个色在线综合| 欧美日韩一区小说| 午夜精品福利久久久| 8x8x8国产精品| 欧美一区二区三区播放老司机| 亚洲综合色自拍一区| 欧美日韩午夜精品| 日韩国产一区二| 日韩欧美成人一区| 久久成人久久爱| 久久精品在线观看| 高清国产一区二区三区| 中文字幕一区二区三区在线不卡 | 中文字幕免费不卡在线| 成人丝袜视频网| 日韩美女视频一区二区| 色视频一区二区| 午夜久久电影网| 日韩精品一区二区三区四区视频| 麻豆高清免费国产一区| 久久久国产一区二区三区四区小说| 国产精品996| 亚洲免费观看高清完整版在线观看 | 色综合天天综合在线视频| 17c精品麻豆一区二区免费| 色综合久久久久网| 天天操天天综合网| 2021中文字幕一区亚洲| 国产99久久久久| 一区二区理论电影在线观看| 欧美日本国产一区| 国产一区二区女| 亚洲人吸女人奶水| 日韩一区二区在线看| 国产精品18久久久久久vr| 国产精品国产三级国产| 欧美日韩一级片在线观看| 久久精品国产在热久久| 国产精品女同互慰在线看| 欧美日韩三级一区| 国内不卡的二区三区中文字幕| 国产精品国产自产拍高清av| 欧美视频三区在线播放| 国产美女视频一区| 一区av在线播放| 久久丝袜美腿综合| 欧美性极品少妇| 国产做a爰片久久毛片| 亚洲黄色小说网站| 亚洲精品一区在线观看| 91年精品国产| 麻豆精品在线视频| 亚洲免费在线视频| 精品国产91亚洲一区二区三区婷婷| caoporen国产精品视频| 免费国产亚洲视频| 亚洲欧美电影一区二区| 精品久久久久久久久久久久久久久久久 | 日韩视频一区二区三区| 国产成人综合亚洲91猫咪| 亚洲成av人片在线观看无码| 国产丝袜美腿一区二区三区| 欧美色大人视频| 成人av免费在线观看| 麻豆精品久久精品色综合| 亚洲日本一区二区三区| 久久亚洲精品国产精品紫薇| 欧美日韩黄色影视| av电影天堂一区二区在线| 激情六月婷婷久久| 日韩电影在线一区二区三区| 亚洲另类中文字| 欧美激情在线观看视频免费| 91 com成人网| 欧美少妇一区二区| av不卡在线观看| 国产91精品一区二区麻豆亚洲| 日本免费在线视频不卡一不卡二| 亚洲同性同志一二三专区| 久久嫩草精品久久久精品 | 午夜精品福利久久久| 国产精品美女视频| 2021国产精品久久精品| 欧美精品自拍偷拍动漫精品| 91成人在线精品| 97精品久久久久中文字幕| 国产风韵犹存在线视精品| 久久99久久精品| 免费在线观看视频一区| 日韩国产高清在线| 石原莉奈一区二区三区在线观看| 夜夜夜精品看看| 亚洲精品视频在线观看免费| 国产精品精品国产色婷婷| 久久久久99精品国产片| 久久久www成人免费毛片麻豆| 精品国产一区久久| 精品国产免费一区二区三区四区 | 一区二区三区日韩精品| 亚洲另类在线一区|