A monster walks along a corridor getting whacked by various weapons.
The problem is that I insert the monster into a display group and once i’s moved it becomes impossible to hittest it. I must have missed something.
[lua]local physics = require(“physics”);
physics.start()
physics.setGravity(0,0);
physics.setDrawMode(“hybrid”);
– define objects
local monster1;
local weapon1;
local weapon1Sensor;
– define functions
local updatePhysicsBody;
local weaponHitmonster;
local weapon1DisplayGroup = display.newGroup();
require “sprite”
– Functions
– collision function
local function weaponHitmonster( self, event )
if(event.phase==“began”) then
print(“hit”);
end
end
function updatePhysicsBody(event)
weapon1Sensor.y = event.sprite.height -25;
end
local weapon = sprite.newSpriteSheetFromData(“weapon.png”, require(“weapon”).getSpriteSheetData());
local spriteSet1 = sprite.newSpriteSet(weapon,1,4)
sprite.add(spriteSet1,“upDown”,1,4,2000,0)
weapon1 = sprite.newSprite(spriteSet1)
weapon1DisplayGroup:insert(weapon1);
weapon1.x = 100;
weapon1.y = 140;
weapon1:prepare(“upDown”);
weapon1:play();
weapon1:addEventListener(“sprite”, updatePhysicsBody);
weapon1Sensor = display.newRect(weapon1.x-25,weapon1.y-20,50,60);
weapon1Sensor.alpha = .5;
physics.addBody(weapon1Sensor, “dynamic”)
weapon1Sensor.collision = weaponHitmonster;
weapon1Sensor:addEventListener(“collision”, weapon1Sensor);
monster = display.newRect(0,200,50,50);
physics.addBody(monster, “dynamic”, { isSensor = true} )
local monsterDisplayGroup = display.newGroup();
monsterDisplayGroup:insert(monster);
transition.to(monsterDisplayGroup, {x=500, time=10000});[/lua]
[import]uid: 55068 topic_id: 15018 reply_id: 315018[/import]
[import]uid: 64596 topic_id: 15018 reply_id: 55559[/import]