[Orxonox-commit 6920] r11541 - in code/branches/Asteroid_HS17: data/levels data/levels/templates src/modules/asteroids
vyang at orxonox.net
vyang at orxonox.net
Mon Nov 6 16:06:54 CET 2017
Author: vyang
Date: 2017-11-06 16:06:54 +0100 (Mon, 06 Nov 2017)
New Revision: 11541
Added:
code/branches/Asteroid_HS17/data/levels/templates/spaceshipAsteroids.oxt
Modified:
code/branches/Asteroid_HS17/data/levels/Asteroid.oxw
code/branches/Asteroid_HS17/data/levels/Asteroids.oxw
code/branches/Asteroid_HS17/src/modules/asteroids/Asteroids.cc
code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsCenterPoint.h
code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsShip.cc
code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsShip.h
code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsStone.cc
code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsStone.h
Log:
TestLevel Design -> immer noch mit Fehlermeldungen, Asteroiden in der death() Methode von AsteroidsStone spawnen oder im game?
Modified: code/branches/Asteroid_HS17/data/levels/Asteroid.oxw
===================================================================
--- code/branches/Asteroid_HS17/data/levels/Asteroid.oxw 2017-11-06 15:05:15 UTC (rev 11540)
+++ code/branches/Asteroid_HS17/data/levels/Asteroid.oxw 2017-11-06 15:06:54 UTC (rev 11541)
@@ -1,5 +1,5 @@
<LevelInfo
- name = "emptyLevel"
+ name = "AsteroidsTest"
description = "A level with absolutely nothing in it."
tags = "test"
screenshot = "emptylevel.png"
@@ -13,7 +13,7 @@
?>
<?lua
- include("templates/spaceshipEscort.oxt")
+ include("templates/spaceship.oxt")
include("templates/endurancetest_template.oxt")
?>
@@ -29,13 +29,8 @@
>
<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"/>
- <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
+ <SpawnPoint team=0 position="0,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipAsteroids />
- <ModularSpaceShip velocity= "20,0,0" position="0,0,200" lookat= "0,0,0" health="1000" maxhealth="1000" initialhealth="1000">
- <templates>
- <Template link=endurance />
- </templates>
- </ModularSpaceShip>
</Scene>
</Level>
Modified: code/branches/Asteroid_HS17/data/levels/Asteroids.oxw
===================================================================
--- code/branches/Asteroid_HS17/data/levels/Asteroids.oxw 2017-11-06 15:05:15 UTC (rev 11540)
+++ code/branches/Asteroid_HS17/data/levels/Asteroids.oxw 2017-11-06 15:06:54 UTC (rev 11541)
@@ -1,7 +1,7 @@
<LevelInfo
name = "Asteroids"
description = "Try to prevent asteroids from colliding into your spaceshuttle. Be prepared to dodge all asteroids or destroy them."
- tags = "asteroids, minigame"
+ tags = "minigame"
screenshot = "emptylevel.png"
/>
@@ -14,14 +14,28 @@
<?lua
include("templates/spaceshipAssff2.oxt")
include("templates/spaceshipPirate.oxt")
- include("templates/spaceshipInvader.oxt")
- include("templates/enemyInvader.oxt")
+ include("templates/spaceshipAsteroids.oxt")
include("overlays/InvaderHUD.oxo")
?>
+<Template name=asteroidsshipcamera defaults=0>
+ <AsteroidsShip>
+ <camerapositions>
+ <CameraPosition position="55,75,200" absolute=true />
+ <!--CameraPosition position="0,50,160" drag=true mouselook=true />
+ <CameraPosition position="0,50,0" pitch=-90 drag=true mouselook=true /-->
+ </camerapositions>
+ </AsteroidsShip>
+</Template>
+
+<Template name=asteroidsship>
+ <AsteroidsShip camerapositiontemplate=asteroidsshipcamera>
+ </AsteroidsShip>
+</Template>
+
<Level
- plugins = invader
- gametype = Invader
+ plugins = asteroids
+ gametype = Asteroids
>
<templates>
<Template link=lodtemplate_default />
@@ -37,38 +51,13 @@
<!-- <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" />
- <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=InvaderShip pawndesign=spaceshipinvader />
+ <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=AsteroidsShip pawndesign=asteroidsship />
<DistanceTrigger name="start" position="-200,0,0" target="Pawn" distance=10 stayActive="true" delay=0 />
- <InvaderCenterPoint name=invadercenter />
+ <AsteroidsCenterPoint name=asteroidscenter />
- <?lua
- for i = 1, 300, 1 do
- j = math.random()
- ?>
-
- <MovableEntity
- position = "<?lua print(math.random()* 40000 + 1000) ?>,-1000,<?lua print(math.random() * 4000 - 2000) ?>"
- collisionType = dynamic
- linearDamping = 0.8
- angularDamping = 0
- scale = "<?lua print(j * 150)?>"
- collisiondamage = 0
- enablecollisiondamage = true
- >
- <attached>
- <Model mass="<?lua print(j * 1000) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" />
- </attached>
- <collisionShapes>
- <SphereCollisionShape radius="<?lua print(j * 350) ?>" />
- </collisionShapes>
- </MovableEntity>
-
- <?lua
- end
- ?>
</Scene>
</Level>
Added: code/branches/Asteroid_HS17/data/levels/templates/spaceshipAsteroids.oxt
===================================================================
--- code/branches/Asteroid_HS17/data/levels/templates/spaceshipAsteroids.oxt (rev 0)
+++ code/branches/Asteroid_HS17/data/levels/templates/spaceshipAsteroids.oxt 2017-11-06 15:06:54 UTC (rev 11541)
@@ -0,0 +1,129 @@
+<Template name=spaceshipescort>
+ <SpaceShip
+ hudtemplate = spaceshiphud
+ camerapositiontemplate = spaceshipescortcameras
+ spawnparticlesource = "Orxonox/fairytwirl"
+ spawnparticleduration = 3
+ explosionchunks = 10
+
+ health = 80
+ maxhealth = 200
+ initialhealth = 80
+
+ shieldhealth = 35
+ initialshieldhealth = 35
+ maxshieldhealth = 60
+ shieldabsorption = 0.9
+ shieldrechargerate = 1
+ shieldrechargewaittime = 1
+
+ primaryThrust = 150
+ auxilaryThrust = 30
+ rotationThrust = 50
+
+ lift = 1;
+ stallSpeed = 220;
+
+ boostPower = 20
+ boostPowerRate = 1
+ boostRate = 5
+ boostCooldownDuration = 10
+
+ shakeFrequency = 15
+ shakeAmplitude = 6
+
+ collisionType = "dynamic"
+ mass = 80
+ linearDamping = 0.7
+ angularDamping = 0.9999999
+ >
+ <engines>
+ <MultiStateEngine position=" 7.6, 0, 6" template=spaceshipescortengine />
+ <MultiStateEngine position="-7.6, 0, 0" template=spaceshipescortengine />
+ </engines>
+ <attached>
+ <Model position="0,0,0" yaw=90 pitch=0 roll=0 scale=4 mesh="escortShip.mesh" />
+ <Model position="0,0,0" yaw=180 pitch=90 roll=0 scale=4 mesh="escortWeapon.mesh" />
+<!--Model mesh="cube.mesh" mass=10 position="0,0,3" scale3D="10,4,8" />
+<Model mesh="cube.mesh" mass=10 position="12.6,-2,3" scale3D="2.8,2.8,11" />
+<Model mesh="cube.mesh" mass=10 position="-12.6,-2,3" scale3D="2.8,2.8,11" />
+<Model mesh="cube.mesh" mass=10 position="0,0,-12" scale3D="4,4,7" /-->
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0 ,0 , 3" halfExtents="10, 4,8" />
+ <BoxCollisionShape position="12.6 ,-2, 3" halfExtents="2.8,2.8,11"/>
+ <BoxCollisionShape position="-12.6,-2, 3" halfExtents="2.8,2.8,11"/>
+ <BoxCollisionShape position="0, 0,-12" halfExtents="4 , 4 ,7" />
+ </collisionShapes>
+ <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" />
+ </explosion>
+<?lua
+ include("../includes/weaponSettingsEscort.oxi")
+?>
+ </SpaceShip>
+</Template>
+
+<Template name=spaceshipescortcameras defaults=0>
+ <SpaceShip>
+ <camerapositions>
+ <CameraPosition position="0,150,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>
+</Template>
+
+<Template name=spaceshipescortengine baseclass=MultiStateEngine>
+ <MultiStateEngine
+ boostfactor = 2.2
+
+ speedfront = 200
+ speedback = 70
+ speedleftright = 70
+ speedupdown = 70
+
+ defEngineSndNormal = "sounds/Engine_low.ogg"
+ defEngineSndBoost = "sounds/Engine_high.ogg"
+
+ accelerationfront = 700
+ accelerationbrake = 700
+ accelerationback = 125
+ accelerationleftright = 125
+ accelerationupdown = 125
+ >
+ <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 />
+ <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 />
+ </EffectContainer>
+ <EffectContainer condition="normal or brake">
+
+ </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" />
+ </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" />
+ </EffectContainer>
+
+ </MultiStateEngine>
+</Template>
Modified: code/branches/Asteroid_HS17/src/modules/asteroids/Asteroids.cc
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids/Asteroids.cc 2017-11-06 15:05:15 UTC (rev 11540)
+++ code/branches/Asteroid_HS17/src/modules/asteroids/Asteroids.cc 2017-11-06 15:06:54 UTC (rev 11541)
@@ -68,10 +68,9 @@
}
//spawnt durch den Timer Asteroiden, denk dran, dass falls ein Asteroid stirbt er in 2 teile geteilt wird
- Asteroids::spawnStone(){
- if(getPlayer() == nullptr){
- return;
- }
+ void Asteroids::spawnStone()
+ {
+ if(getPlayer() == nullptr) return;
AsteroidsStone* newStone;
newStone = new AsteroidsStone(this->center_->getContext());
@@ -79,31 +78,6 @@
newStone->setAsteroidsPlayer(player);
}
- void Invader::spawnEnemy()
- {
- if (getPlayer() == nullptr)
- return;
-
- for (int i = 0; i < (3*log10(static_cast<double>(level)) + 1); i++)
- {
- InvaderEnemy* newPawn;
- if (rand() % 42/(1 + level*level) == 0)
- {
- newPawn = new InvaderEnemyShooter(this->center_->getContext());
- newPawn->addTemplate("enemyinvadershooter");
- }
- else
- {
- newPawn = new InvaderEnemy(this->center_->getContext());
- newPawn->addTemplate("enemyinvader");
- }
- newPawn->setInvaderPlayer(player);
- newPawn->level = level;
- // spawn enemy at random points in front of player.
- newPawn->setPosition(player->getPosition() + Vector3(500.f + 100 * i, 0, float(rand())/RAND_MAX * 400 - 200));
- }
- }
-
/**
@brief
Destructor. Cleans up, if initialized.
@@ -154,7 +128,8 @@
void Asteroids::costLife()
{
lives = 0;
- };
+ }
+
void Asteroids::start()
{
if (this->center_ == nullptr) // There needs to be a AsteroidsCenterpoint, i.e. the area the game takes place. If no centerpoint was specified, an error is thrown and the level is exited.
Modified: code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsCenterPoint.h
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsCenterPoint.h 2017-11-06 15:05:15 UTC (rev 11540)
+++ code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsCenterPoint.h 2017-11-06 15:06:54 UTC (rev 11541)
@@ -59,6 +59,12 @@
Vector2 getFieldDimension() const
{ return Vector2(this->width_, this->height_); }
+ float getFieldWidth() const
+ {return this->width_;}
+
+ float getFieldHeight() const
+ {return this->height_;}
+
private:
void checkGametype();
//Spielfeld liegt in x-z Ebene, x ist LeftRight(Horizontale), z ist UpDown (Vertikale)
Modified: code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsShip.cc
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsShip.cc 2017-11-06 15:05:15 UTC (rev 11540)
+++ code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsShip.cc 2017-11-06 15:06:54 UTC (rev 11541)
@@ -17,21 +17,27 @@
AsteroidsShip::AsteroidsShip(Context* context) : SpaceShip(context)
{
RegisterObject(AsteroidsShip);
- /*radius = 20;
- x = getPosition().x;
- y = getPosition().y;
- dx = 3.0f;
- dy = 3.0f;
- angle= 0.0f;*/
- speed = 830;
+ angle= 0.0f;
+
+
+
isFireing = false;
- damping = 10;
+ damping = 0.90;
lastTimeFront = 0;
lastTimeLeft = 0;
lastTime = 0;
+ height = this->getGame()->center_->getFieldHeight();
+ width = this->getGame()->center_->getFieldWidth();
+
+ force.x =0;
+ force.y =0;
+
+ velocity.x = 0;
+ velocity.y = 0;
+
}
//Destructor
@@ -46,69 +52,40 @@
//update coordinates and velocity
void AsteroidsShip::tick(float dt)
{
- /*Movement computation
+ //Movement computation beachte Beschleunigung?
Vector3 pos = getPosition();
- dx *= damping;
- dy *= damping;
-
- float speed = sqrt(dx*dx+ dy*dy);
+ float speed = sqrt(velocity.x*velocity.x+ velocity.y*velocity.y);
if(speed > maxspeed)
{
- dx *= maxspeed/speed;
- dy *= mayspeed/speed;
+ velocity.x *= maxspeed/speed;
+ velocity.y *= mayspeed/speed;
}
- x += dx;
- y += dy;
+ pos.x += velocity.x*dt;
+ pos.y += velocity.y*dt;
- if(x>W) x=0;
- if(x<0) x=W;
- if(y>H) y=0;
- if(y<0) y=H;
- setPosition(x,y,0);
- //roll? muss sich das Raumschiff drehen?
- setOrientation(angle, x, y, 0);
+ //haelt ship innerhalb des Kamerafensters
+ if(x>width) x=0;
+ if(x<0) x=width;
+ if(y>height) y=0;
+ if(y<0) y=height);
+
//Schiessen wenn geschossen wurde
// shoot!
+/*
if (isFireing)
ControllableEntity::fire(0);
-
- //Leben verloren */
- 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;
- }*/
- }
+ force.x += 1;
+ force.y += 1;
- pos += Vector3(1000 + velocity.y, 0, velocity.x) * dt;
-
}
@@ -117,8 +94,8 @@
Camera* camera = this->getCamera();
if (camera != nullptr)
{
- // camera->setPosition(Vector3(-pos.z, -posforeward, 0));
- camera->setOrientation(Vector3::UNIT_Z, Degree(0));
+ camera->setPosition(Vector3(0,cameradistance, 0));
+ camera->setOrientation(Vector3::UNIT_Z, Degree(90));
}
@@ -129,23 +106,27 @@
pos.y = 0;
}
+ velocity.x *= damping;
+ velocity.y *= damping;
+
setPosition(pos);
setOrientation(Vector3::UNIT_Y, Degree(270));
SUPER(AsteroidsShip, tick, dt);
+
}
void AsteroidsShip::moveFrontBack(const Vector2& value)
{
-
-
+ velocity.x += 1;
}
- void AsteroidsShip::moveFrontBack(const Vector2& value)
+ void AsteroidsShip::moveUpDown(const Vector2& value)
{
+ velocity.y +=1;
}
- void AsteroidsShip::moveFrontBack(const Vector2& value)
+ void AsteroidsShip::moveFrontLeftRight(const Vector2& value)
{
}
Modified: code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsShip.h
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsShip.h 2017-11-06 15:05:15 UTC (rev 11540)
+++ code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsShip.h 2017-11-06 15:06:54 UTC (rev 11541)
@@ -71,13 +71,18 @@
bool bShowLevel;
int lives;
float angle, radius;
- float speed, damping, posforeward;
+ float damping, posforeward;
bool isFireing;
+ float dx, dy;
+ const float maxspeed = 500;
+ const float cameradistance = 100;
//Nachschauen wie gross das Spielfeld ist!
- float H = 1000;
- float W = 1000;
+ float height;
+ float width;
+
+
protected:
virtual void death() override;
@@ -87,11 +92,11 @@
WeakPtr<WorldEntity> lastEntity;
Camera* camera;
float lastTimeFront, lastTimeLeft, lastTime;
- struct Velocity
+ struct Vector
{
float x;
float y;
- } velocity, desiredVelocity;
+ }force, velocity
};
}
Modified: code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsStone.cc
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsStone.cc 2017-11-06 15:05:15 UTC (rev 11540)
+++ code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsStone.cc 2017-11-06 15:06:54 UTC (rev 11541)
@@ -38,6 +38,7 @@
#include <cmath>
#include "util/Math.h"
+
namespace orxonox
{
RegisterClass(AsteroidsStone);
@@ -46,27 +47,47 @@
{
RegisterObject(AsteroidsStone);
-
-
maxspeed = 50.0f;
- //Random Spawn? pos= random?
+ //Random Spawn? pos= random? -> spawn durch timer in der Asteroids Klasse
this->setPosition(rnd(0, fieldWidth_), rnd(0, fieldHeigth_), 0);
- if(r){
- this.r = r*0.5;
- }else{
- this.r = rnd(15, 50);
- }
//random Geschwindigkeit und Richtung
velocity.x = rnd(0, maxspeed);
velocity.y = rnd(0, maxspeed);
+ this->context = context;
}
+
+ void Asteroids::death()
+ {
+ if(this->size == 1){
+ Pawn::death();
+ }else if(this->size == 2){
+ Pawn::death();
+
+ //Wie mache ich das ? Eigentlich in der game Klasse? sonst zeigt der Pointer auf einen falschen Bereich
+
+ for(int i = 0; i<2; i++)
+ {
+ AsteroidsStone* newStone;
+ newStone = new AsteroidsStone(this->context);
+ newStone->addTemplate("asteroidsstone");
+ newStone->setAsteroidsPlayer(player);
+ }
+
+ }
+ }
+
+
//Bis hier geschrieben
void AsteroidsStone::tick(float dt)
{
Vector3 pos = this->getPosition();
pos.x += velocity.x*dt;
- pos.y += velocity.y*dt;
+ pos.z += velocity.y*dt;
+
+ if(pos.y != 0){
+ pos.y=0;
+ }
setPosition(pos);
SUPER(AsteroidsStone, tick, dt);
}
Modified: code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsStone.h
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsStone.h 2017-11-06 15:05:15 UTC (rev 11540)
+++ code/branches/Asteroid_HS17/src/modules/asteroids/AsteroidsStone.h 2017-11-06 15:06:54 UTC (rev 11541)
@@ -37,6 +37,7 @@
#include "asteroids/AsteroidsPrereqs.h"
#include "worldentities/Pawn.h"
+#include "core/object/Context.h"
namespace orxonox
{
@@ -46,18 +47,25 @@
AsteroidsStone(Context* context);
virtual void tick(float dt) override;
- //Radius of the asteroid
- float r;
+ //Es gibt 3 Groessen von Meteroiden gross, mittel, klein, gross ->2 mittleren, mittel -> 2 kleinen, kleine-> verschwinden
+ int size;
int level;
virtual void setAsteroidsPlayer(AsteroidsShip* player){this->player = player;}
+
protected:
+ virtual void death() override;
+
+
//herausfinden->ueber Kamera Einstellung wie bei Pong?
float fieldWidth_=500;
float fieldHeight_=700;
Vector2 velocity;
float maxspeed;
+
+ private:
+ Context* context;
};
}
More information about the Orxonox-commit
mailing list