2022-04-01から1ヶ月間の記事一覧

Python Pillow(PIL)で画像を読み込んでNumPyの配列に変換してRGBの要素ごとに編集する

下記の画像を使用しました。 Biljana JovanovicによるPixabayからの画像 from PIL import Image import numpy as np pil_img = Image.open('eggs-gbd58ab03b_640.png') print('モード', pil_img.mode) np_img = np.array(pil_img) #PILからnumpyへ変換 np_im…

Pythonのglobモジュールで複数の拡張子を指定してファイル一覧を取得する

カレントディレクトリの「画像」ディレクトリの中のファイルの中から 拡張子が「jpg」と「png」のファイルの一覧を取得する。 方法1 import glob types = ('jpg', 'png') files = [] for t in types: files += glob.glob('./画像/*.' + t) for file in files…

Pygame入門 ブロック崩しゲームを作る(途中) ボールと衝突したブロックを消す しかし、ボールはブロックに当たっても跳ね返らない

マウスの左クリックで開始します import pygame import sys SCREEN = pygame.Rect(0, 0, 400, 400) FPS = 30 WHITE = (255, 255, 255) RED = (255, 0, 0) GREEN = (0, 255, 0) BLUE = (0, 0, 255) BALL_SIZE = 20 PADDLE_WIDTH = 60 PADDLE_HEIGHT = 5 PADDL…

PythonのSympyを使って2点を結ぶ2本の線分の交点の座標をベクトルを使って計算する

import numpy import sympy #点p1と点p2を結ぶ線分と点p3と点p4を結ぶ線分の交点を求める def intersection(p1, p2, p3, p4): #各点をベクトルで表す a1 = numpy.array(p1) a2 = numpy.array(p2) a3 = numpy.array(p3) a4 = numpy.array(p4) #方程式で使う変…

forth入門

gforthのインストール Debian系のLinuxの場合 $ sudo apt install gforthgforthの起動 $ gforthgforthの終了 byeと入力するかCtrl+Dを押す1 + 2 を計算する 1 2 + .s1 + 2 * 3 を計算する 1 2 3 * + .s(1 + 2) * (3 + 4)を計算する 1 2 + 3 4 + * .sスタック…

Pygame入門 Sprite同士の衝突を検知して、そのSpriteを削除する

pygame.sprite.spritecollideでSprite同士の衝突を検知できる。 また、引数の指定によって、衝突したSpriteを削除できる。pygame.sprite.spritecollide(sprite, group, dokill) 2番めの引数のgroupに属するSpriteのうち、 1番目の引数のspriteと衝突している…

Pygame入門 ブロック崩しのパドルをスプライトで作る

スプライトの使い方 1.「pygame.sprite.Sprite」を継承してスプライトオブジェクトを作る 2.スプライトグループを作る 3.スプライトグループにスプライトオブジェクトを追加する 4.スプライトグループの更新を実行する グループに追加されているスプライトオ…

Pygame入門 ブロック崩しのパドルをマウスで動かす

import pygame import sys SCREEN = pygame.Rect(0, 0, 400, 400) FPS = 30 WHITE = (255, 255, 255) GREEN = (0, 255, 0) PADDLE_WIDTH = 60 PADDLE_HEIGHT = 20 PADDLE_POS_Y = SCREEN.bottom - PADDLE_HEIGHT * 2 pygame.init() clock = pygame.time.Cloc…

Pygame入門 画像をSpriteにして動かす

import pygame import sys SCREEN = pygame.Rect(0, 0, 400, 400) WHITE = (255, 255, 255) class Ball(pygame.sprite.Sprite): def __init__(self, image_file, pos, speed): pygame.sprite.Sprite.__init__(self) x, y = pos vx, vy = speed self.image = …

Pygame入門 画像を動かす

import pygame import sys SCREEN = pygame.Rect(0, 0, 400, 400) FPS = 30 WHITE = (255, 255, 255) def main(): pygame.init() clock = pygame.time.Clock() screen = pygame.display.set_mode(SCREEN.size) ball = pygame.image.load('ball.png') ball_wi…

Pygame入門 図形(四角)を動かす

import pygame import sys SCREEN_SIZE = (400, 400) WHITE = (255, 255, 255) RED = (255, 0, 0) FPS = 1 def main(): pygame.init() clock = pygame.time.Clock() screen = pygame.display.set_mode(SCREEN_SIZE) ball = pygame.Rect(100, 100, 10, 10) wh…

Pygame入門 マウスポインターの座標を取得する

マウスポインターの座標を取得して、画面に数値で表示する。 import pygame from pygame.locals import * import sys SCREEN_SIZE = (400, 400) def main(): pygame.init() screen = pygame.display.set_mode(SCREEN_SIZE) # 画面の大きさを設定する pygame.…

Pygame入門 図形(四角)を行列に並べて表示する

import pygame from pygame.locals import * # 定数QUITを使うため。importしない場合は、pygame.QUITとする。 import sys SCREEN_WIDTH = 400 SCREEN_HEIGHT = 300 SCREEN_SIZE = (SCREEN_WIDTH, SCREEN_HEIGHT) ROW = 3 # 表示する四角の行数 COLUMN = 5 #…

Pygame入門 図形(四角)を表示する

import pygame from pygame.locals import * # 定数QUITを使うため。importしない場合は、pygame.QUITとする。 import sys SCREEN_SIZE = (400, 300) def main(): pygame.init() screen = pygame.display.set_mode(SCREEN_SIZE) # 画面の大きさを設定する py…

Pygame入門 日本語文字列を表示する

IPAexゴシックフォントを使いました。プログラムを実行する前に、 IPAのサイトからフォントファイルをダウンロードして、 カレントディレクトリ(Pythonのスクリプトファイルが置かれているディレクトリ)に配置してください。 import pygame from pygame.loca…

Pygame入門 文字列を表示する

Pygameでは文字列を直接画面に表示することはできないそうです。 なので、下記のように3つの手順を実行します。 font = pygame.font.Font(None, 55) # フォントを設定する text = font.render('abc', True, (255, 255, 255)) # 表示する文字列を作る screen.…

Pygame入門 画面を表示する

import pygame # 定数QUITを使うため。importしない場合は、pygame.QUITとする。 from pygame.locals import * import sys def main(): pygame.init() screen = pygame.display.set_mode((400, 300)) # 画面の大きさを設定する pygame.display.set_caption('…