[Orxonox-commit 6987] r11608 - in code/branches/Asteroid_HS17: data/levels data/levels/templates data/overlays src/modules src/modules/asteroids2D src/modules/minigametest
vyang at orxonox.net
vyang at orxonox.net
Mon Nov 27 17:00:59 CET 2017
Author: vyang
Date: 2017-11-27 17:00:59 +0100 (Mon, 27 Nov 2017)
New Revision: 11608
Added:
code/branches/Asteroid_HS17/data/overlays/Asteroids2DHUD.oxo
code/branches/Asteroid_HS17/data/overlays/MiniGameTestHUD.oxo
Modified:
code/branches/Asteroid_HS17/data/levels/Asteroids2D.oxw
code/branches/Asteroid_HS17/data/levels/MiniGameTest.oxw
code/branches/Asteroid_HS17/data/levels/templates/spaceshipAsteroids2D.oxt
code/branches/Asteroid_HS17/data/levels/templates/spaceshipMiniGameTest.oxt
code/branches/Asteroid_HS17/src/modules/CMakeLists.txt
code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.cc
code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.h
code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.cc
code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.h
code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DHUDinfo.cc
code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.cc
code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.h
code/branches/Asteroid_HS17/src/modules/asteroids2D/CMakeLists.txt
code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTest.cc
code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTest.h
code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTestShip.cc
code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTestShip.h
Log:
Asteroids2D erfolgreich als Minigame eingebunden, Dimensionen des Spielfeldes werden im CenterPoint gesetzt.
Modified: code/branches/Asteroid_HS17/data/levels/Asteroids2D.oxw
===================================================================
--- code/branches/Asteroid_HS17/data/levels/Asteroids2D.oxw 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/data/levels/Asteroids2D.oxw 2017-11-27 16:00:59 UTC (rev 11608)
@@ -5,23 +5,21 @@
screenshot = "emptylevel.png"
/>
-
-<!--wird immer gebraucht-->
<?lua
include("stats.oxo")
include("templates/lodInformation.oxt")
?>
-
<?lua
- include ("overlays/HUDTemplates3.oxo")
+ include("templates/spaceshipAssff2.oxt")
+ include("templates/spaceshipPirate.oxt")
include("templates/spaceshipAsteroids2D.oxt")
+ include("templates/enemyInvader.oxt")
+ include("overlays/Asteroids2DHUD.oxo")
?>
-<!--Templates schreiben oder von spaceship kopieren-->
-
<Level
- plugin = asteroids2D
+ plugins = asteroids2D
gametype = Asteroids2D
>
<templates>
@@ -29,25 +27,26 @@
</templates>
<?lua include("includes/notifications.oxi") ?>
- <!-- ambientlight = "0.8, 0.8, 0.8"
- skybox = "Orxonox/Starbox"
- WorldRange lieber im src einschraenken-->
<Scene
- ambientlight = "0.8, 0.7, 0.4"
- skybox = "Orxonox/skyBoxBasic"
+ ambientlight = "1.0, 1.0, 1.0"
+ skybox = "Orxonox/Starbox"
+ negativeWorldRange = "-100000, -100000, -100000"
+ positiveWorldRange = " 100000, 100000, 100000"
>
-
+
+ <WorldAmbientSound
+ source="Earth.ogg"
+ looping="true"
+ playOnLoad="true"
+ />
+
<!-- <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/> -->
- <Light type=directional position="1100, 11000, -7000" lookat="0, 0, 0" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" />
+ <Light type=directional position="-100, 10000, -700" lookat="0.2, -1, 0" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" />
+ <SpawnPoint team=0 position="0,0,0" lookat="0,0,0" spawnclass= Asteroids2DShip pawndesign=spaceshipasteroids2d />
- <SpawnPoint team=0 position="0,0,0" lookat="0,0,0" spawnclass=Asteroids2DShip pawndesign=spaceshipasteroids2D/>
+ <Model mesh="axes.mesh" scale=10 position="0,0,0" />
+ <Asteroids2DCenterPoint name=asteroids2Dcenter />
- <Asteroids2DCenterPoint name=asteroids2Dcenter />
-
- <Model mesh="axes.mesh" scale=10 position="0,0,-100" />
-
</Scene>
-</Level>
-
-
+</Level>
\ No newline at end of file
Modified: code/branches/Asteroid_HS17/data/levels/MiniGameTest.oxw
===================================================================
--- code/branches/Asteroid_HS17/data/levels/MiniGameTest.oxw 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/data/levels/MiniGameTest.oxw 2017-11-27 16:00:59 UTC (rev 11608)
@@ -14,8 +14,7 @@
include("templates/spaceshipPirate.oxt")
include("templates/spaceshipMiniGameTest.oxt")
include("templates/enemyInvader.oxt")
- include("templates/DodgeRacePattern.oxt")
- include("overlays/DodgeRaceHUD.oxo")
+ include("overlays/MiniGameTestHUD.oxo")
?>
<Level
@@ -29,7 +28,7 @@
<Scene
ambientlight = "1.0, 1.0, 1.0"
- skybox = "Orxonox/skyBoxClouds"
+ skybox = "Orxonox/Starbox"
negativeWorldRange = "-100000, -100000, -100000"
positiveWorldRange = " 100000, 100000, 100000"
>
@@ -42,23 +41,16 @@
<!-- <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/> -->
<Light type=directional position="-100, 10000, -700" lookat="0.2, -1, 0" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" />
- <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass= MiniGameTestShip pawndesign=spaceshipdodgerace />
+ <SpawnPoint team=0 position="0,0,0" lookat="0,0,0" spawnclass= MiniGameTestShip pawndesign=spaceshipminigametest />
+ <Model mesh="axes.mesh" scale=10 position="0,0,0" />
+
<DistanceTrigger name="start" position="-200,0,0" target="Pawn" distance=10 stayActive="true" delay=0 />
<MiniGameTestCenterPoint name=invadercenter />
- <StaticEntity position="0,-50,0" direction="0,0,0" scale="1" collisionType=static mass=1 friction=0.01 >
- <attached>
- <Model position="0,0,0" mesh="plane.mesh" scale3D="100000,0,100000" />
- </attached>
- <collisionShapes>
- <BoxCollisionShape position="0,0,0" halfExtents="1,1,1" />
- </collisionShapes>
-
- </StaticEntity>
Modified: code/branches/Asteroid_HS17/data/levels/templates/spaceshipAsteroids2D.oxt
===================================================================
--- code/branches/Asteroid_HS17/data/levels/templates/spaceshipAsteroids2D.oxt 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/data/levels/templates/spaceshipAsteroids2D.oxt 2017-11-27 16:00:59 UTC (rev 11608)
@@ -1,19 +1,19 @@
-<Template name=spaceshipasteroids2D>
- <SpaceShip
+<Template name=spaceshipasteroids2d>
+ <Asteroids2DShip
hudtemplate = spaceshiphud
camerapositiontemplate = spaceshipescortcameras
spawnparticlesource = "Orxonox/fairytwirl"
spawnparticleduration = 3
- explosionchunks = 10
+ explosionchunks = 4
- health = 80
- maxhealth = 200
- initialhealth = 80
+ health = 40
+ maxhealth = 40
+ initialhealth = 40
- shieldhealth = 35
- initialshieldhealth = 35
- maxshieldhealth = 60
- shieldabsorption = 0.9
+ shieldhealth = 20
+ initialshieldhealth = 20
+ maxshieldhealth = 20
+ shieldabsorption = 0.1
shieldrechargerate = 1
shieldrechargewaittime = 1
@@ -33,13 +33,17 @@
shakeAmplitude = 6
collisionType = "dynamic"
- mass = 80
- linearDamping = 0.7
+ mass = 4200000
+ linearDamping = 0.9999999
angularDamping = 0.9999999
+
+ collisiondamage = 100
+ enablecollisiondamage = true
+
>
<engines>
- <MultiStateEngine position=" 7.6, 0, 6" template=spaceshipescortengine />
- <MultiStateEngine position="-7.6, 0, 0" template=spaceshipescortengine />
+ <MultiStateEngine position=" 7.6, 0, 6" template=spaceshipinvaderengine />
+ <MultiStateEngine position="-7.6, 0, 0" template=spaceshipinvaderengine />
</engines>
<attached>
<Model position="0,0,0" yaw=90 pitch=0 roll=0 scale=4 mesh="escortShip.mesh" />
@@ -55,36 +59,40 @@
<BoxCollisionShape position="-12.6,-2, 3" halfExtents="2.8,2.8,11"/>
<BoxCollisionShape position="0, 0,-12" halfExtents="4 , 4 ,7" />
</collisionShapes>
- <explosion>
+ <explosion >
<ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_flash2" effect2="orxonox/explosion_flame2" />
<ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" />
<ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_streak2" effect2="orxonox/explosion_afterglow" />
- <ExplosionPart mesh="explosionparts/escort_part_1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
- <ExplosionPart mesh="explosionparts/escort_part_2.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
- <ExplosionPart mesh="explosionparts/escort_part_3.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
- <ExplosionPart mesh="explosionparts/escort_part_4.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
- <ExplosionPart mesh="explosionparts/escort_part_5.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
- <ExplosionPart mesh="explosionparts/escort_part_6.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+ <ExplosionPart minspeed=0 maxspeed=0 effect1="Orxonox/explosion2b" effect2="Orxonox/smoke6" />
+ <ExplosionPart mesh="CockpitDebris.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+ <ExplosionPart mesh="BodyDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+ <ExplosionPart mesh="WingDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+ <ExplosionPart mesh="WingDebris2.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
</explosion>
<?lua
- include("../includes/weaponSettingsEscort.oxi")
+ include("../includes/invaderWeapon.oxi")
?>
- </SpaceShip>
+ </Asteroids2DShip>
</Template>
<Template name=spaceshipescortcameras defaults=0>
- <SpaceShip>
+ <Asteroids2DShip>
<camerapositions>
- <CameraPosition position="0,600,0" pitch=-90 absolute=true />
- <CameraPosition position="0,50,160" drag=true mouselook=false />
- <CameraPosition position="0,40,125" drag=true mouselook=false/>
- <CameraPosition position="0,30, 90" drag=true mouselook=false/>
+ <!--<CameraPosition position="0,100,180" direction="0, -0.2, -1" drag=false mouselook=true />
+ <CameraPosition position="0,200,250" direction="0, -0.4, -1" drag=false mouselook=true />
+ <CameraPosition position="0,30,150" direction="0, 0, -1" drag=false mouselook=true />
+ <CameraPosition position="0,1300,-100" direction="0, -1, 0" drag=false mouselook=true />
+-->
+ <CameraPosition position="0,600,0" pitch=-90 absolute=true />
+ <CameraPosition position="0,50,160" drag=true mouselook=true />
+ <CameraPosition position="0,40,125" drag=true mouselook=true />
+ <CameraPosition position="0,30, 90" drag=true mouselook=true />
</camerapositions>
- </SpaceShip>
+ </Asteroids2DShip>
</Template>
-<Template name=spaceshipescortengine baseclass=MultiStateEngine>
+<Template name=spaceshipinvaderengine baseclass=MultiStateEngine>
<MultiStateEngine
boostfactor = 2.2
@@ -104,9 +112,6 @@
>
<EffectContainer condition="idle">
<WorldSound mainstate="activity" source="sounds/Engine_idle.ogg" looping=1 active=false/>
- />
- <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, -2, 14" colour="0.2, 0.5, 0.65, 1.0" width=150 length=15 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
- <Backlight mainstate=activity active=false scale=0.33 name=bltest position="-12, -2, 14" colour="0.2, 0.5, 0.65, 1.0" width=15 length=15 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
</EffectContainer>
<EffectContainer condition="not idle">
<FadingBillboard mainstate=activity active=false scale=0.09 position="12, -2, 13" colour="0.2, 1.0, 0.65, 1.0" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
@@ -116,10 +121,9 @@
</EffectContainer>
<EffectContainer condition="normal or boost">
- <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, -2, 14" colour="0.2, 1.0, 0.65, 1.0" width=5 length=1500 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
- <Backlight mainstate=activity active=false scale=0.33 name=bltest position="-12, -2, 14" colour="0.2, 1.0, 0.65, 1.0" width=15 length=1500 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+ <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, 0, 10" colour="0.2, 1.0, 0.65, 1.0" width=15 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+ <Backlight mainstate=activity active=false scale=0.33 name=bltest position="-12, 0, 10" colour="0.2, 1.0, 0.65, 1.0" width=15 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
</EffectContainer>
-
<EffectContainer condition="boost">
<Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, 0, 10" colour="0.6, 0.8, 0.75, 0.7" width=25 length=1000 lifetime=1 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
<Backlight mainstate=activity active=false scale=0.33 name=bltest position="-12, 0, 10" colour="0.6, 0.8, 0.75, 0.7" width=25 length=1000 lifetime=1 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
@@ -126,4 +130,4 @@
</EffectContainer>
</MultiStateEngine>
-</Template>
+</Template>
\ No newline at end of file
Modified: code/branches/Asteroid_HS17/data/levels/templates/spaceshipMiniGameTest.oxt
===================================================================
--- code/branches/Asteroid_HS17/data/levels/templates/spaceshipMiniGameTest.oxt 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/data/levels/templates/spaceshipMiniGameTest.oxt 2017-11-27 16:00:59 UTC (rev 11608)
@@ -1,4 +1,4 @@
-<Template name=spaceshipdodgerace>
+<Template name=spaceshipminigametest>
<MiniGameTestShip
hudtemplate = spaceshiphud
camerapositiontemplate = spaceshipescortcameras
@@ -79,10 +79,15 @@
<Template name=spaceshipescortcameras defaults=0>
<MiniGameTestShip>
<camerapositions>
- <CameraPosition position="0,100,180" direction="0, -0.2, -1" drag=false mouselook=true />
- <CameraPosition position="0,200,250" direction="0, -0.4, -1" drag=false mouselook=true />
- <CameraPosition position="0,30,150" direction="0, 0, -1" drag=false mouselook=true />
- <CameraPosition position="0,1300,-100" direction="0, -1, 0" drag=false mouselook=true />
+ <!--<CameraPosition position="0,100,180" direction="0, -0.2, -1" drag=false mouselook=true />
+ <CameraPosition position="0,200,250" direction="0, -0.4, -1" drag=false mouselook=true />
+ <CameraPosition position="0,30,150" direction="0, 0, -1" drag=false mouselook=true />
+ <CameraPosition position="0,1300,-100" direction="0, -1, 0" drag=false mouselook=true />
+-->
+ <CameraPosition position="0,600,0" pitch=-90 absolute=true />
+ <CameraPosition position="0,50,160" drag=true mouselook=true />
+ <CameraPosition position="0,40,125" drag=true mouselook=true />
+ <CameraPosition position="0,30, 90" drag=true mouselook=true />
</camerapositions>
</MiniGameTestShip>
</Template>
Added: code/branches/Asteroid_HS17/data/overlays/Asteroids2DHUD.oxo
===================================================================
--- code/branches/Asteroid_HS17/data/overlays/Asteroids2DHUD.oxo (rev 0)
+++ code/branches/Asteroid_HS17/data/overlays/Asteroids2DHUD.oxo 2017-11-27 16:00:59 UTC (rev 11608)
@@ -0,0 +1,38 @@
+<Template name="spectatorhud">
+ <OverlayGroup name = "spectatorhud" scale = "1, 1">
+ </OverlayGroup>
+</Template>
+
+<Template name="Asteroids2DHUD">
+ <OverlayGroup name="Asteroids2DHUD" scale = "1, 1">
+
+ <OverlayText
+ position = "0.02, 0.02"
+ pickpoint = "0.0, 0.0"
+ font = "ShareTechMono"
+ textsize = 0.04
+ colour = "1.0, 1.0, 1.0, 1.0"
+ align = "left"
+ caption = "Points: "
+ />
+
+ <Asteroids2DHUDinfo
+ position = "0.14, 0.02"
+ pickpoint = "0.0, 0.0"
+ font = "ShareTechMono"
+ textsize = 0.04
+ colour = "1.0, 1.0, 1.0, 1.0"
+ align = "left"
+
+ showpoints = true
+ />
+
+
+ </OverlayGroup>
+</Template>
+
+<Template name="spaceshiphud">
+ <OverlayGroup name = "spaceshiphud" scale = "1, 1">
+
+ </OverlayGroup>
+</Template>
\ No newline at end of file
Added: code/branches/Asteroid_HS17/data/overlays/MiniGameTestHUD.oxo
===================================================================
--- code/branches/Asteroid_HS17/data/overlays/MiniGameTestHUD.oxo (rev 0)
+++ code/branches/Asteroid_HS17/data/overlays/MiniGameTestHUD.oxo 2017-11-27 16:00:59 UTC (rev 11608)
@@ -0,0 +1,38 @@
+<Template name="spectatorhud">
+ <OverlayGroup name = "spectatorhud" scale = "1, 1">
+ </OverlayGroup>
+</Template>
+
+<Template name="MiniGameTestHUD">
+ <OverlayGroup name="MiniGameTestHUD" scale = "1, 1">
+
+ <OverlayText
+ position = "0.02, 0.02"
+ pickpoint = "0.0, 0.0"
+ font = "ShareTechMono"
+ textsize = 0.04
+ colour = "1.0, 1.0, 1.0, 1.0"
+ align = "left"
+ caption = "Points: "
+ />
+
+ <MiniGameTestHUDinfo
+ position = "0.14, 0.02"
+ pickpoint = "0.0, 0.0"
+ font = "ShareTechMono"
+ textsize = 0.04
+ colour = "1.0, 1.0, 1.0, 1.0"
+ align = "left"
+
+ showpoints = true
+ />
+
+
+ </OverlayGroup>
+</Template>
+
+<Template name="spaceshiphud">
+ <OverlayGroup name = "spaceshiphud" scale = "1, 1">
+
+ </OverlayGroup>
+</Template>
\ No newline at end of file
Modified: code/branches/Asteroid_HS17/src/modules/CMakeLists.txt
===================================================================
--- code/branches/Asteroid_HS17/src/modules/CMakeLists.txt 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/CMakeLists.txt 2017-11-27 16:00:59 UTC (rev 11608)
@@ -45,4 +45,5 @@
ADD_SUBDIRECTORY(dodgerace)
ADD_SUBDIRECTORY(hover)
ADD_SUBDIRECTORY(superorxobros)
-ADD_SUBDIRECTORY(minigametest)
\ No newline at end of file
+ADD_SUBDIRECTORY(minigametest)
+ADD_SUBDIRECTORY(asteroids2D)
Modified: code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.cc
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.cc 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.cc 2017-11-27 16:00:59 UTC (rev 11608)
@@ -34,8 +34,8 @@
#include "Asteroids2D.h"
#include "Asteroids2DShip.h" // Necessary for getPlayer function. Do NOT include this in Header!
#include "core/CoreIncludes.h"
+#include "Highscore.h"
-
namespace orxonox
{
RegisterUnloadableClass(Asteroids2D);
@@ -43,13 +43,50 @@
Asteroids2D::Asteroids2D(Context* context) : Deathmatch(context)
{
RegisterObject(Asteroids2D);
- this->bEndGame = false;
+ bEndGame = false;
+ lives = 1;
+ level = 1;
+ point = 0;
+ bShowLevel = false;
+ multiplier = 1;
+ b_combo = false;
+ counter = 5000;
+ pattern = 1;
+ lastPosition = 0;
+ // spawn enemy every 3.5 seconds
+ //enemySpawnTimer.setTimer(3.5f, true, createExecutor(createFunctor(&Asteroids2D::spawnEnemy, this)));
+ this->numberOfBots_ = 0; //sets number of default bots temporarly to 0
+ this->center_ = nullptr;
+ this->setHUDTemplate("Asteroids2DHUD");
}
+ void Asteroids2D::levelUp()
+ {
+ level++;
+ if (getPlayer() != nullptr)
+ {
+ for (int i = 0; i < 7; i++)
+ {
+ WeakPtr<ExplosionPart> chunk5 = new ExplosionPart(this->center_->getContext());
+ chunk5->setPosition(Vector3(600, 0, 100.f * i - 300));
+ chunk5->setVelocity(Vector3(1000, 0, 0)); //player->getVelocity()
+ chunk5->setScale(10);
+ chunk5->setEffect1("Orxonox/explosion2b");
+ chunk5->setEffect2("Orxonox/smoke6");
+ chunk5->Explode();
+
+ }
+ }
+ addPoints(multiplier * 42);
+ multiplier *= 2;
+ toggleShowLevel();
+ showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&Asteroids2D::toggleShowLevel, this)));
+ }
+
void Asteroids2D::tick(float dt)
{
-
+
SUPER(Asteroids2D, tick, dt);
}
@@ -65,10 +102,16 @@
return player;
}
+ void Asteroids2D::costLife()
+ {
+ //endGameTimer.setTimer(8.0f, false, createExecutor(createFunctor(&Asteroids2D::end, this)));
+ lives = 0;
+ };
+
void Asteroids2D::start()
{
orxout() << "start" << endl;
-
+
// Set variable to temporarily force the player to spawn.
this->bForceSpawn_ = false;
@@ -82,6 +125,23 @@
Deathmatch::start();
}
+ void Asteroids2D::playerPreSpawn(PlayerInfo* player)
+ {
+ if(lives <= 0)
+ {
+ this->end();
+ }
+ }
+
+ void Asteroids2D::addPoints(int numPoints)
+ {
+ if (!bEndGame)
+ {
+ point += numPoints * multiplier;
+ b_combo = true;
+ }
+ }
+
void Asteroids2D::end()
{
// DON'T CALL THIS!
@@ -88,7 +148,12 @@
// Deathmatch::end();
// It will misteriously crash the game!
// Instead startMainMenu, this won't crash.
- orxout() << "Asteroids2D Game has ended" << endl;
+ if (Highscore::exists()){
+ int score = this->getPoints();
+ if(score > Highscore::getInstance().getHighestScoreOfGame("Dodge Race"))
+ Highscore::getInstance().storeHighscore("Dodge Race",score);
+
+ }
GSLevel::startMainMenu();
}
}
Modified: code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.h
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.h 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.h 2017-11-27 16:00:59 UTC (rev 11608)
@@ -49,8 +49,8 @@
#include "gamestates/GSLevel.h"
#include "chat/ChatManager.h"
+#include <vector>
-
// ! HACK
#include "infos/PlayerInfo.h"
@@ -57,6 +57,7 @@
#include "core/command/ConsoleCommand.h"
#include "gametypes/Deathmatch.h"
+#include "tools/Timer.h"
namespace orxonox
{
@@ -68,22 +69,53 @@
virtual void start() override;
virtual void end() override;
+
virtual void tick(float dt) override;
+ virtual void playerPreSpawn(PlayerInfo* player) override;
+
+ void levelUp();
+
+ int getLives(){return this->lives;}
+ int getLevel(){return this->level;}
+ int getPoints(){return this->point;}
+ int getMultiplier(){return this->multiplier;}
+
void setCenterpoint(Asteroids2DCenterPoint* center)
{ this->center_ = center; }
+ virtual void addBots(unsigned int amount) override{} //<! overwrite function in order to bypass the addbots command
- virtual void addBots(unsigned int amount) override{} //<! overwrite function in order to bypass the addbots command
+ // checks if multiplier should be reset.
+ void costLife();
+
bool bEndGame;
+ bool bShowLevel;
+ int lives;
+ int multiplier;
+ float counter;
+ int pattern;
+ float currentPosition;
+ float lastPosition;
private:
+ Timer endGameTimer;
-
Asteroids2DShip* getPlayer();
WeakPtr<Asteroids2DShip> player;
+ std::vector<Asteroids2DCube*> cubeList;
+ void toggleShowLevel(){bShowLevel = !bShowLevel;}
+ void addPoints(int numPoints);
+
WeakPtr<Asteroids2DCenterPoint> center_;
+ int level;
+ int point;
+ bool b_combo;
+ Timer enemySpawnTimer;
+ Timer comboTimer;
+ Timer showLevelTimer;
+
/*
//void spawnEnemy();
Modified: code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.cc
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.cc 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.cc 2017-11-27 16:00:59 UTC (rev 11608)
@@ -34,6 +34,7 @@
#include "Asteroids2DCenterPoint.h"
#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
#include "Asteroids2D.h"
@@ -46,8 +47,19 @@
RegisterObject(Asteroids2DCenterPoint);
this->checkGametype();
+ this->width_ = 200;
+ this->height_ = 120;
}
+ /**
+ @brief
+ Method to create a Asteroids2DCenterpoint through XML.
+ */
+ void Asteroids2DCenterPoint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+ {
+ SUPER(Asteroids2DCenterPoint, XMLPort, xmlelement, mode);
+ XMLPortParam(Asteroids2DCenterPoint, "dimension", setFieldDimension, getFieldDimension, xmlelement, mode);
+ }
void Asteroids2DCenterPoint::checkGametype()
{
if (this->getGametype() != nullptr && this->getGametype()->isA(Class(Asteroids2D)))
Modified: code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.h
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.h 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.h 2017-11-27 16:00:59 UTC (rev 11608)
@@ -48,9 +48,23 @@
{
public:
Asteroids2DCenterPoint(Context* context); //checks whether the gametype is actually Asteroids2D.
+ virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method to create a PongCenterpoint through XML.
+ /**
+ @brief Set the dimensions of the playing field.
+ @param dimension A vector with the width of the playing field as first component and the height as second.
+ */
+ void setFieldDimension(const Vector2& dimension)
+ { this->width_ = dimension.x; this->height_ = dimension.y; }
+ /**
+ @brief Get the dimensions of the playing field.
+ @return Returns a vector with the width of the playing field as first component and the height as second.
+ */
+ Vector2 getFieldDimension() const
+ { return Vector2(this->width_, this->height_); }
private:
void checkGametype();
+ float width_, height_;
};
}
Modified: code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DHUDinfo.cc
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DHUDinfo.cc 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DHUDinfo.cc 2017-11-27 16:00:59 UTC (rev 11608)
@@ -24,41 +24,41 @@
*
*/
-#include "DodgeRaceHUDinfo.h"
+#include "Asteroids2DHUDinfo.h"
#include "core/CoreIncludes.h"
#include "core/XMLPort.h"
#include "util/Convert.h"
-//#include "DodgeRace.h"
+//#include "Asteroids2D.h"
namespace orxonox
{
- RegisterClass(DodgeRaceHUDinfo);
+ RegisterClass(Asteroids2DHUDinfo);
- DodgeRaceHUDinfo::DodgeRaceHUDinfo(Context* context) : OverlayText(context)
+ Asteroids2DHUDinfo::Asteroids2DHUDinfo(Context* context) : OverlayText(context)
{
- RegisterObject(DodgeRaceHUDinfo);
+ RegisterObject(Asteroids2DHUDinfo);
- this->DodgeRaceGame = nullptr;
+ this->Asteroids2DGame = nullptr;
this->bShowPoints_ = true;
}
- void DodgeRaceHUDinfo::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+ void Asteroids2DHUDinfo::XMLPort(Element& xmlelement, XMLPort::Mode mode)
{
- SUPER(DodgeRaceHUDinfo, XMLPort, xmlelement, mode);
+ SUPER(Asteroids2DHUDinfo, XMLPort, xmlelement, mode);
- XMLPortParam(DodgeRaceHUDinfo,"showPoints", setShowPoints, getShowPoints, xmlelement, mode).defaultValues(false);
+ XMLPortParam(Asteroids2DHUDinfo,"showPoints", setShowPoints, getShowPoints, xmlelement, mode).defaultValues(false);
}
- void DodgeRaceHUDinfo::tick(float dt)
+ void Asteroids2DHUDinfo::tick(float dt)
{
- SUPER(DodgeRaceHUDinfo, tick, dt);
+ SUPER(Asteroids2DHUDinfo, tick, dt);
if(this->bShowPoints_)
{
- const std::string& points = multi_cast<std::string>(this->DodgeRaceGame->getPoints());
- if (this->DodgeRaceGame->lives <= 0)
+ const std::string& points = multi_cast<std::string>(this->Asteroids2DGame->getPoints());
+ if (this->Asteroids2DGame->lives <= 0)
{
setTextSize(0.2);
setPosition(Vector2(0.1, 0.02));
@@ -75,17 +75,17 @@
}
}
- void DodgeRaceHUDinfo::changedOwner()
+ void Asteroids2DHUDinfo::changedOwner()
{
- SUPER(DodgeRaceHUDinfo, changedOwner);
+ SUPER(Asteroids2DHUDinfo, changedOwner);
if (this->getOwner() && this->getOwner()->getGametype())
{
- this->DodgeRaceGame = orxonox_cast<DodgeRace*>(this->getOwner()->getGametype());
+ this->Asteroids2DGame = orxonox_cast<Asteroids2D*>(this->getOwner()->getGametype());
}
else
{
- this->DodgeRaceGame = nullptr;
+ this->Asteroids2DGame = nullptr;
}
}
}
Modified: code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.cc
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.cc 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.cc 2017-11-27 16:00:59 UTC (rev 11608)
@@ -54,63 +54,32 @@
void Asteroids2DShip::tick(float dt)
{
- Vector3 pos = getPosition();
-
- //Movement calculation
- lastTimeFront += dt * damping;
- lastTimeLeft += dt * damping;
- lastTime += dt;
-
- velocity.x = interpolate(clamp(lastTimeLeft, 0.0f, 1.0f), desiredVelocity.x, 0.0f);
- velocity.y = interpolate(clamp(lastTimeFront, 0.0f, 1.0f), desiredVelocity.y, 0.0f);
-
- //Execute movement
- if (this->hasLocalController())
- {
- float dist_y = velocity.y * dt;
- //float dist_x = velocity.x * dt;
- if(dist_y + posforeward > -42*3 && dist_y + posforeward < 42*6)
- posforeward += dist_y;
- else
- {
- velocity.y = 0;
- // restart if game ended
-/*
- if (getGame())
- if (getGame()->bEndGame)
- {
- getGame()->start();
- return;
- }*/
- }
-
- pos += Vector3(1000 + velocity.y, 0, velocity.x) * dt;
- }
-
- // bring back on track!
- if(pos.y != 0)
- {
- pos.y = 0;
- }
-
- setPosition(pos);
- setOrientation(Vector3::UNIT_Y, Degree(270));
-
SUPER(Asteroids2DShip, tick, dt);
}
- void Asteroids2DShip::moveFrontBack(const Vector2& value)
+ void Asteroids2DShip::updateLevel()
{
+ lastTime = 0;
+ if (getGame())
+ getGame()->levelUp();
+ }
+
+/* void Asteroids2DShip::moveFrontBack(const Vector2& value)
+ {
//lastTimeFront = 0;
//desiredVelocity.y = value.y * speed * 42;
-
+ orxout() << "FrontBack" << endl;
+ SUPER(Asteroids2DShip, moveFrontBack, value);
}
void Asteroids2DShip::moveRightLeft(const Vector2& value)
{
- lastTimeLeft = 0;
- desiredVelocity.x = value.x * speed;
+ //lastTimeLeft = 0;
+ //desiredVelocity.x = value.x * speed;
+ orxout() << "RightLeft" << endl;
+ SUPER(Asteroids2DShip, moveFrontBack, value);
}
+ */
void Asteroids2DShip::boost(bool bBoost)
{
//getGame()->bEndGame = bBoost;
@@ -138,7 +107,7 @@
void Asteroids2DShip::death()
{
- //getGame()->costLife();
+ getGame()->costLife();
SpaceShip::death();
}
}
Modified: code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.h
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.h 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.h 2017-11-27 16:00:59 UTC (rev 11608)
@@ -54,18 +54,21 @@
virtual void tick(float dt) override;
// overwrite for 2d movement
- virtual void moveFrontBack(const Vector2& value) override;
- virtual void moveRightLeft(const Vector2& value) override;
+ //virtual void moveFrontBack(const Vector2& value) override;
+ //virtual void moveRightLeft(const Vector2& value) override;
// Starts or stops fireing
virtual void boost(bool bBoost) override;
//no rotation!
+ virtual void rotateYaw(const Vector2& value) override{};
virtual void rotatePitch(const Vector2& value) override{};
//return to main menu if game has ended.
virtual void rotateRoll(const Vector2& value) override{if (getGame()) if (getGame()->bEndGame) getGame()->end();};
+ virtual void updateLevel();
+
virtual inline bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
float speed, damping, posforeward;
Modified: code/branches/Asteroid_HS17/src/modules/asteroids2D/CMakeLists.txt
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids2D/CMakeLists.txt 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/asteroids2D/CMakeLists.txt 2017-11-27 16:00:59 UTC (rev 11608)
@@ -1,7 +1,9 @@
-SET_SOURCE_FILES(Asteroids2D_SRC_FILES
+SET_SOURCE_FILES(MINIGAMESTEST_SRC_FILES
Asteroids2D.cc
Asteroids2DCenterPoint.cc
Asteroids2DShip.cc
+Asteroids2DCube.cc
+Asteroids2DHUDinfo.cc
)
ORXONOX_ADD_LIBRARY(asteroids2D
@@ -10,5 +12,5 @@
LINK_LIBRARIES
orxonox
overlays
- SOURCE_FILES ${ASTEROIDS2D_SRC_FILES}
-)
+ SOURCE_FILES ${MINIGAMESTEST_SRC_FILES}
+)
\ No newline at end of file
Modified: code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTest.cc
===================================================================
--- code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTest.cc 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTest.cc 2017-11-27 16:00:59 UTC (rev 11608)
@@ -33,7 +33,6 @@
#include "MiniGameTest.h"
#include "MiniGameTestShip.h" // Necessary for getPlayer function. Do NOT include this in Header!
-#include "MiniGameTestCube.h"
#include "core/CoreIncludes.h"
#include "Highscore.h"
@@ -57,10 +56,8 @@
lastPosition = 0;
// spawn enemy every 3.5 seconds
//enemySpawnTimer.setTimer(3.5f, true, createExecutor(createFunctor(&MiniGameTest::spawnEnemy, this)));
- comboTimer.setTimer(3.0f, true, createExecutor(createFunctor(&MiniGameTest::comboControll, this)));
this->numberOfBots_ = 0; //sets number of default bots temporarly to 0
this->center_ = nullptr;
-
this->setHUDTemplate("MiniGameTestHUD");
}
@@ -89,50 +86,7 @@
void MiniGameTest::tick(float dt)
{
- if (getPlayer() != nullptr)
- {
- currentPosition = getPlayer()->getWorldPosition().x;
- counter = counter + (currentPosition - lastPosition);
- lastPosition = currentPosition;
- point = (int) currentPosition;
- getPlayer()->speed = 830.0f - (point / 1000);
-
- for(unsigned int i=0; i < cubeList.size();i++)
- {
- if(cubeList.at(i)->getPosition().x < currentPosition-3000)
- {
- cubeList.at(i)->destroy();
- cubeList.erase(cubeList.begin()+i);
- }
- }
-
- if(counter >= 3000)
- {
- counter = 0;
- for(int i = 0; i<6; i++)
- {
- MiniGameTestCube* cube = new MiniGameTestCube(this->center_->getContext());
- cubeList.push_back(cube);
- switch(pattern)
- {
- case 1: cube->addTemplate("MiniGameTestCube01");
- break;
- case 2: cube->addTemplate("MiniGameTestCube02");
- break;
-
- }
-
- cube->setPosition(getPlayer()->getWorldPosition() + Vector3(5000.0f, 0.0f, -3600.0f + (i*1200)));
- //stEntity->setScale3D(50,50,50);
- }
-
-
- pattern %= 2;
- pattern ++;
-
- }
-
- }
+
SUPER(MiniGameTest, tick, dt);
}
@@ -154,26 +108,10 @@
lives = 0;
};
- void MiniGameTest::comboControll()
- {
- if (b_combo)
- multiplier++;
- // if no combo was performed before, reset multiplier
- else
- multiplier = 1;
- b_combo = false;
- }
-
void MiniGameTest::start()
{
orxout() << "start" << endl;
- for(unsigned int i=0; i< cubeList.size();i++)
- {
- cubeList.at(i)->destroy();
- cubeList.erase(cubeList.begin()+i);
- }
- cubeList.clear();
// Set variable to temporarily force the player to spawn.
this->bForceSpawn_ = false;
@@ -193,20 +131,6 @@
{
this->end();
}
-
- // Reset all the cubes
- /*
- orxout() << "prespawn" << endl;
- for(int i=0; i< cubeList.size();i++)
- {
- cubeList.at(i)->destroy();
- cubeList.erase(cubeList.begin()+i);
- }
- cubeList.clear();
- lives = 1;
- point = 0;
- lastPosition = 0;
- */
}
void MiniGameTest::addPoints(int numPoints)
Modified: code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTest.h
===================================================================
--- code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTest.h 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTest.h 2017-11-27 16:00:59 UTC (rev 11608)
@@ -86,7 +86,6 @@
virtual void addBots(unsigned int amount) override{} //<! overwrite function in order to bypass the addbots command
// checks if multiplier should be reset.
- void comboControll();
void costLife();
bool bEndGame;
Modified: code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTestShip.cc
===================================================================
--- code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTestShip.cc 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTestShip.cc 2017-11-27 16:00:59 UTC (rev 11608)
@@ -54,66 +54,6 @@
void MiniGameTestShip::tick(float dt)
{
- Vector3 pos = getPosition();
-
- //Movement calculation
- lastTimeFront += dt * damping;
- lastTimeLeft += dt * damping;
- lastTime += dt;
-
- velocity.x = interpolate(clamp(lastTimeLeft, 0.0f, 1.0f), desiredVelocity.x, 0.0f);
- velocity.y = interpolate(clamp(lastTimeFront, 0.0f, 1.0f), desiredVelocity.y, 0.0f);
-
- //Execute movement
- if (this->hasLocalController())
- {
- float dist_y = velocity.y * dt;
- //float dist_x = velocity.x * dt;
- if(dist_y + posforeward > -42*3 && dist_y + posforeward < 42*6)
- posforeward += dist_y;
- else
- {
- velocity.y = 0;
- // restart if game ended
-/*
- if (getGame())
- if (getGame()->bEndGame)
- {
- getGame()->start();
- return;
- }*/
- }
-
- pos += Vector3(1000 + velocity.y, 0, velocity.x) * dt;
- }
-
-
- // Camera
- Camera* camera = this->getCamera();
- if (camera != nullptr)
- {
- // camera->setPosition(Vector3(-pos.z, -posforeward, 0));
- camera->setOrientation(Vector3::UNIT_Z, Degree(0));
- }
-
-
-
- // bring back on track!
- if(pos.y != 0)
- {
- pos.y = 0;
- }
-
- setPosition(pos);
- setOrientation(Vector3::UNIT_Y, Degree(270));
-
- // Level up!
- if (pos.x > 42000)
- {
- updateLevel();
- setPosition(Vector3(0, 0, pos.z)); // pos - Vector3(30000, 0, 0)
- }
-
SUPER(MiniGameTestShip, tick, dt);
}
@@ -124,18 +64,22 @@
getGame()->levelUp();
}
- void MiniGameTestShip::moveFrontBack(const Vector2& value)
+/* void MiniGameTestShip::moveFrontBack(const Vector2& value)
{
//lastTimeFront = 0;
//desiredVelocity.y = value.y * speed * 42;
-
+ orxout() << "FrontBack" << endl;
+ SUPER(MiniGameTestShip, moveFrontBack, value);
}
void MiniGameTestShip::moveRightLeft(const Vector2& value)
{
- lastTimeLeft = 0;
- desiredVelocity.x = value.x * speed;
+ //lastTimeLeft = 0;
+ //desiredVelocity.x = value.x * speed;
+ orxout() << "RightLeft" << endl;
+ SUPER(MiniGameTestShip, moveFrontBack, value);
}
+ */
void MiniGameTestShip::boost(bool bBoost)
{
//getGame()->bEndGame = bBoost;
Modified: code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTestShip.h
===================================================================
--- code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTestShip.h 2017-11-27 15:57:47 UTC (rev 11607)
+++ code/branches/Asteroid_HS17/src/modules/minigametest/MiniGameTestShip.h 2017-11-27 16:00:59 UTC (rev 11608)
@@ -54,8 +54,8 @@
virtual void tick(float dt) override;
// overwrite for 2d movement
- virtual void moveFrontBack(const Vector2& value) override;
- virtual void moveRightLeft(const Vector2& value) override;
+ //virtual void moveFrontBack(const Vector2& value) override;
+ //virtual void moveRightLeft(const Vector2& value) override;
// Starts or stops fireing
virtual void boost(bool bBoost) override;
@@ -81,7 +81,6 @@
MiniGameTest* getGame();
WeakPtr<MiniGameTest> game;
WeakPtr<WorldEntity> lastEntity;
- Camera* camera;
float lastTimeFront, lastTimeLeft, lastTime;
struct Velocity
{
More information about the Orxonox-commit
mailing list