コピー&ペーストだけで簡単なPythonアプリを作成する方法【kivy】

プログラミング
スポンサーリンク

スポンサーリンク

はじめに

どーも、学生エンジニアのゆうき(@engineerblog_Yu)です。

今回はPythonを用いてコピー&ペーストだけで簡単なアプリケーションを作成する方法についての記事です。

プログラミングを始めたばかりでコードを書いてアプリを作成できない、、。

という方向けにコードをコピペするだけでアプリケーションを作れてしまうという方法を紹介しました。

Pythonとは人工知能、機械学習、ディープラーニング、データ解析などに特化しており、2020年プログラミング言語人気ランキング1位になっているプログラミング言語です。

Kivyとは?

今回アプリを作成するのに用いるオープンソースソフトウェアはKivyです。

Kivyは、PythonのNUI(Natural User Interface)でのマルチタッチアプリケーション開発のためのオープンソースライブラリである。動作環境はAndroidiOSLinux、MacOS X、Windowsである。MITライセンスで配布されているフリーのオープンソースソフトウェアである。

フリー百科辞典wikipediaより

Kivyのインストール

Kivyのインストールにはこちらのウェブサイトからお使いの環境に合わせてインストールしてください。

User’s GuideからInstallationに行ってインストールしましょう。

スポンサーリンク

Kivyの遊び方(ピンポンゲーム)

それではまずはピンポンゲームを作成してみましょう。

まずkivy上でTutorialからPong Game Tutorialに行ってみるとピンポンゲームを作成することができます。

その中でも一番下に記述されているmain.pyとpong.kvをPython実行環境にコピーアンドペーストしてください。

私の場合はPycharmというPython実行環境を用いました。

main.py

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import NumericProperty, ReferenceListProperty,\
    ObjectProperty
from kivy.vector import Vector
from kivy.clock import Clock
from random import randint


class PongBall(Widget):
    velocity_x = NumericProperty(0)
    velocity_y = NumericProperty(0)
    velocity = ReferenceListProperty(velocity_x, velocity_y)

    def move(self):
        self.pos = Vector(*self.velocity) + self.pos


class PongGame(Widget):
    ball = ObjectProperty(None)

    def serve_ball(self):
        self.ball.center = self.center
        self.ball.velocity = Vector(4, 0).rotate(randint(0, 360))

    def update(self, dt):
        self.ball.move()

        # bounce off top and bottom
        if (self.ball.y < 0) or (self.ball.top > self.height):
            self.ball.velocity_y *= -1

        # bounce off left and right
        if (self.ball.x < 0) or (self.ball.right > self.width):
            self.ball.velocity_x *= -1


class PongApp(App):
    def build(self):
        game = PongGame()
        game.serve_ball()
        Clock.schedule_interval(game.update, 1.0 / 60.0)
        return game


if __name__ == '__main__':
    PongApp().run()

pong.kv

#:kivy 1.0.9

<PongBall>:
    size: 50, 50 
    canvas:
        Ellipse:
            pos: self.pos
            size: self.size          

<PongGame>:
    ball: pong_ball
    
    canvas:
        Rectangle:
            pos: self.center_x-5, 0
            size: 10, self.height
    
    Label:
        font_size: 70  
        center_x: root.width / 4
        top: root.top - 50
        text: "0"
        
    Label:
        font_size: 70  
        center_x: root.width * 3 / 4
        top: root.top - 50
        text: "0"
    
    PongBall:
        id: pong_ball
        center: self.parent.center
        

この二つのファイルを同じディレクトリ上に作成して

python main.py

とターミナル上で実行すればピンポンゲームを作成することができます。

Kivyの遊び方(お絵かきゲーム)

次に同じようにお絵かきゲームも作成してみましょう。

ピンポンゲームと同じくTutorialからA Simple Paint App の方に行ってお絵かきゲームも作成していきましょう。

そこに記述されているコードをmain.pyにコピーアンドペーストしてあげます。

main.py

from random import random
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.graphics import Color, Ellipse, Line


class MyPaintWidget(Widget):

    def on_touch_down(self, touch):
        color = (random(), 1, 1)
        with self.canvas:
            Color(*color, mode='hsv')
            d = 30.
            Ellipse(pos=(touch.x - d / 2, touch.y - d / 2), size=(d, d))
            touch.ud['line'] = Line(points=(touch.x, touch.y))

    def on_touch_move(self, touch):
        touch.ud['line'].points += [touch.x, touch.y]


class MyPaintApp(App):

    def build(self):
        parent = Widget()
        self.painter = MyPaintWidget()
        clearbtn = Button(text='Clear')
        clearbtn.bind(on_release=self.clear_canvas)
        parent.add_widget(self.painter)
        parent.add_widget(clearbtn)
        return parent

    def clear_canvas(self, obj):
        self.painter.canvas.clear()


if __name__ == '__main__':
    MyPaintApp().run()

こちらのコードをコピーアンドペーストし、ファイルを作ってあげましょう。

そして先ほどと同様にターミナル上で

python main.py

を実行してあげればいいです。

するとこんな感じでキャンバス上に絵がかけるようなアプリを作成することができます、

スポンサーリンク

いかがだったでしょうか?

コピーとペーストだけですがプログラミングでこのようなゲームが作れるということを実感していただけたら嬉しいです。

ねこすけ
ねこすけ

おまけがついてるにゃ。

最後に

  • プログラミングに興味があるけど何からしていいのかわからない
  • Pythonを使ったバイトやインターンなどに参加してみたい
  • 未経験でPythonエンジニアになりたい

これらに当てはまる方におすすめの講座を紹介していこうと思います。

Pythonの勉強方法【おまけ】

具体的に言うとこちらの講座です。

上記の講座を全部理解することができればすぐにPythonエンジニアとして働くことも可能です。

また大学の授業やバイト、インターンであれば、その都度必要な部分だけを見てスキルアップしていくこともできます。

私が受けたPythonの講座の中では最も良かったですし、この講座を受けるだけでPythonの案件をこなせるレベルまでプログラミングを上達させることができると思います。

実際多くの人がWeb上で高評価をしていてUdemyのPython講座といえば酒井潤さんの上記の講座と言われているほどです。

プログラミングスキルを身につけて安定を得たい、エンジニアになりたい、プログラミングの副業をしてみたいと思っている方に特におすすめの講座です。

以下のリンクからUdemy講座を参照することができます。

自分の未来に投資しよう。サイバーセール中はUdemyコースが最大90%OFF。


その他の記事

おわりに

今回はPythonで簡単なアプリを作る方法について紹介しました。

今回紹介したのは自分で作るのではなくコピーアンドペーストだけで作れるものですがアプリを自作する前にアプリをどのように作成するのか知っておくことは大事だと思います。

まずは実際に動くアプリを作成してプログラミングを楽しんでみましょう。

こちらの記事も合わせてどうぞ。

AI美女生成に興味がある方

Stable Diffusionを使ってAI美女を生成する方法についてもnoteで解説しています。

美女生成note

コメント

タイトルとURLをコピーしました