From a9b4d9b192dfe93d2cff9fdca17b0a5107acc88d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gim=C3=A9nez=20Silva=20Germ=C3=A9n=20Alberto?= Date: Tue, 21 Apr 2026 13:04:28 -0300 Subject: [PATCH] add invaders to repository --- examples/basics/circle_thickness.rb | 2 +- examples/invaders/main.rb | 376 +++++++++++++++++++++++++++ examples/invaders/space_invaders.gif | Bin 0 -> 84894 bytes 3 files changed, 377 insertions(+), 1 deletion(-) create mode 100644 examples/invaders/main.rb create mode 100644 examples/invaders/space_invaders.gif diff --git a/examples/basics/circle_thickness.rb b/examples/basics/circle_thickness.rb index bf4bb51..5f89195 100644 --- a/examples/basics/circle_thickness.rb +++ b/examples/basics/circle_thickness.rb @@ -10,7 +10,7 @@ green = GD::Color.rgb(40,180,80) # Fondo -img.filled_rectangle(0,0,SIZE,SIZE, white) +img.fill(0,0,SIZE,SIZE, white) # Círculo fino (por defecto thickness = 1) img.circle(200,200,150, red) diff --git a/examples/invaders/main.rb b/examples/invaders/main.rb new file mode 100644 index 0000000..7b49417 --- /dev/null +++ b/examples/invaders/main.rb @@ -0,0 +1,376 @@ +require 'gd' + +# ═══════════════════════════════════════════════════════════════════════════ +# Space Invaders Animated GIF Generator using ruby-libgd +# +# Generates an animated GIF of a simple Space Invaders game +# Pure Ruby, no external processes, using ruby-libgd's native GIF support +# ═══════════════════════════════════════════════════════════════════════════ + +class SpaceInvadersGame + WIDTH = 400 + HEIGHT = 300 + FPS = 10 + FRAMES = 60 + + def initialize(output_file = "space_invaders.gif") + @output_file = output_file + @gif = nil + @player_x = WIDTH / 2 - 10 + @enemies = [] + @bullets = [] + @score = 0 + @frame_count = 0 + @direction = 1 # 1 for right, -1 for left + + initialize_enemies + end + + # ─────────────────────────────────────────────────────────────────────── + # Initialize enemy positions + # ─────────────────────────────────────────────────────────────────────── + def initialize_enemies + @enemies = [] + # 3 rows of enemies + (0..2).each do |row| + (0..4).each do |col| + @enemies << { + x: 40 + (col * 60), + y: 40 + (row * 40), + width: 20, + height: 20, + alive: true + } + end + end + end + + # ─────────────────────────────────────────────────────────────────────── + # Generate the animated GIF + # ─────────────────────────────────────────────────────────────────────── + def generate + puts "🎮 Generating Space Invaders GIF..." + puts " Size: #{WIDTH}x#{HEIGHT}, Frames: #{FRAMES}, FPS: #{FPS}" + + FRAMES.times do |frame| + @frame_count = frame + update_game_state + img = render_frame + add_frame_to_gif(img) + end + + close_gif + puts "GIF saved to: #{@output_file}" + puts " Size: #{File.size(@output_file) / 1024}KB" + end + + # ─────────────────────────────────────────────────────────────────────── + # Update game state for this frame + # ─────────────────────────────────────────────────────────────────────── + def update_game_state + # Move enemies left and right + move_enemies + + # Player moves with sin wave for smooth motion + @player_x = (WIDTH / 2) + (Math.sin(@frame_count * 0.3) * 80).to_i + @player_x = [@player_x, 0].max + @player_x = [@player_x, WIDTH - 20].min + + # Enemies shoot randomly + if rand < 0.15 + enemy = @enemies.sample + if enemy && enemy[:alive] + @bullets << { + x: enemy[:x] + 10, + y: enemy[:y] + 20, + enemy_bullet: true + } + end + end + + # Player shoots + if @frame_count % 8 == 0 + @bullets << { + x: @player_x + 10, + y: HEIGHT - 40, + enemy_bullet: false + } + end + + # Update bullet positions + @bullets.each do |bullet| + if bullet[:enemy_bullet] + bullet[:y] += 5 + else + bullet[:y] -= 7 + end + end + + # Remove bullets that are off-screen + @bullets.reject! { |b| b[:y] < 0 || b[:y] > HEIGHT } + + # Check collisions + check_collisions + + # Move enemies down and change direction at edges + if @frame_count % 3 == 0 + @enemies.each do |enemy| + next unless enemy[:alive] + enemy[:x] += @direction * 8 + end + + # Change direction if any enemy hits the edge + if @enemies.any? { |e| e[:alive] && (e[:x] < 10 || e[:x] > WIDTH - 30) } + @direction *= -1 + end + end + + # Remove dead enemies + @enemies.reject! { |e| !e[:alive] } + + # Reset if all enemies defeated + if @enemies.empty? + @score += 100 + initialize_enemies + end + end + + # ─────────────────────────────────────────────────────────────────────── + # Check collisions between bullets and enemies/player + # ─────────────────────────────────────────────────────────────────────── + def check_collisions + @bullets.each do |bullet| + if !bullet[:enemy_bullet] + # Player bullet hits enemy + @enemies.each do |enemy| + next unless enemy[:alive] + if collide?(bullet, enemy) + enemy[:alive] = false + @score += 10 + @bullets.delete(bullet) + break + end + end + else + # Enemy bullet hits player + if collide?(bullet, { x: @player_x, y: HEIGHT - 30, width: 20, height: 20 }) + @bullets.delete(bullet) + end + end + end + end + + # ─────────────────────────────────────────────────────────────────────── + # Simple collision detection + # ─────────────────────────────────────────────────────────────────────── + def collide?(bullet, obj) + bullet[:x] > obj[:x] && + bullet[:x] < obj[:x] + (obj[:width] || 20) && + bullet[:y] > obj[:y] && + bullet[:y] < obj[:y] + (obj[:height] || 20) + end + + # ─────────────────────────────────────────────────────────────────────── + # Move enemies (horizontal wave pattern) + # ─────────────────────────────────────────────────────────────────────── + def move_enemies + # Enemies move in a wave pattern (already handled in update_game_state) + end + + # ─────────────────────────────────────────────────────────────────────── + # Render a frame + # ─────────────────────────────────────────────────────────────────────── + def render_frame + img = GD::Image.new(WIDTH, HEIGHT) + + # Fill background with black + black = [0, 0, 0] + white = [255, 255, 255] + green = [0, 255, 0] + red = [255, 0, 0] + cyan = [0, 255, 255] + yellow = [255, 255, 0] + + img.fill(black) + + # Draw stars (background) + draw_stars(img, white) + + # Draw enemies + @enemies.each do |enemy| + draw_enemy(img, enemy, green) + end + + # Draw player + draw_player(img, @player_x, HEIGHT - 30, cyan) + + # Draw bullets + @bullets.each do |bullet| + color = bullet[:enemy_bullet] ? red : yellow + img.filled_circle(bullet[:x], bullet[:y], 2, color) + end + + # Draw score + draw_text(img, "SCORE: #{@score}", 10, 10, white) + draw_text(img, "ENEMIES: #{@enemies.length}", 10, 25, white) + draw_text(img, "FRAME: #{@frame_count}/#{FRAMES}", 10, 40, white) + + img + end + + # ─────────────────────────────────────────────────────────────────────── + # Draw a simple enemy sprite + # ─────────────────────────────────────────────────────────────────────── + def draw_enemy(img, enemy, color) + x = enemy[:x].to_i + y = enemy[:y].to_i + + # Draw enemy as a rectangle with a simple pattern + img.filled_rectangle(x, y, x + 20, y + 15, color) + + # Eyes + img.filled_rectangle(x + 4, y + 2, x + 6, y + 4, [0, 0, 0]) + img.filled_rectangle(x + 14, y + 2, x + 16, y + 4, [0, 0, 0]) + end + + # ─────────────────────────────────────────────────────────────────────── + # Draw player sprite + # ─────────────────────────────────────────────────────────────────────── + def draw_player(img, x, y, color) + x = x.to_i + y = y.to_i + + # Draw player as a triangle (spaceship) + # Base + img.filled_rectangle(x, y + 15, x + 20, y + 20, color) + + # Cockpit + img.filled_rectangle(x + 7, y + 5, x + 13, y + 15, color) + + # Engine glow (blinking) + if @frame_count % 4 < 2 + img.filled_rectangle(x + 5, y + 18, x + 8, y + 20, [255, 100, 0]) + img.filled_rectangle(x + 12, y + 18, x + 15, y + 20, [255, 100, 0]) + end + end + + # ─────────────────────────────────────────────────────────────────────── + # Draw animated stars in background + # ─────────────────────────────────────────────────────────────────────── + def draw_stars(img, color) + # Use frame count to create twinkling effect + seed = @frame_count + 15.times do |i| + x = (i * 27 + seed * 5) % WIDTH + y = (i * 19 + seed * 3) % HEIGHT + brightness = (Math.sin(seed * 0.1 + i) * 100 + 155).to_i + star_color = [brightness, brightness, brightness] + img.filled_circle(x, y, 1, star_color) + end + end + + # ─────────────────────────────────────────────────────────────────────── + # Draw text on image + # ─────────────────────────────────────────────────────────────────────── + def draw_text(img, text, x, y, color) + # Simple text rendering using small rectangles (pixel art) + # For now, just use a basic placeholder + # In production, you'd use img.text() with a TTF font + end + + # ─────────────────────────────────────────────────────────────────────── + # Add frame to GIF (using ruby-libgd's native GIF support) + # ─────────────────────────────────────────────────────────────────────── + def add_frame_to_gif(img) + if @frame_count == 0 + # Create GIF on first frame + @gif = GD::Gif.new(@output_file, loop: true) + end + + # Add frame with delay + delay = (1000 / FPS / 10).to_i # Convert to centiseconds + @gif.add_frame(img, delay: [delay, 1].max) # Minimum 1 centisecond + end + + # ─────────────────────────────────────────────────────────────────────── + # Close and save the GIF + # ─────────────────────────────────────────────────────────────────────── + def close_gif + @gif.close if @gif + end +end + +# ═══════════════════════════════════════════════════════════════════════════ +# RUN THE GAME +# ═══════════════════════════════════════════════════════════════════════════ + +if __FILE__ == $0 + puts "🎮 Space Invaders GIF Generator" + puts "================================" + puts "" + + game = SpaceInvadersGame.new("space_invaders.gif") + game.generate + + puts "" + puts "- Play the GIF to see the game in action!" + puts "- Features:" + puts " * Animated enemies (wave pattern)" + puts " * Player movement (sin wave)" + puts " * Collision detection" + puts " * Scoring system" + puts " * Enemy bullets vs player bullets" + puts " * Twinkling stars background" + puts " * 100% ruby-libgd (no external processes)" + puts "" +end + +# ═══════════════════════════════════════════════════════════════════════════ +# ALTERNATIVE: SIMPLER VERSION (If you want to start small) +# ═══════════════════════════════════════════════════════════════════════════ + +class SimpleSpaceInvaders + def self.generate + puts "🎮 Generating Simple Space Invaders..." + + gif = GD::Gif.new("simple_space_invaders.gif", loop: true) + + # Generate 30 frames of simple animation + 30.times do |frame| + img = GD::Image.new(300, 200) + + # Background + img.fill([0, 0, 50]) # Dark blue + + # Enemy (moves left and right) + enemy_x = 100 + (Math.sin(frame * 0.2) * 80).to_i + img.filled_rectangle(enemy_x, 50, enemy_x + 30, 80, [0, 255, 0]) + + # Player (at bottom) + player_x = 130 + (Math.sin(frame * 0.1) * 40).to_i + img.filled_rectangle(player_x, 150, player_x + 20, 180, [0, 255, 255]) + + # Bullet + if frame % 5 < 2 + bullet_y = 150 - ((frame % 20) * 3) + img.filled_circle(player_x + 10, bullet_y, 2, [255, 255, 0]) + end + + # Score + img.text("SCORE: #{frame * 10}", { + x: 10, y: 10, + size: 12, + color: [255, 255, 255] + }) + + # Add frame to GIF (delay in centiseconds) + gif.add_frame(img, delay: 10) + end + + gif.close + puts "* Saved to: simple_space_invaders.gif" + end +end + +# Uncomment to run the simpler version: +# SimpleSpaceInvaders.generate diff --git a/examples/invaders/space_invaders.gif b/examples/invaders/space_invaders.gif new file mode 100644 index 0000000000000000000000000000000000000000..b730c0d8bb977d3d7497a6419fbdc799c7a841b5 GIT binary patch literal 84894 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 literal 0 HcmV?d00001