見出し画像

#クエスト9 社内の人にSlackで陰口言われてる限界エンジニアがポンコツ野球ゲームを作成した


1.はじめに

タイトルの通り人に笑われ馬鹿にされている限界エンジニアの登場です‼️
詳細を書いてしまうと特定されてしまいますからね、曖昧にしますが、別部門の方とSlackでやりとりした数分後、その方のマネージャーが急に悪口というか馬鹿にするような一言を誤ってやりとりの続きにポン🎵と送信してきました‼️

「あ〜さっきのやりとりのことで、あーでもないこーでもないって話してたんだろうな。それにしてもこんなこと言ってるんだぁ。へぇ〜😃」

1~2分経過してからですかね?静かに削除されてました。🤣
いや〜唐突に気付かされるんですね。正直30超えのおじさんでも陰口とかってあるんだなぁと感心しました。
あーあ、仕事なんかしないでも生きていけるようになれればなぁ〜。

というわけで、野球ゲーム⚾️を作っていきます(笑)


2.開発環境

  • 言語:Python

  • ライブラリ:Pygame

  • エディタ:Visual Studio Code

  • 実行環境:Mac mini


3.コード

import pygame
import sys
import random
import math

pygame.init()
WIDTH, HEIGHT = 800, 400
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("ホームラン競争")
clock = pygame.time.Clock()
FONT = pygame.font.SysFont(None, 36)

WHITE = (255, 255, 255)
BLACK = (0, 0, 0)

# ゲーム変数
bat_swinging = False
swing_timer = 0
ball_active = False
ball_x, ball_y = 0, 0
ball_speed_x, ball_speed_y = 0, 0
hit = False
distance = 0
pitch_timer = random.randint(60, 180)

batter_x, batter_y = 100, HEIGHT - 100
pitcher_x, pitcher_y = WIDTH - 100, HEIGHT - 100

def draw_stickman(x, y, face_left=True):
    head = pygame.Rect(x - 5, y - 60, 10, 10)
    body = pygame.Rect(x - 1, y - 50, 2, 20)
    arm1 = pygame.Rect(x - 10, y - 50, 10, 2)
    arm2 = pygame.Rect(x, y - 50, 10, 2)
    leg1 = pygame.Rect(x - 5, y - 30, 2, 10)
    leg2 = pygame.Rect(x + 3, y - 30, 2, 10)
    pygame.draw.ellipse(screen, WHITE, head)
    pygame.draw.rect(screen, WHITE, body)
    pygame.draw.rect(screen, WHITE, arm1)
    pygame.draw.rect(screen, WHITE, arm2)
    pygame.draw.rect(screen, WHITE, leg1)
    pygame.draw.rect(screen, WHITE, leg2)

def draw_bat(x, y, swing_timer):
    # バットの回転の中心点(左肩)
    origin_x = x - 10
    origin_y = y - 50

    # スイング角度(構えは 210° → スイング後 90° に向かって反時計回り)
    angle_deg = 210 - min(swing_timer, 10) * 12  # 210° → 90°
    angle_rad = math.radians(angle_deg)

    # バットの長さ
    bat_length = 60

    # バットの先端位置(回転)
    end_x = origin_x + bat_length * math.cos(angle_rad)
    end_y = origin_y + bat_length * math.sin(angle_rad)

    # バット描画(肩→先端)
    pygame.draw.line(screen, WHITE, (origin_x, origin_y), (end_x, end_y), 5)

def show_text(text, x, y):
    img = FONT.render(text, True, WHITE)
    screen.blit(img, (x, y))

while True:
    screen.fill(BLACK)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
            bat_swinging = True
            swing_timer = 0
            if ball_active and batter_x + 30 < ball_x < batter_x + 60 and ball_y < batter_y:
                hit = True
                ball_speed_x = 8
                ball_speed_y = -10

    if bat_swinging:
        swing_timer += 1
        if swing_timer > 10:
            bat_swinging = False
            swing_timer = 0

    draw_stickman(pitcher_x, pitcher_y, face_left=False)
    draw_stickman(batter_x, batter_y)
    draw_bat(batter_x, batter_y, swing_timer)

    pitch_timer -= 1
    if pitch_timer == 0 and not ball_active:
        ball_x = pitcher_x - 20
        ball_y = pitcher_y - 60
        ball_speed_x = -6
        ball_speed_y = 0
        ball_active = True
        hit = False
        distance = 0

    if ball_active:
        ball_x += ball_speed_x
        ball_y += ball_speed_y
        if hit:
            ball_speed_y += 0.5  # 重力
            distance += ball_speed_x
        pygame.draw.circle(screen, WHITE, (int(ball_x), int(ball_y)), 5)
        if ball_y > HEIGHT:
            ball_active = False
            pitch_timer = random.randint(60, 180)

    if hit:
        show_text(f"飛距離: {int(distance)}m", 50, 50)

    pygame.display.flip()
    clock.tick(60)

4.ChatGPTとの共同開発フロー

自分でもなぜかわからないですが、Pythonで作成してしまいました。
動揺しているんですかね。(笑)
完成動画を見ていただければわかるのですが、思うような野球ゲームは作成できませんでした。投手がボール投げて打者が打ち返すというシンプルなゲームにしたんですが、いかんせん打者が思うような軌道でバットを振ってくれません。いらすとやさんの画像も提供したのですが、どうにもなりませんでした…。

引用:いらすとや
引用:いらすとや

5.最終的に

完成したゲーム🎮です。ホームラン競争と銘打ってますが、メジャーリーガーもびっくり飛距離は決まって432mです🤪。スペースキー連打してないとボールに当たりません…


6.結論

いや〜ポンコツゲームですね👍。
人間もポンコツなら作るゲームもポンコツですね‼️
そんな自分から自分へ自分の好きな言葉をプレゼントします。

笑われていこうじゃねえか 高みを目指せば出す拳の見つからねえケンカもあるもんだ‼️

なんと記事にしてる方もいました‼️

次回を乞うご期待。

いいなと思ったら応援しよう!