)
(solid #t)
)
+ (tile
+ (id 1311)
+ (solid #t)
+ (editor-images "bonus-invisible.png")
+ )
)
61 0 0 0 0 0 1063 0 1064 0 1065 0 1066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61
61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 48 0 0 0 0 0 0 0 61
61 48 0 0 0 0 0 0 0 0 0 0 48 48 0 0 0 0 0 0 48 48 0 0 0 0 0 0 0 61
- 61 48 48 48 0 0 0 0 0 0 0 0 48 48 0 0 0 0 0 0 48 48 0 0 0 0 0 0 0 61
+ 61 48 48 48 0 1311 0 0 0 0 0 0 48 48 0 0 0 0 0 0 48 48 0 0 0 0 0 0 0 61
61 0 0 0 0 0 0 0 0 0 0 0 48 48 0 0 0 0 0 0 48 48 0 0 0 0 0 0 48 61
61 0 0 0 0 0 0 0 0 0 0 0 48 48 0 0 0 0 0 0 48 48 0 0 0 0 0 0 0 61
27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27
--- /dev/null
+#include <config.h>
+
+#include "invisible_tile.h"
+#include "resources.h"
+#include "special/sprite.h"
+#include "special/sprite_manager.h"
+#include "video/drawing_context.h"
+
+InvisibleTile::InvisibleTile(const Vector& pos)
+ : Block(pos, sprite_manager->create("invisibleblock")), visible(false)
+{
+ flags |= FLAG_SOLID;
+}
+
+void
+InvisibleTile::draw(DrawingContext& context)
+{
+}
+
+void
+InvisibleTile::hit(Player& )
+{
+}
+
--- /dev/null
+#ifndef __INBUMPABLE_BLOCK_H__
+#define __INBUMPABLE_BLOCK_H__
+
+#include "block.h"
+
+class InvisibleTile : public Block
+{
+public:
+ InvisibleTile(const Vector& pos);
+
+ virtual void draw(DrawingContext& context);
+
+protected:
+ virtual void hit(Player& player);
+
+private:
+ bool visible;
+};
+
+#endif
+
/* Shoot! */
if (input.fire == DOWN && input.old_fire == UP && got_power != NONE_POWER) {
if(Sector::current()->add_bullet(
- get_pos() + Vector(0, bbox.get_height()/2),
+// get_pos() + Vector(0, bbox.get_height()/2),
+ get_pos() + ((dir == LEFT)? Vector(0, bbox.get_height()/2)
+ : Vector(32, bbox.get_height()/2)),
physic.get_velocity_x(), dir))
shooting_timer.start(SHOOTING_TIME);
input.old_fire = DOWN;
#include "object/coin.h"
#include "object/block.h"
#include "object/invisible_block.h"
+#include "object/invisible_tile.h"
#include "object/platform.h"
#include "object/bullet.h"
#include "badguy/jumpy.h"
#include "badguy/mrbomb.h"
#include "badguy/dispenser.h"
#include "badguy/spike.h"
+#include "badguy/spiky.h"
#include "badguy/nolok_01.h"
#include "trigger/door.h"
#include "trigger/sequence_trigger.h"
return new Dispenser(reader);
} else if(name == "spike") {
return new Spike(reader);
+ } else if(name == "spiky") {
+ return new Spiky(reader);
} else if(name == "nolok_01") {
return new Nolok_01(reader);
}
if(tile->getID() == 112) {
add_object(new InvisibleBlock(pos));
solids->change(x, y, 0);
+ } else if(tile->getID() == 1311) {
+ add_object(new InvisibleTile(pos));
+ solids->change(x, y, 0);
} else if(tile->getID() == 295) {
add_object(new Spike(pos, Spike::NORTH));
solids->change(x, y, 0);