Flame game setup
Skill RadKod/claude-agents-kit/flutter-game/.claude/skills/flame-game-setup
FlameGame sinifi kurulumu, World/Camera yapisi, overlay, asset yukleme. Yeni oyun baslangici veya game sinifi duzenleme icin kullan.From its SKILL.md
npx -y skills add RadKod/claude-agents-kit --skill flame-game-setupAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.6 KB, 625 tokens by cl100k_base, as published. Nobody here has run it
Ana Game Sinifi
class MyGame extends FlameGame
with HasCollisionDetection, HasKeyboardHandlerComponents {
late final World gameWorld;
late final CameraComponent cam;
int score = 0;
bool isGameOver = false;
@override
Future<void> onLoad() async {
// Asset'leri onceden yukle
await images.loadAll([
'player_run.png', 'enemy.png', 'tileset.png',
]);
gameWorld = World();
cam = CameraComponent(world: gameWorld)
..viewfinder.anchor = Anchor.center;
addAll([gameWorld, cam]);
// Level yukle
gameWorld.add(Level(levelData: LevelConfig.level1));
}
void gameOver() {
isGameOver = true;
pauseEngine();
overlays.add('GameOver');
}
void restart() {
isGameOver = false;
score = 0;
gameWorld.removeAll(gameWorld.children);
gameWorld.add(Level(levelData: LevelConfig.level1));
overlays.remove('GameOver');
resumeEngine();
}
}
main.dart + GameWidget + Overlay
void main() {
runApp(
ProviderScope(
child: MaterialApp(
home: GameWidget<MyGame>.controlled(
gameFactory: MyGame.new,
overlayBuilderMap: {
'Pause': (context, game) => PauseMenu(game: game),
'GameOver': (context, game) => GameOverScreen(game: game),
'MainMenu': (context, game) => MainMenu(game: game),
},
initialActiveOverlays: const ['MainMenu'],
),
),
),
);
}
Asset Preloading
@override
Future<void> onLoad() async {
// Images
await images.loadAll(['player.png', 'enemy.png', 'bg.png']);
// Audio (flame_audio)
FlameAudio.bgm.initialize();
await FlameAudio.audioCache.loadAll(['jump.wav', 'hit.wav', 'bgm.mp3']);
}
// Kullanim:
FlameAudio.play('jump.wav');
FlameAudio.bgm.play('bgm.mp3', volume: 0.5);
Tiled Map Yuklemek
class Level extends World {
final String mapFile;
Level({required this.mapFile});
@override
Future<void> onLoad() async {
final map = await TiledComponent.load(mapFile, Vector2.all(16));
add(map);
// Object layer'dan entity'leri spawn et
final spawnLayer = map.tileMap.getLayer<ObjectGroup>('Spawns');
for (final obj in spawnLayer?.objects ?? []) {
switch (obj.class_) {
case 'Player': add(Player(position: Vector2(obj.x, obj.y)));
case 'Enemy': add(Enemy(position: Vector2(obj.x, obj.y)));
}
}
}
}
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.