• 大小: 1.6MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-24
  • 语言: Java
  • 标签: 超级玛丽  

资源简介

儿时超级玛丽java实现源码,小时候玩遍了,现在来看看实现是怎么个回事儿吧,说不定会有新的理解呢

资源截图

代码片段和文件信息

package com.brackeen.javagamebook.graphics;
//Download by http://www.codefans.net
import java.awt.Image;
import java.util.ArrayList;

import com.brackeen.javagamebook.graphics.Animation.Animframe;
/*
 * Animframe 是一个记录游戏进程,以及当前所处的像素段的类。
 * 
 * 它作用于整个过程。对于处理整个图片显示有着至关重要的作用。

*/
public class Animation {

    private ArrayListame> frames;   //---元素记录时间和图像---------
    private long totalDuration; //---总时间     ,记录ArryList中时间的和--,实际是为增加一个新的Aniframe服务的,因为每一个新的服务都会由图片和结束时间来定义。------
    
    
    private int currframeIndex;    //-当前的Animframe下标。其实也是为增加一个新的Aniframe服务的,还有就是对于调用Animation的component函数进行显示当前的界面。
    private long animTime;        //---当前像素    哈哈哈哈!!!!!-----So easy!!

    /**
        Creates a new empty Animation.
    */
    public Animation() {
        this(new ArrayList() 0);  //---只是为了方便?外界只能构造一个空的Animation;
    }
//---为什么要这样设计?让构造方法私有,然后公有调用。
    
    private Animation(ArrayList frames long totalDuration) {
        this.frames = frames;
        this.totalDuration = totalDuration;
        start();    //---开局了,哈哈哈!!!!!
    }
    /**
        Creates a duplicate of this animation. The list of frames
        are shared between the two Animations but each Animation
        can be animated independently.
    */
    public object clone() {
        return new Animation(frames totalDuration);
    }


    /**
        Adds an image to the animation with the specified
        duration (time to display the image).
    */
    //-----------向ArryList数组中增加元素----------这个函数时是加锁的函数。
    public synchronized void addframe(Image imagelong duration)   //--我认为时间应该表示的是像素的长度。duration,表示的是图片像素的长度。
    {
        totalDuration += duration;
        frames.add(new Animframe(image totalDuration));  //---增加一个新的Animframeframes是一个ArryList数组。
    }

    /**
        Starts this animation over from the beginning.对线程加锁!一次游戏开始!!
    */
    public synchronized void start() {
        animTime = 0;
        currframeIndex = 0;    //------开始启动----
    }

    /**
        Updates this animation‘s current image (frame) if
        necessary.
    */
    
  //---下面的函数是用于外调的,当触发向前走的世间的时候会调用此函数。将当前活跃的下标前进1;
    public synchronized void update(long elapsedTime) {
        if (frames.size() > 1)
        {
            animTime += elapsedTime; //---当前活动的时间----

            if (animTime >= totalDuration) {
                animTime = animTime % totalDuration;  //----?????这是为什么呢??
                currframeIndex = 0;   //---
            }

            while (animTime > getframe(currframeIndex).endTime) {
                currframeIndex++;   //----找到当前应该活跃的图片的下标。
            }
        }
    }


    /**
        Gets this Animation‘s current image. Returns null if this
        animation has no images.   得到激活状态的图片。
    */
    public synchronized Image getImage() {
        if (frames.size() == 0) {
            return null;
        }
        else {
            return getframe(currframeIndex).image;
  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        232  2012-04-18 08:48  brackeen\.classpath

     文件        384  2010-09-08 13:32  brackeen\.project

     文件        629  2012-04-18 08:47  brackeen\.settings\org.eclipse.jdt.core.prefs

     文件        704  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\graphics\Animation$Animframe.class

     文件       2005  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\graphics\Animation.class

     文件       1111  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\graphics\NullRepaintManager.class

     文件        888  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\graphics\ScreenManager$1.class

     文件       4552  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\graphics\ScreenManager.class

     文件       1874  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\graphics\Sprite.class

     文件       1707  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\input\GameAction.class

     文件       8200  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\input\InputManager.class

     文件       1363  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\sound\EchoFilter.class

     文件       1571  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\sound\Filter3d.class

     文件       1305  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\sound\FilteredSoundStream.class

     文件       1106  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\sound\FilterSequence.class

     文件       3116  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\sound\MidiPlayer.class

     文件        449  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\sound\Sound.class

     文件        893  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\sound\SoundFilter.class

     文件       1889  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\sound\SoundManager$SoundPlayer.class

     文件       7902  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\sound\SoundManager.class

     文件        806  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\test\GameCore$1.class

     文件       3201  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\test\GameCore.class

     文件      10299  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\tilegame\GameManager.class

     文件       9058  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\tilegame\ResourceManager.class

     文件       3043  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\tilegame\sprites\Creature.class

     文件        857  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\tilegame\sprites\Fly.class

     文件        762  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\tilegame\sprites\Grub.class

     文件       1558  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\tilegame\sprites\Player.class

     文件        531  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\tilegame\sprites\PowerUp$Goal.class

     文件        534  2013-01-30 21:02  brackeen\bin\com\brackeen\javagamebook\tilegame\sprites\PowerUp$Music.class

............此处省略108个文件信息

评论

共有 条评论