[PYTHON] J'ai créé un jeu d'introduction au festival scolaire avec Ren'py

introduction

Je suis niya en charge du 5ème jour du calendrier de l'Avent de l'Université de Kinki 2019. Cette fois, j'ai fait un jeu avec Ren'py qui présente le festival Ikoma qui a lieu chaque année à l'université de Kinki, donc j'aimerais pouvoir partager la grammaire que j'ai apprise à cette époque.

Les livrables peuvent être trouvés à l'url suivante. https://drive.google.com/drive/u/2/folders/1CVx17S12MDS8VLIsH4Q2Iu4C5U93vYC_

De plus, github est ci-dessous. https://github.com/niya1123/Short-Novel/tree/dev

Les bases de la création de jeux Ren'py

Cette fois, le DL de Ren'py lui-même et comment créer un projet sont présentés dans ** Article précédent **, alors regardez-y. Pars s'il te plait.

Comment écrire des lignes

Pour écrire une ligne, suivez les étapes ci-dessous.

  1. Pensez à savoir s'il s'agit du dialogue, de la solitude ou de la narration d'un personnage.
  2. Le premier définit le caractère, le second n'a pas besoin d'être défini.
  3. Écrivez la définition dans script.py.

Plus précisément, c'est comme suit.

script.rpy


#La définition de caractère définit le nom du caractère= Character("Le nom du personnage", color="Définir la couleur en hexadécimal")
#Il est recommandé de définir le nom du caractère immédiatement après le définir essentiellement avec un caractère ou un nom abrégé du nom du caractère..
#couleur est la couleur du nom du caractère affiché dans la zone de texte.
define character = Character("personnage", color="#c8ffc8")

#Lorsque le jeu démarre, il démarre au début de l'étiquette.
label start:
    #Nom court du personnage"Dialogue"でDialogueの表示
    character "salut!"

    #Je dois définir le nom du personnage,Narration.
    "Il est raconté Bonjour"

    #Fin d'étiquette avec retour.
    return

Paramètres d'image de personnage

Définissez l'image du personnage comme suit.

script.rpy


#Abréviation
label start:
    
    show character default
    with fade
    
    character "salut!"

    return
    

Vous devez faire attention ici à la chaîne de caractères après le spectacle. Ici, l'image est affichée en spécifiant le nom de fichier de n'importe quelle image.

Et il existe une convention de dénomination recommandée pour les noms d'images, par exemple bg green.jpg (Bg Green.jpg est également acceptable) où "bg" est la balise et "green" est l'attribut. Les autres noms possibles sont les suivants.

script.rpy


#bg est la balise et green et house sont les attributs
show bg green house

De plus, si des images avec la même balise sont spécifiées en même temps, la dernière image spécifiée sera affichée.

Ensuite, il y a «avec fondu», qui est une transition.

Veuillez vous référer à ce qui suit pour plus de détails (car il y en a beaucoup).

https://ja.renpy.org/doc/html/quickstart.html#transitions

Utilisation de scripts python

Ren'py peut utiliser des scripts python (série python2). Bien que cela n'ait pas encore été officiellement annoncé, il est possible que la série 3 python puisse être utilisée à l'avenir. (Référence: https: // twitter .com / renpytom / status / 1196203607252709376? S = 20)

Ensuite, je vous expliquerai comment l'utiliser.

script.rpy



default flag = False

label start:

    menu:
        "Voulez-vous transmettre vos sentiments?"
        "Oui":
            $ flag = True
        "Non":
    jump flag
    return

label flag:
    if not flag:
        "Bad End"
    else:
        "Good End"

    return

Divers éléments nouveaux sont sortis, je vais les expliquer dans l'ordre.

Tout d'abord, il existe une instruction par défaut, qui sert à initialiser la variable que vous souhaitez utiliser avant l'étiquette de départ. Ce n'est pas nécessaire, mais dans ce cas, si vous utilisez une variable dans label, Flase sera automatiquement ajouté comme valeur initiale.

Ensuite, il y a le menu dans l'étiquette de départ.

script.rpy


Abréviation
    menu:
        "Choisis une option"
        "Oui":
            jump yes
        "Non":
            jump no

L'utilisation est comme ça, il n'est pas nécessaire d'avoir une partie narration. " Choice ": Je vais l'écrire. Ensuite, vous pouvez mettre en retrait et écrire le processus. Cette zone est la même que python Vous pouvez définir le saut sur `le nom de l'étiquette de saut que vous voulez ignorer ', et le processus passera à l'étiquette que vous souhaitez sauter, et lorsque cette étiquette se terminera par un retour, le processus reviendra.

Ensuite, $ flag = True, mais vous pouvez écrire du code python avec une seule ligne après $. Si vous souhaitez écrire du code sur plusieurs lignes, vous pouvez écrire:

script.rpy


python:
    life = 100
    damage = 50
    my_life = life - damage

Ensuite est l'instruction if. L'instruction if peut être utilisée telle quelle sans utiliser $ ou python.

Si vous gardez à l'esprit les bases ci-dessus, vous pouvez également créer de nouveaux jeux en utilisant Ren'py !!!!

Application de création de jeux Ren'py

A partir de là, c'est une petite application.

Tout d'abord, changeons l'écran de démarrage par défaut de Ren'py.

L'écran par défaut ressemble à ceci. スクリーンショット 2019-12-05 15.49.42.png

Définissons le test bleu en bas à droite sur Ren'py et la couleur sur orange (# f59e11).![Screenshot 2019-12-05 20.49.55.png](https: // qiita-image) -store.s3.ap-northeast-1.amazonaws.com/0/274354/ee736739-8a81-6410-56f6-9db2ed2cf0e8.png)

Les points à changer sont les suivants.

options.rpy(Autour de la 16e ligne)


define config.name = _("test")
#Changer ceci en
define config.name = _("Ren'py")

gui.rpy(Autour de la ligne 28)


define gui.accent_color = '#0099cc'
#Changer ceci en
define gui.accent_color = '#f59e11'

Puis changez l'image du menu.

gui.rpy(Autour de la ligne 96)


define gui.main_menu_background = "gui/main_menu.png "
#Changer ceci en
define gui.main_menu_background = "gui/main_susuki.png "

Si vous le modifiez, ce sera comme ça (cette fois, la taille de l'image ne correspond pas, mais faisons correspondre l'image à la taille du jeu en production)

スクリーンショット 2019-12-05 20.58.10.png

finalement

Pour être honnête, j'ai beaucoup cassé, mais fondamentalement, si vous comprenez jusqu'ici, je pense que vous pouvez faire autant de livrables que vous en avez fait. Essayez de faire quelque chose avec Ren'py!

Site de référence

https://ja.renpy.org/doc/html/index.html

Recommended Posts

J'ai créé un jeu d'introduction au festival scolaire avec Ren'py
〇✕ J'ai fait un jeu
J'ai fait un Line-bot avec Python!
J'ai créé un jeu appelé Battle Ship en utilisant pygame et tkinter
Débutant: j'ai créé un lanceur à l'aide d'un dictionnaire
J'ai fait un jeu de vie avec Numpy
J'ai fait un jeu rogue-like avec Python
J'ai créé un jeu ○ ✕ avec TensorFlow
J'ai fait un jeu de cueillette avec Python
J'ai effectué un processus de connexion / déconnexion en utilisant Python's Bottle.
J'ai fait un jeu d'éclairage de sapin de Noël avec Python
J'ai fait un jeu mono tombé avec Sense HAT
[J'ai essayé d'utiliser Pythonista 3] Introduction
J'ai fait un texte Python
J'ai fait un robot discord
J'ai fait un jeu de frappe simple avec tkinter de Python
J'ai créé un lecteur de flux rapide en utilisant feedparser en Python
J'ai créé une application de livre simple avec python + Flask ~ Introduction ~
J'ai fait un jeu de combat Numer0n en Java (j'ai aussi fait de l'IA)
J'ai fait un modèle VGG16 en utilisant TensorFlow (en chemin)
J'ai fait un jeu de puzzle (comme) avec Tkinter of Python
J'ai créé une application d'estimation de l'entraînement musculaire à l'aide du SDK Qore
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python
J'ai créé un site d'apprentissage C ++
J'ai créé un script de traduction basé sur CUI (2)
J'ai fait un wikipedia gacha bot
J'ai fait une loterie avec Python.
J'ai créé un script de traduction basé sur CUI
Zura fait comme un jeu de la vie
J'ai créé un classificateur de visage Dir en gray en utilisant l'extraction de visage TensorFlow-④
J'ai créé un démon avec Python
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python (2) ~ Server ~
[Kaggle] J'ai fait une collection de problèmes en utilisant le didacticiel Titanic
J'ai créé un classificateur de visage Dir en gray en utilisant TensorFlow - Test de classification de visage
J'ai créé un classificateur de visage Dir en gray en utilisant TensorFlow --⑥ Programme d'apprentissage
J'ai essayé de faire un classificateur de visage Dir en gris en utilisant TensorFlow --⑬ Jouer (final)
J'ai créé un classificateur de visage Dir en gray en utilisant TensorFlow --⑧ Exécution d'apprentissage
J'ai créé un classificateur de visage Dir en gray en utilisant TensorFlow --⑫ Version Web
J'ai créé un classificateur de visage Dir en gray en utilisant TensorFlow --⑦ Modèle d'apprentissage
Création d'un modèle de discrimination d'image (cifar10) à l'aide d'un réseau neuronal convolutif
J'ai créé un nouveau compartiment AWS S3
J'ai créé un docset de tableau de bord pour Holoviews
J'ai fait un programme de gestion de la paie en Python!
J'ai touché "Orator" alors j'ai fait une note
J'ai fait un compteur de caractères avec Python
J'ai essayé de dessiner une ligne en utilisant une tortue
J'ai fait un interlocuteur comme Siri
J'ai fait un script pour afficher des pictogrammes
J'ai fait une carte hexadécimale avec Python
J'ai fait un générateur Hanko avec GAN
J'ai créé un outil d'estampage automatique du navigateur.
Après avoir étudié Python3, j'ai créé un Slackbot
J'ai essayé d'utiliser pipenv, alors prenez note
J'ai fait un simple blackjack avec Python
J'ai créé un fichier de configuration avec Python
J'ai fait une bibliothèque pour l'assurance actuarielle
J'ai fait une application WEB avec Django
J'ai fait un simulateur de neurones avec Python
J'ai créé un LINE BOT qui renvoie une image de riz terroriste en utilisant l'API Flickr
J'ai créé un classificateur de visage Dir en gray en utilisant TensorFlow - Préparation de la version Web