⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java游戏编程初步2.htm

📁 编写游戏的初步知识
💻 HTM
📖 第 1 页 / 共 2 页
字号:
            <P>   mouseExited() 当鼠标离开你所监听的组件时发生.</P>
            <P>  <B>Mouse 移动事件</B></P>
            <P>  鼠标移动主要通过接口MouseMotionListener来实现:</P>
            <P>   mouseDragged() 当用户按下鼠标按钮并在松开之前进行移动时发生.在mouseDragged() 
            后松开鼠标不会导致mouseClicked().</P>
            <P>   mouseMoved() 当鼠标在组件上移动而 不时拖动时发生.</P>
            <P>  依据我们的游戏设计,我们在这要使用到MouseListener接口。实现接口后。我们要在init()函数加入监听器addMouseLisener(),来监听对applet的响应事件。</P>
            <P>  知道了鼠标事件的处理,我们再来回顾一下上面提到的球反弹设计,现在我们要如何处理了球的控制呢?让我们想一想,不错,可能你已经发现了,我们照样可通过改变speed方向来实现回弹控制操作。在mousePressed(){}事件中加入下面的代码,我们的回弹控制就设计完成。</P>
            <P>speed = -4<BR></P>
            <P>  记得在释放applet资源时,我们要释放mouseListener资源。在destory()中加入</P>
            <P>removeMouseListener(this);</P>
            <P>  可能有些朋友会使用mouseDown()方法,mouseDown()在此我建议大家不要再使用这个方法了,它已经是被淘汰的产品。是为了兼容JDK1.0而带到JDK1.4中来的。</P>
            <P><FONT size=3><STRONG>键盘监听技术</STRONG> </FONT></P>
            <P></P>
            <P><FONT size=3></FONT></P>
            <P>  知道了鼠标的操作处理,键盘的操作处理就很简单了。我们只要实现keyListener接口,并在相应的事件中加入我们要实现的代码。</P>
            <P>   KeyPressed: 当按键时发生</P>
            <P>   KeyReleased:当翻译键时发生</P>
            <P>   KeyTyped:当打击键时发生</P>
            <P></P>
            <P>  由于在后面我们设计的游戏中我们不会使用到键盘操作,键盘事件处理我们就交给大家自己去实现。</P>
            <P></P>
            <P>  现在我们来回顾一下我们能做什么了?移动一个物体,加载声音和图片,用鼠标对游戏进行一定的控制。哦,我的天,我们已经可以做自己的很简单的游戏了。是的,你可以了,我认为在此,大家可以放下教程,把自己小时候一直想玩的游戏,把自己学程序时一直想做的游戏自己进行设计实现,这对你的帮助将是非常大的。对你的编程水平也是一个很大的提高。</P>
            <P>  当然如果你仍然认为自己认识还不是很深,下面让我们来设计一个完整的游戏。这将是一个很有意思的过程。</P>
            <P></P>
            <P>  <B>第一个游戏-"保卫者"</B></P>
            <P>  主线思路:</P>
            <P>  真正做自己的游戏是总是很兴奋。在开始任何事情之前,我们都要有个好的设计,游戏更不例外。下面我们就以上面的例子为本。设计一个”保卫者”的游戏。游戏思路本身很简单,从屏幕的顶端不断的有炸弹落下来,而我们这些”保卫者” 
            要在它们着地之前,用鼠标点击让它反弹回去,不让它落到地面上来,但是球在上升过程中我们也要注意不让它撞到顶上。如果撞到顶上或地画,你的生命点数都会减少。每点中一个炸弹你的分数就会增加。当你的生命点数为零。”Game 
            Over”。</P>
            <P>  设计结构:</P>
            <P>  1.模块设计:</P>
            <P>  游戏的结构很简单,由三个模块组成。</P>
            <P>  Denfen类:Denfen类控制整个游戏主线程,初始化炸弹类,并绘制屏幕上的炸弹数量及处理炸弹的移动,并监听鼠标事件</P>
            <P>  Bomb类:主要是判断炸弹的速度,方向,是否撞到地面和点击事件</P>
            <P>  Denfense类:主要用来处理游戏者的记分和生命点数</P>
            <P></P>
            <P>  2.方法实现:</P>
            <P>  Denfen:</P>
            <P>  init(): 初始化所有对象,包括声音文件的加载,Bomb类的生成</P>
            <P>  run(): 处理炸弹的下降运动</P>
            <P>  paint(...):绘制炸弹及相关的数据记录显示</P>
            <P>  update(...): 实现屏幕图像的双缓冲,消除闪烁</P>
            <P>  mouseProcess (...): 
            利用mouseEvent事件监听来处理鼠标按下事件,并根据鼠标当时的x坐标和y坐标判断是否点中炸弹。</P>
            <P>  addBomb():利用默认值来动态实现bomb的生成,这里我们利用了数组来记录的。默认值是3,大家可依据自己的爱好增加或减少记录。</P>
            <P>  Denfenser:</P>
            <P>  Score:积分</P>
            <P>  Life:生命点</P>
            <P>  AddScore():增加游戏者的积分</P>
            <P>  Death():减少游戏者的生命点数</P>
            <P>  getScore():获得当前的积分数</P>
            <P>  getLife():获得当前的生命点数</P>
            <P>  Bomb:</P>
            <P>  Bomb(...): 构造函数,初始化炸弹的位置,声音,颜色等相关变量的值.</P>
            <P>  down():处理bomb的下降</P>
            <P>  isRebound ():反向回弹炸弹的方向,并根据积分来加快炸弹的下降速度</P>
            <P>  userHit (int x, int y):游戏者是否点中炸弹。</P>
            <P>  wasHitEarth(): 判断炸弹是否撞击到地面或顶面,如果是生命点将减少。</P>
            <P>  DrawBomb(Graphics g): 绘制Bomb图象。</P>
            <P>  3.工作原理:</P>
            <P>  首先我们在init()方法中加载所有游戏必要的资源,包括声音,鼠标事件的监听、背景等相关设置。利用addBomb()方法增加bomb的数量、初始位置及初始化颜色。再利用start()启动线程。线程调用run()方法,处理炸弹下降运动down()。Repaint()会在每一个单位时间调用paint()方法不断的刷新屏幕,paint()调用Bomb.addBomb()绘制炸弹。当游戏者按下鼠标,mousePress()事件激活,判断是否点中了炸弹。如果点中addScore()自动加1分。如果没有点中炸弹,炸弹继续下降,当撞到屏幕wasHitEarth()方法激活,其内调用death()方法,减少Denfenser.life生命点,同时audio.play()处理声音的播放,用以提示游戏者。当你的生命点数小于0时”Game 
            Over”。</P< p>
            <P align=center><B><A 
            href="http://www.javaeasy.com/ArticleShow.asp?ArticleID=772&amp;ArticlePage=1">上一页</A>&nbsp;&nbsp;<A 
            href="http://www.javaeasy.com/ArticleShow.asp?ArticleID=772&amp;ArticlePage=1">[1]</A>&nbsp;<FONT 
            color=red>[2]</FONT>&nbsp;<A 
            href="http://www.javaeasy.com/ArticleShow.asp?ArticleID=772&amp;ArticlePage=3">[3]</A>&nbsp;&nbsp;<A 
            href="http://www.javaeasy.com/ArticleShow.asp?ArticleID=772&amp;ArticlePage=3">下一页</A></B></P>
            <P></P></TD>
          <TD width=20>&nbsp;</TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width="100%" align=center 
      bgColor=#ffffff border=0>
        <TBODY>
        <TR>
          <TD vAlign=top height=37>
            <DIV align=center></DIV></TD></TR></TBODY></TABLE>
      <TABLE class=border style="WORD-BREAK: break-all" cellSpacing=0 
      cellPadding=0 width="100%" align=center bgColor=#ffffff border=0>
        <TBODY>
        <TR class=tdbg>
          <TD><IMG height=14 src="Java游戏编程初步2.files/aer.gif" width=8 
            border=0>上一篇文章:<A 
            title="文章标题:Java学习&nbsp;:第二十讲&nbsp;动画制作及声音载入(三)&#13;&#10;作    者:佚名&#13;&#10;更新时间:2004-5-31 9:32:57&#13;&#10;点击次数:163" 
            href="http://www.javaeasy.com/ArticleShow.asp?ArticleID=748">Java学习&nbsp;:第二十讲&nbsp;动画制作及声音载入(三)</A><BR><IMG 
            height=14 src="Java游戏编程初步2.files/aer.gif" width=8 border=0>下一篇文章:没有了 
          </TD></TR></TBODY></TABLE>
      <DIV align=right>
      <TABLE cellSpacing=0 cellPadding=0 width="100%" align=center 
      bgColor=#ffffff border=0>
        <TBODY>
        <TR>
          <TD>
            <DIV align=right><A 
            href="http://www.javaeasy.com/Comment.asp?ArticleID=772" 
            target=_blank><IMG src="Java游戏编程初步2.files/pl.jpeg" border=0></A><A 
            href="http://www.javaeasy.com/printpage.asp?ArticleID=772"><IMG 
            src="Java游戏编程初步2.files/print.jpeg" 
      border=0></A></DIV></TD></TR></TBODY></TABLE></DIV>
      <TABLE cellSpacing=0 cellPadding=0 width="100%" align=center 
      bgColor=#ffffff border=0>
        <TBODY>
        <TR>
          <TD vAlign=top width="33%">
            <TABLE class=border style="WORD-BREAK: break-all" cellSpacing=0 
            cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR class=title>
                <TD vAlign=top background=Java游戏编程初步2.files/homedhbg.gif><IMG 
                  height=34 src="Java游戏编程初步2.files/xgwz.gif" width=173 
                border=0></TD></TR>
              <TR class=tdbg>
                <TD vAlign=top height=100>
                  <LI><A 
                  title="文章标题:JAVA中通用JPEG缩影图Bean的制作与示例&#13;&#10;作    者:AbnerChai&#13;&#10;更新时间:2004-7-9 9:16:11&#13;&#10;点击次数:538" 
                  href="http://www.javaeasy.com/ArticleShow.asp?ArticleID=779">JAVA中通用JPEG缩影图Bean的制…</A>[<FONT 
                  color=red>538</FONT>]<BR>
                  <LI><A 
                  title="文章标题:JFreeChart&nbsp;--&nbsp;柱状图&#13;&#10;作    者:王恩建&#13;&#10;更新时间:2004-6-19 21:55:03&#13;&#10;点击次数:1102" 
                  href="http://www.javaeasy.com/ArticleShow.asp?ArticleID=778">JFreeChart&nbsp;--&nbsp;柱状图</A>[<FONT 
                  color=red>1102</FONT>]<BR>
                  <LI><A 
                  title="文章标题:JFreeChart-饼状图-中级&#13;&#10;作    者:王恩建&#13;&#10;更新时间:2004-6-19 21:53:09&#13;&#10;点击次数:837" 
                  href="http://www.javaeasy.com/ArticleShow.asp?ArticleID=777">JFreeChart-饼状图-中级</A>[<FONT 
                  color=red>837</FONT>]<BR>
                  <LI><A 
                  title="文章标题:JFreeChart-饼状图-初级&#13;&#10;作    者:王恩建&#13;&#10;更新时间:2004-6-19 21:50:58&#13;&#10;点击次数:736" 
                  href="http://www.javaeasy.com/ArticleShow.asp?ArticleID=776">JFreeChart-饼状图-初级</A>[<FONT 
                  color=red>736</FONT>]<BR>
                  <LI><A 
                  title="文章标题:文本编辑器源文件&#13;&#10;作    者:大砍刀&#13;&#10;更新时间:2004-6-19 21:37:07&#13;&#10;点击次数:1055" 
                  href="http://www.javaeasy.com/ArticleShow.asp?ArticleID=775">文本编辑器源文件</A>[<FONT 
                  color=red>1055</FONT>]<BR></LI></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
      <TABLE class=border style="WORD-BREAK: break-all" cellSpacing=0 
      cellPadding=0 width="100%" align=center bgColor=#ffffff border=0>
        <TBODY>
        <TR class=title>
          <TD vAlign=top width="5%" background=Java游戏编程初步2.files/homedhbg.gif 
          height=34><IMG height=34 src="Java游戏编程初步2.files/wzpl.gif" 
          width=126></TD>
          <TD vAlign=center width="95%" 
          background=Java游戏编程初步2.files/homedhbg.gif>
            <TABLE cellSpacing=0 cellPadding=0 width="75%" border=0>
              <TBODY>
              <TR>
                <TD>
                  <P></P>
                  <P>(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)</P></TD></TR></TBODY></TABLE></TD></TR>
        <TR class=tdbg>
          <TD colSpan=2>&nbsp;&nbsp;&nbsp;&nbsp;没有任何评论 
  </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="99%" align=center bgColor=#ffffff 
border=0>
  <TBODY>
  <TR>
    <TD>
      <TABLE class=border cellSpacing=0 cellPadding=0 width=760 align=center 
      border=0>
        <TBODY>
        <TR class=title align=middle height=20>
          <TD>┋&nbsp;<A 
            onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.javaeasy.com/');" 
            href="http://www.javaeasy.com/ArticleShow.asp?ArticleID=772&amp;ArticlePage=2#">设为首页</A>&nbsp;┋&nbsp;<A 
            href="javascript:window.external.addFavorite('http://www.javaeasy.com/','javaeasy')">加入收藏</A>&nbsp;┋&nbsp;<A 
            href="mailto:chen134888@sohu.com">联系站长</A>&nbsp;┋&nbsp;<A 
            href="http://www.javaeasy.com/FriendSite.asp" 
            target=_blank>友情链接</A>&nbsp;┋&nbsp;<A 
            href="http://www.javaeasy.com/admin/login.asp" 
            target=_blank>关于本站</A>&nbsp;┋&nbsp;<BR>版权所有 Copyright &copy; 2004 <A 
            href="http://www.javaeasy.com/SiteUrl" target=_blank>JavaEasy.com , 
            All Rights Reserved </A></TD></TR>
        <TR class=tdbg vAlign=bottom align=middle height=20>
          <TD></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -