<?xml version="1.0" encoding="utf-8"?> <Screen name="SnakeGame" descriptors="xworker.libgdx.Screen"> <Resources> <FileResource name="snakeTexture" type="texture" file="\data\bobargb8888-32x32.png"></FileResource> </Resources> <Actions> <ActionPool name="moveLeftPool"> <MoveByAction name="moveLeft" amountX="-400" amountY="0" duration="5" interpolation="swingOut" time="5"></MoveByAction> </ActionPool> <ActionPool name="moveRightPool"> <MoveByAction name="moveRight" amountX="400" amountY="0" duration="5" interpolation="sine"></MoveByAction> </ActionPool> <ActionPool name="moveUpPool"> <MoveByAction name="moveUp" amountX="0" amountY="400" duration="5"></MoveByAction> </ActionPool> <ActionPool name="moveDownPool"> <MoveByAction name="moveDown" amountX="0" amountY="-400" duration="5"></MoveByAction> </ActionPool> <ActionPool name="moveToPool"> <MoveToAction name="moveTo" duration="5"></MoveToAction> </ActionPool> </Actions> <Actors> <ActorPool name="mousePool"> <Image name="mouse" _xmeta_id_="snakeActor1" constructor="texture" texture="snakeTexture" x="200" y="200"></Image> </ActorPool> <ActorPool name="snakeBodyPool"> <Image name="snakeBody" _xmeta_id_="snakeActor3" constructor="texture" texture="snakeTexture" x="200" y="200"></Image> </ActorPool> </Actors> <Stages> <Stage name="stage" constructor="default"> <Actors> <TowGroup name="snakeActor" _xmeta_id_="snakeActor1"> <Image name="snakeActorBody1" _xmeta_id_="snakeActor" constructor="texture" texture="snakeTexture" x="200" y="200"></Image> </TowGroup> </Actors> <Group name="mouseGroup" description="<p>存放老鼠的组。</p>"></Group> <EventListeners> <InputListener> <actions> <KeySwitch name="keyDown" _xmeta_id_="keyDown1" descriptors="xworker.libgdx.input.InputActions/@KeySwitch"> <Case name="up" key="Up"> <SetActorAction name="move" _xmeta_id_="moveUp" descriptors="xworker.libgdx.engine.2d.GameThingActions/@ActorAction" gameThing="snake" actor="snakeActor" action="moveUp"></SetActorAction> </Case> <Case name="down" key="Down"> <SetActorAction name="move" _xmeta_id_="moveUp" descriptors="xworker.libgdx.engine.2d.GameThingActions/@ActorAction" gameThing="snake" actor="snakeActor" action="moveDown"></SetActorAction> </Case> <Case name="right" key="Right"> <SetActorAction name="move" _xmeta_id_="moveUp" descriptors="xworker.libgdx.engine.2d.GameThingActions/@ActorAction" gameThing="snake" actor="snakeActor" action="moveRight"></SetActorAction> </Case> <Case name="left" key="Left"> <SetActorAction name="move" _xmeta_id_="moveUp" descriptors="xworker.libgdx.engine.2d.GameThingActions/@ActorAction" gameThing="snake" actor="snakeActor" action="moveLeft"></SetActorAction> </Case> </KeySwitch> </actions> </InputListener> <ClickListener> <actions> <MoveActorToCurentPosition name="clicked" descriptors="xworker.libgdx.engine.2d.GameThingActions/@MoveActorToCurentPosition" gameThing="snake" actor="snakeActor" action="moveTo" speed="80"></MoveActorToCurentPosition> </actions> </ClickListener> </EventListeners> </Stage> </Stages> <World> <thing name="snake" _xmeta_id_="sname"> <Scripts> <ActorActions> <ActorAction name="moveRight" actionPool="moveRightPool" nextActions="moveUp"></ActorAction> <ActorAction name="moveUp" actionPool="moveUpPool" nextActions="moveLeft"></ActorAction> <ActorAction name="moveDown" actionPool="moveDownPool" nextActions="moveRight"></ActorAction> <ActorAction name="moveLeft" actionPool="moveLeftPool" nextActions="moveDown"></ActorAction> <ActorAction name="moveTo" actionPool="moveToPool" nextActions="moveUp"></ActorAction> </ActorActions> </Scripts> </thing> <thing name="mouse" _xmeta_id_="mouseFactory"> <actions> <GroovyAction name="act"> <code><![CDATA[import com.badlogic.gdx.math.MathUtils; //如果老鼠数量少于5个,那么就创建5个 while(mouseGroup.getChildren().size < 5){ def mouse = mousePool.obtain(); mouse.setPosition(MathUtils.random(1000), MathUtils.random(600)); mouseGroup.addActor(mouse); }]]></code> </GroovyAction> </actions> <Scripts></Scripts> </thing> <Collides> <Collide name="snakeEat"> <actions> <GroovyAction name="checked"> <code><![CDATA[if(overlapList.size() > 0){ for(overlap in overlapList){ def mouse = overlap.target; //移除这个老鼠 mouseGroup.removeActor(mouse); //归还到池里 mousePool.free(mouse); //蛇增加一个 snakeActor.addActor(snakeBodyPool.obtain()); } } //println("overlapList=" + overlapList.size() + ",unoverlapList=" + unoverlapList.size());]]></code> </GroovyAction> </actions> <Sources> <Actor name="snake" actor="snakeActorBody1"></Actor> </Sources> <Targets> <ActorsInGroup name="mouseGroup" group="mouseGroup"></ActorsInGroup> </Targets> </Collide> </Collides> </World> </Screen>
Copyright © 2007-2014 XWorker.org 版权所有