Java实现愤怒的小鸟AngryBirds


Java实现愤怒的小鸟AngryBirds
资源截图
代码片段和文件信息
/*
 * To change this template choose Tools | Templates
 * and open the template in the editor.
 */
package AngryBirdsApplication;

import java.util.ArrayList;
import java.util.linkedList;

import org.jbox2d.callbacks.QueryCallback;
import org.jbox2d.collision.AABB;
import org.jbox2d.common.Vec2;
import org.jbox2d.dynamics.*;
import org.jbox2d.dynamics.joints.*;

/**
 *
 * @author Sumomoxiao
 */
enum QueueItemType {

    MouseDown MouseMove MouseUp KeyPressed KeyReleased
}

class QueueItem {

    public QueueItemType type;
    public Vec2 p;
    public char c;
    public int code;

    public QueueItem(QueueItemType t Vec2 pt) {
        type = t;
        p = pt;
    }
    
}

class FixtureQueryCallback implements QueryCallback {

    public final Vec2 point;
    public Fixture fixture;

    public FixtureQueryCallback() {
        point = new Vec2();
        fixture = null;
    }

    /**
     * @see
     * org.jbox2d.callbacks.QueryCallback#reportFixture(org.jbox2d.dynamics.Fixture)
     */
    public boolean reportFixture(Fixture argFixture) {
        Body body = argFixture.getBody();
        if (body.getType() == BodyType.DYNAMIC) {
            boolean inside = argFixture.testPoint(point);
            if (inside) {
                fixture = argFixture;

                return false;
            }
        }

        return true;
    }
}

public abstract class AngryBirdsArea {

    private MouseJoint mouseJoint;
    private Vec2 mouseWorld = new Vec2();
    public final World sworld;
    private final Vec2 gravity;
    public Vec2 slingAnchor;
    public ArrayList birdlist;
    public ArrayList oblist;
    public ArrayList piglist sling;
    public WeldJoint attach;
    public WeldJointDef attachDef;
    public Body ground;
    public float scale = 1 / 64f;
    float timeStep = 1.0f / 60.0f;
    int velocityIterations = 6;
    int positionIterations = 2;
    public int birdbullets;
    private final linkedList inputQueue;

    public AngryBirdsArea() {
        gravity = new Vec2(0 -10f);
        inputQueue = new linkedList();
        sworld = new World(gravity true);
        birdlist = new ArrayList();
        oblist = new ArrayList();
        piglist = new ArrayList();
        sling = new ArrayList();
        slingAnchor = new Vec2();

    }

    abstract public void initStage();
    long endtime = 0;
    long duration = 0;  //duration of release the bird;
    long descountdown = 0;
    public void step() {
        
        sworld.step(timeStep velocityIterations positionIterations);
        
        if (mouseJoint == null && attach == null) {
            
            endtime = System.currentTimeMillis();
            duration = (endtime - releasetime) / 1000;
            
        }


        if (duration > 3 && attach == null) {
            
            if(b

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-12-07 20:18  AngryBirds
     目录           0  2014-12-07 20:18  AngryBirdsAngryBirds
     文件         389  2014-12-07 20:15  AngryBirdsAngryBirds.classpath
     文件         386  2013-09-10 09:45  AngryBirdsAngryBirds.project
     目录           0  2014-12-07 20:18  AngryBirdsAngryBirds.settings
     文件         629  2013-09-10 09:45  AngryBirdsAngryBirds.settingsorg.eclipse.jdt.core.prefs
     目录           0  2014-12-07 20:18  AngryBirdsAngryBirdsin
     文件        6148  2013-09-10 09:45  AngryBirdsAngryBirdsin.DS_Store
     目录           0  2014-12-07 20:18  AngryBirdsAngryBirdsinAngryBirdsApplication
     文件        7549  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsArea.class
     文件        1677  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsController$1.class
     文件        1751  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsController$2.class
     文件        5021  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsController.class
     文件        8982  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsDraw.class
     文件        2149  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsMain.class
     文件        5055  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsMenu.class
     文件        3437  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsMenuController.class
     文件        1205  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsPanel$1.class
     文件        1396  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsPanel$2.class
     文件        2406  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsPanel$3.class
     文件        6251  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsPanel.class
     文件        2657  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsPanelController.class
     文件        2502  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsViewframe.class
     文件        3088  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationAngryBirdsViewportTransform.class
     文件        1137  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationFixtureQueryCallback.class
     文件         395  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationGameButton.class
     文件         568  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationQueueItem.class
     文件        1221  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsApplicationQueueItemType.class
     目录           0  2014-12-07 20:18  AngryBirdsAngryBirdsinAngryBirdsCharacters
     文件        2047  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsCharactersAngryBirdsBodyInfo.class
     文件        2316  2014-12-07 20:15  AngryBirdsAngryBirdsinAngryBirdsCharactersAngryBirdsCharacter.class
............此处省略97个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)