From 970aa21eff55b6ee517afe36eaed5a59a066e074 Mon Sep 17 00:00:00 2001 From: Antoine Chavasse Date: Wed, 7 Jan 2009 01:58:23 +0100 Subject: [PATCH] Created a test obstacle to test collisions with. --- src/urggr_package/CMakeLists.txt | 1 + src/urggr_package/game.lua | 2 ++ src/urggr_package/level.lua | 1 + src/urggr_package/mainmenu.lua | 4 +++ src/urggr_package/playership.lua | 6 ++--- src/urggr_package/test_obstacle.lua | 52 +++++++++++++++++++++++++++++++++++++ src/urggr_package/urggr_package.lua | 1 + 7 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 src/urggr_package/test_obstacle.lua diff --git a/src/urggr_package/CMakeLists.txt b/src/urggr_package/CMakeLists.txt index f1490c0..b7e1c37 100644 --- a/src/urggr_package/CMakeLists.txt +++ b/src/urggr_package/CMakeLists.txt @@ -30,5 +30,6 @@ install( FILES camera.lua ship.lua playership.lua + test_obstacle.lua DESTINATION ${LUA_PACKAGE_INSTALL_PATH} ) diff --git a/src/urggr_package/game.lua b/src/urggr_package/game.lua index e1614c6..ed0ad90 100644 --- a/src/urggr_package/game.lua +++ b/src/urggr_package/game.lua @@ -77,6 +77,8 @@ Game = fail.utils.class function Game:render() + --collectgarbage() + local deltatime = self.time:elapsed() - self.lasttime self.lasttime = self.lasttime + deltatime diff --git a/src/urggr_package/level.lua b/src/urggr_package/level.lua index b71b918..f1ff762 100644 --- a/src/urggr_package/level.lua +++ b/src/urggr_package/level.lua @@ -41,6 +41,7 @@ Level = fail.utils.class self:addGameObject( urggr.Camera() ) self:addGameObject( urggr.PlayerShip( self ) ) + self:addGameObject( urggr.TestObstacle( self ) ) end } diff --git a/src/urggr_package/mainmenu.lua b/src/urggr_package/mainmenu.lua index fc555a2..3c978d6 100644 --- a/src/urggr_package/mainmenu.lua +++ b/src/urggr_package/mainmenu.lua @@ -65,6 +65,8 @@ MainMenu = fail.utils.class function MainMenu:render() + --collectgarbage() + local deltatime = self.time:elapsed() - self.lasttime self.lasttime = self.lasttime + deltatime @@ -72,6 +74,8 @@ function MainMenu:render() self.mainpass:prependToRenderList() --scene:evaluate( scenepass ) sg.RenderPass.RenderAll( true ) + + --collectgarbage() QTimer.singleShot( 10, self.qtscene, "1update()" ) diff --git a/src/urggr_package/playership.lua b/src/urggr_package/playership.lua index 122cc6e..b7a5a28 100644 --- a/src/urggr_package/playership.lua +++ b/src/urggr_package/playership.lua @@ -38,7 +38,7 @@ PlayerShip = fail.utils.class local mat = sg.Material() mat.Emission.value = fail.math.Vector4f( 1, 0, 0, 1 ) mat.Specular.value = fail.math.Vector4f( 0, 0, 0, 1 ) - self.renderable = sg.shapes.Cone( mat, self.frame ) + self.renderable = sg.shapes.Cube( mat, self.frame ) self.Speed = fail.math.Vector3f() @@ -48,7 +48,7 @@ PlayerShip = fail.utils.class -- aren't wrapped in fail yet. -- TODO: also provide a way to set the collision filter mask. self.CollisionObject = col.Object() - self.CollisionObject.pShape = col.BoxShape( fail.math.Vector3f( 1, 1, 1 ) ) + self.CollisionObject.pShape = col.BoxShape( fail.math.Vector3f( 0.5, 0.5, 0.5 ) ) self.CollisionObject.pFrame = self.frame level:addCollisionObject( self.CollisionObject ) @@ -98,7 +98,7 @@ function PlayerShip:update( deltatime ) -- call collect garbage regularly like so. -- Perhaps a garbage collection happening from an event handler or something results into a deadlock? -- --- collectgarbage() + collectgarbage() -- print( deltatime ) -- self.camframe.LocalToParent.position.x = 7 -- self.camframe:dirty() diff --git a/src/urggr_package/test_obstacle.lua b/src/urggr_package/test_obstacle.lua new file mode 100644 index 0000000..acea8cb --- /dev/null +++ b/src/urggr_package/test_obstacle.lua @@ -0,0 +1,52 @@ +--[[ + Urggr - An horizontal scrolling shoot'em up. + Copyright 2008-2009 Antoine Chavasse + + This file is part of Urggr. + + Urggr is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 3 + as published by the Free Software Foundation. + + Urggr is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +--]] + +require 'fail.utils' +require 'fail.math' +sg = require 'fail.scenegraph' +col = require 'fail.bullet.collision' + +TestObstacle = fail.utils.class +{ + superclass = GameObject, + + function( self, level ) + GameObject.init( self ) + + self.frame = sg.Frame() + self.frame.LocalToParent.position.x = 0 -- = fail.math.Vector3f( 0, 3, 3 ) + self.frame.LocalToParent.position.y = 3 -- = fail.math.Vector3f( 0, 3, 3 ) + self.frame.LocalToParent.position.z = 3 -- = fail.math.Vector3f( 0, 3, 3 ) + + + local mat = sg.Material() + mat.Emission.value = fail.math.Vector4f( 0, 0, 1, 1 ) + mat.Specular.value = fail.math.Vector4f( 0, 0, 0, 1 ) + self.renderable = sg.shapes.Cube( mat, self.frame ) + + level:addRenderable( self.renderable ) + + self.CollisionObject = col.Object() + self.CollisionObject.pShape = col.BoxShape( fail.math.Vector3f( 0.5, 0.5, 0.5 ) ) + self.CollisionObject.pFrame = self.frame + level:addCollisionObject( self.CollisionObject ) + + self.sigcon = self.CollisionObject.Contact:connect( function( obj ) print "lol" end ) + end +} diff --git a/src/urggr_package/urggr_package.lua b/src/urggr_package/urggr_package.lua index 6c1b2e7..986f9a7 100644 --- a/src/urggr_package/urggr_package.lua +++ b/src/urggr_package/urggr_package.lua @@ -25,3 +25,4 @@ dofile '${LUA_PACKAGE_INSTALL_PATH}/gameobject.lua' dofile '${LUA_PACKAGE_INSTALL_PATH}/camera.lua' dofile '${LUA_PACKAGE_INSTALL_PATH}/ship.lua' dofile '${LUA_PACKAGE_INSTALL_PATH}/playership.lua' +dofile '${LUA_PACKAGE_INSTALL_PATH}/test_obstacle.lua' -- 2.11.4.GIT