I am already doing this, but i don’t know how to make it dynamic. Now i use these to make portals:
if(currentLevel == levels.get(0)) {
Level.others.add(new Teleporter((w-1)/2*32, (h-2)*32, (Level) levels.get(1)));
Level.others.add(new Teleporter(w/2*32, (h-2)*32, (Level) levels.get(1)));
Level.others.add(new Teleporter(32, (h-1)/2*32, (Level) levels.get(2)));
Level.others.add(new Teleporter(32, h/2*32, (Level) levels.get(2)));
Level.others.add(new Teleporter((w-1)/2*32, 32, (Level) levels.get(3)));
Level.others.add(new Teleporter(w/2*32, 32, (Level) levels.get(3)));
Level.others.add(new Teleporter((w-2)*32, (h-1)/2*32, (Level) levels.get(4)));
Level.others.add(new Teleporter((w-2)*32, h/2*32, (Level) levels.get(4)));
} else if(currentLevel == levels.get(1)) {
Level.others.add(new Teleporter((w-1)/2*32, 32, (Level) levels.get(0)));
Level.others.add(new Teleporter(w/2*32, 32, (Level) levels.get(0)));
} else if(currentLevel == levels.get(2)) {
Level.others.add(new Teleporter((w-2)*32, (h-1)/2*32, (Level) levels.get(0)));
Level.others.add(new Teleporter((w-2)*32, h/2*32, (Level) levels.get(0)));
} else if(currentLevel == levels.get(3)) {
Level.others.add(new Teleporter((w-1)/2*32, (h-2)*32, (Level) levels.get(0)));
Level.others.add(new Teleporter(w/2*32, (h-2)*32, (Level) levels.get(0)));
} else if(currentLevel == levels.get(4)) {
Level.others.add(new Teleporter(32, (h-1)/2*32, (Level) levels.get(0)));
Level.others.add(new Teleporter(32, h/2*32, (Level) levels.get(0)));
}