游戏说明:输入姓名,选择性别,选择种族,职业,点击确定按钮,会生成各属性值,如果不满意,点击返回,重新选择。

首先准备一个保存下拉框选项数据的文件 rpgdict.py

dictrace = {1:'人族', 2:'龙族', 3:'灵族', 4:'天族'}dictprofession = {1:{11:'枪手', 12:'咒术师', 13:'剑士', 14:'刺客', 15:'拳师'}, 2:{21:'气宗', 22:'力士', 23:'拳师'}, 3:{31:'召唤师', 32:'气宗'}, 4:{41:'枪手', 42:'气宗'}}

然后是界面,输入信息界面设计:

from PyQt5 import QtCore, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(317, 476)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit.setGeometry(QtCore.QRect(100, 30, 113, 21))self.lineEdit.setObjectName("lineEdit")self.radioButton = QtWidgets.QRadioButton(self.centralwidget)self.radioButton.setGeometry(QtCore.QRect(100, 90, 115, 19))self.radioButton.setObjectName("radioButton")self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)self.radioButton_2.setGeometry(QtCore.QRect(100, 120, 115, 19))self.radioButton_2.setObjectName("radioButton_2")self.comboBox = QtWidgets.QComboBox(self.centralwidget)self.comboBox.setGeometry(QtCore.QRect(100, 210, 111, 21))self.comboBox.setObjectName("comboBox")self.comboBox_2 = QtWidgets.QComboBox(self.centralwidget)self.comboBox_2.setGeometry(QtCore.QRect(100, 290, 111, 21))self.comboBox_2.setObjectName("comboBox_2")self.label = QtWidgets.QLabel(self.centralwidget)self.label.setGeometry(QtCore.QRect(11, 30, 81, 20))self.label.setObjectName("label")self.label_2 = QtWidgets.QLabel(self.centralwidget)self.label_2.setGeometry(QtCore.QRect(10, 90, 81, 16))self.label_2.setObjectName("label_2")self.label_3 = QtWidgets.QLabel(self.centralwidget)self.label_3.setGeometry(QtCore.QRect(10, 210, 81, 21))self.label_3.setObjectName("label_3")self.label_4 = QtWidgets.QLabel(self.centralwidget)self.label_4.setGeometry(QtCore.QRect(11, 290, 81, 20))self.label_4.setObjectName("label_4")self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(100, 350, 111, 31))self.pushButton.setObjectName("pushButton")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 317, 26))self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "RPG游戏"))self.radioButton.setText(_translate("MainWindow", "男"))self.radioButton_2.setText(_translate("MainWindow", "女"))self.label.setText(_translate("MainWindow", "请输入姓名"))self.label_2.setText(_translate("MainWindow", "请选择性别"))self.label_3.setText(_translate("MainWindow", "请选择种族"))self.label_4.setText(_translate("MainWindow", "请选择职业"))self.pushButton.setText(_translate("MainWindow", "确定"))

显示界面的设计:

from PyQt5 import QtCore, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(324, 590)self.label = QtWidgets.QLabel(Form)self.label.setGeometry(QtCore.QRect(60, 30, 31, 16))self.label.setObjectName("label")self.label_2 = QtWidgets.QLabel(Form)self.label_2.setGeometry(QtCore.QRect(120, 30, 72, 15))self.label_2.setObjectName("label_2")self.label_3 = QtWidgets.QLabel(Form)self.label_3.setGeometry(QtCore.QRect(60, 70, 31, 16))self.label_3.setObjectName("label_3")self.label_4 = QtWidgets.QLabel(Form)self.label_4.setGeometry(QtCore.QRect(120, 70, 72, 15))self.label_4.setObjectName("label_4")self.label_5 = QtWidgets.QLabel(Form)self.label_5.setGeometry(QtCore.QRect(60, 110, 31, 16))self.label_5.setObjectName("label_5")self.label_6 = QtWidgets.QLabel(Form)self.label_6.setGeometry(QtCore.QRect(120, 110, 72, 15))self.label_6.setObjectName("label_6")self.label_7 = QtWidgets.QLabel(Form)self.label_7.setGeometry(QtCore.QRect(60, 150, 31, 16))self.label_7.setObjectName("label_7")self.label_8 = QtWidgets.QLabel(Form)self.label_8.setGeometry(QtCore.QRect(120, 150, 72, 15))self.label_8.setObjectName("label_8")self.label_9 = QtWidgets.QLabel(Form)self.label_9.setGeometry(QtCore.QRect(20, 190, 61, 16))self.label_9.setObjectName("label_9")self.label_10 = QtWidgets.QLabel(Form)self.label_10.setGeometry(QtCore.QRect(60, 220, 31, 16))self.label_10.setObjectName("label_10")self.label_11 = QtWidgets.QLabel(Form)self.label_11.setGeometry(QtCore.QRect(140, 220, 72, 15))self.label_11.setObjectName("label_11")self.label_12 = QtWidgets.QLabel(Form)self.label_12.setGeometry(QtCore.QRect(60, 260, 31, 16))self.label_12.setObjectName("label_12")self.label_13 = QtWidgets.QLabel(Form)self.label_13.setGeometry(QtCore.QRect(140, 260, 72, 15))self.label_13.setObjectName("label_13")self.label_14 = QtWidgets.QLabel(Form)self.label_14.setGeometry(QtCore.QRect(60, 300, 31, 16))self.label_14.setObjectName("label_14")self.label_15 = QtWidgets.QLabel(Form)self.label_15.setGeometry(QtCore.QRect(140, 300, 72, 15))self.label_15.setObjectName("label_15")self.label_16 = QtWidgets.QLabel(Form)self.label_16.setGeometry(QtCore.QRect(60, 340, 31, 16))self.label_16.setObjectName("label_16")self.label_17 = QtWidgets.QLabel(Form)self.label_17.setGeometry(QtCore.QRect(140, 340, 72, 15))self.label_17.setObjectName("label_17")self.label_18 = QtWidgets.QLabel(Form)self.label_18.setGeometry(QtCore.QRect(60, 380, 61, 16))self.label_18.setObjectName("label_18")self.label_19 = QtWidgets.QLabel(Form)self.label_19.setGeometry(QtCore.QRect(140, 380, 72, 15))self.label_19.setObjectName("label_19")self.label_20 = QtWidgets.QLabel(Form)self.label_20.setGeometry(QtCore.QRect(60, 420, 61, 16))self.label_20.setObjectName("label_20")self.label_21 = QtWidgets.QLabel(Form)self.label_21.setGeometry(QtCore.QRect(140, 420, 72, 15))self.label_21.setObjectName("label_21")self.label_22 = QtWidgets.QLabel(Form)self.label_22.setGeometry(QtCore.QRect(60, 460, 31, 16))self.label_22.setObjectName("label_22")self.label_23 = QtWidgets.QLabel(Form)self.label_23.setGeometry(QtCore.QRect(140, 460, 72, 15))self.label_23.setObjectName("label_23")self.label_24 = QtWidgets.QLabel(Form)self.label_24.setGeometry(QtCore.QRect(60, 500, 31, 16))self.label_24.setObjectName("label_24")self.label_25 = QtWidgets.QLabel(Form)self.label_25.setGeometry(QtCore.QRect(140, 500, 72, 15))self.label_25.setObjectName("label_25")self.pushButton = QtWidgets.QPushButton(Form)self.pushButton.setGeometry(QtCore.QRect(100, 540, 91, 31))self.pushButton.setObjectName("pushButton")self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "RPG游戏"))self.label.setText(_translate("Form", "姓名"))self.label_2.setText(_translate("Form", "TextLabel"))self.label_3.setText(_translate("Form", "性别"))self.label_4.setText(_translate("Form", "TextLabel"))self.label_5.setText(_translate("Form", "种族"))self.label_6.setText(_translate("Form", "TextLabel"))self.label_7.setText(_translate("Form", "职业"))self.label_8.setText(_translate("Form", "TextLabel"))self.label_9.setText(_translate("Form", "属性值:"))self.label_10.setText(_translate("Form", "力量"))self.label_11.setText(_translate("Form", "TextLabel"))self.label_12.setText(_translate("Form", "智力"))self.label_13.setText(_translate("Form", "TextLabel"))self.label_14.setText(_translate("Form", "精神"))self.label_15.setText(_translate("Form", "TextLabel"))self.label_16.setText(_translate("Form", "防御"))self.label_17.setText(_translate("Form", "TextLabel"))self.label_18.setText(_translate("Form", "物理攻击"))self.label_19.setText(_translate("Form", "TextLabel"))self.label_20.setText(_translate("Form", "魔法攻击"))self.label_21.setText(_translate("Form", "TextLabel"))self.label_22.setText(_translate("Form", "暴击"))self.label_23.setText(_translate("Form", "TextLabel"))self.label_24.setText(_translate("Form", "速度"))self.label_25.setText(_translate("Form", "TextLabel"))self.pushButton.setText(_translate("Form", "返回"))

最后是实现各功能:

from rpgmain import *
from rpgmessage import *
import rpgdict
import sys
from PyQt5.QtWidgets import *class Parent_Window(QMainWindow):def __init__(self):QMainWindow.__init__(self)self.main_ui = Ui_MainWindow()self.main_ui.setupUi(self)self.dictrace = rpgdict.dictraceself.dictprofession = rpgdict.dictprofessionself.radioButton = self.main_ui.radioButtonself.radiioButton_2 = self.main_ui.radioButton_2self.lineEdit = self.main_ui.lineEditself.comboBox = self.main_ui.comboBoxself.comboBox_2 = self.main_ui.comboBox_2# 清空下拉框项目self.comboBox.clear()self.comboBox.addItem('请选择')# 初始化种族for k,v in self.dictrace.items():self.comboBox.addItem(v, k)def comboBox_race(self, index):# 取种族的键值key = self.comboBox.itemData(index)self.comboBox_2.clear()if key:self.comboBox_2.addItem('请选择')# 初始化职业for k, v in self.dictprofession[key].items():self.comboBox_2.addItem(v, k)# 获取姓名性别def get_name_sex(self):self.name = self.lineEdit.text()if self.radioButton.isChecked() == True:self.mainwindow_sex = '男'else:self.mainwindow_sex = '女'def ability_value(self):if self.race_name == '人族':if self.profession_name == '枪手':self.strength = 85self.intelligence = 75self.spirit = 65self.defense = 55self.physical_attack = 90self.magic_attack = 20self.critical_strike = 90self.speed = 95elif self.profession_name == '咒术师':self.strength = 20self.intelligence = 80self.spirit = 95self.defense = 50self.physical_attack = 50self.magic_attack = 70self.critical_strike = 60self.speed = 50elif self.profession_name == '剑士':self.strength = 90self.intelligence = 30self.spirit = 30self.defense = 95self.physical_attack = 90self.magic_attack = 10self.critical_strike = 90self.speed = 70elif self.profession_name == '刺客':self.strength = 85self.intelligence = 70self.spirit = 70self.defense = 50self.physical_attack = 90self.magic_attack = 20self.critical_strike = 95self.speed = 100elif self.profession_name == '拳师':self.strength = 85self.intelligence = 40self.spirit = 30self.defense = 80self.physical_attack = 85self.magic_attack = 20self.critical_strike = 85self.speed = 75elif self.race_name == '龙族':if self.profession_name == '气宗':self.strength = 80self.intelligence = 80self.spirit = 60self.defense = 50self.physical_attack = 60self.magic_attack = 80self.critical_strike = 85self.speed = 70elif self.profession_name == '力士':self.strength = 95self.intelligence = 20self.spirit = 20self.defense = 90self.physical_attack = 100self.magic_attack = 10self.critical_strike = 90self.speed = 50elif self.profession_name == '拳师':self.strength = 90self.intelligence = 30self.spirit = 30self.defense = 80self.physical_attack = 90self.magic_attack = 20self.critical_strike = 85self.speed = 55elif self.profession_name == '剑士':self.strength = 95self.intelligence = 20self.spirit = 30self.defense = 95self.physical_attack = 95self.magic_attack = 10self.critical_strike = 90self.speed = 50elif self.race_name == '灵族':if self.profession_name == '召唤师':self.strength = 10self.intelligence = 85self.spirit = 95self.defense = 30self.physical_attack = 20self.magic_attack = 50self.critical_strike = 40self.speed = 50elif self.profession_name == '气宗':self.strength = 70self.intelligence = 85self.spirit = 80self.defense = 40self.physical_attack = 50self.magic_attack = 90self.critical_strike = 80self.speed = 85elif self.race_name == '天族':if self.profession_name == '枪手':self.strength = 85self.intelligence = 80self.spirit = 65self.defense = 60self.physical_attack = 90self.magic_attack = 20self.critical_strike = 85self.speed = 90elif self.profession_name == '气宗':self.strength = 75self.intelligence = 85self.spirit = 65self.defense = 50self.physical_attack = 55self.magic_attack = 85self.critical_strike = 80self.speed = 80elif self.profession_name == '剑士':self.strength = 85self.intelligence = 75self.spirit = 65self.defense = 55self.physical_attack = 90self.magic_attack = 20self.critical_strike = 90self.speed = 95def result(self):# 取当前索引race_index = self.comboBox.currentIndex()profession_index = self.comboBox_2.currentIndex()# 取当前种族职业名称self.race_name = self.comboBox.itemText(race_index)self.profession_name = self.comboBox_2.itemText(profession_index)# 显示结果窗口child.show()class Child_Window(QWidget):def __init__(self):QWidget.__init__(self)self.child_ui = Ui_Form()self.child_ui.setupUi(self)def showresult(self):window.hide()# 调用Parent_Window类的方法window.get_name_sex()window.result()window.ability_value()# 显示姓名self.labei_2 = self.child_ui.label_2self.labei_2.setText(str(window.name))# 显示性别self.label_4 = self.child_ui.label_4self.label_4.setText(str(window.mainwindow_sex))# 显示种族职业self.label_6 = self.child_ui.label_6self.label_8 = self.child_ui.label_8self.label_6.setText(str(window.race_name))self.label_8.setText(str(window.profession_name))# 显示属性值self.child_ui.label_11.setText(str(window.strength))self.child_ui.label_13.setText(str(window.intelligence))self.child_ui.label_15.setText(str(window.spirit))self.child_ui.label_17.setText(str(window.defense))self.child_ui.label_19.setText(str(window.physical_attack))self.child_ui.label_21.setText(str(window.magic_attack))self.child_ui.label_23.setText(str(window.critical_strike))self.child_ui.label_25.setText(str(window.speed))# 重新输入信息def reset(self):window.show()child.hide()if __name__=='__main__':app = QApplication(sys.argv)window = Parent_Window()child = Child_Window()window.show()# 给下拉框绑定方法window.comboBox.activated.connect(window.comboBox_race)# 给按钮绑定方法btn_1 = window.main_ui.pushButtonbtn_1.clicked.connect(child.showresult)btn_2 = child.child_ui.pushButtonbtn_2.clicked.connect(child.reset)sys.exit(app.exec_())

这个实现功能主要就是界面的切换和关联下拉框。

生成的界面:


有问题欢迎评论

版权声明:本文为博主原创文章,转载请注明出处。https://blog.csdn.net/dcjmessi/article/details/82972221

python+pyqt5实现RPG游戏角色生成器相关推荐

  1. RPG游戏角色生成器

    一,题目分析: 1. 题目:编写一个简化的创建游戏角色的程序: 2. 分析:要编写此程序,建立一个角色类,围绕角色类进行选择和保存等操作.单一职责原则将不同的职责分离到单独的类,每一个职责都是一个变化 ...

  2. Java创建RPG游戏角色

    ◆题目名称 创建RPG游戏角色 ◆题目分析 该程序需要用到有关类与对象的知识点,所以不能使用C语言来编写代码,这里我选择Java语言.本题目要求的游戏角色应有以下属性:名字.性别.种族.职业.力量.敏 ...

  3. Python+PyQt5实现五子棋游戏(人机博弈+深搜+α-β剪枝)

    Python+PyQt5实现五子棋游戏(人机博弈+深搜+α-β剪枝) 一.问题描述 1.五子棋 五子棋是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏. 五子棋的棋具与围棋通用,是一种传 ...

  4. RPG游戏角色的建立

    RPG游戏角色的建立 1. 题目分析: 题目要求:本次题目是做一个RPG游戏角色的建立.游戏角色包含以下属性:姓名,性别,种族,职业,以及角色的力量.敏捷.体力.智力.智慧.生命值和魔法值.要求首先用 ...

  5. C++ RPG游戏角色的创建

    题目 几乎所有的RPG游戏(一种源自<龙与地下城>的游戏类型)在进入游戏时都会让用户自己来创建自己喜欢的角色.本次上机要求编写一个简化的创建游戏角色的程序. 1.游戏角色应有的属性 本题目 ...

  6. python怎么写rpg游戏_python实现的简单RPG游戏流程实例

    本文实例讲述了python实现的简单RPG游戏流程.分享给大家供大家参考.具体如下: #RPG rpg = True whp = 100 mahp = 100 hhp = 100 MHP = 10 d ...

  7. python能制作游戏吗_什么用Python让制作的游戏角色移动起来?

    Python是完全面向对象的语言.函数.模块.数字.字符串都是对象.并且完全支持继承.重载.派生.多继承,有益于增强源代码的复用性. 在本系列的第四部分,学习如何编写移动游戏角色的控制代码. 在这个系 ...

  8. 【python】设计一个游戏角色类 属性:角色名、血量、魔法、状态 方法:释放技能 被伤害 要求:设计要合理

    # 设计一个游戏角色类 # a. 属性:角色名.血量.魔法.状态 # b. 方法:释放技能 被伤害 # c. 要求:设计要合理 import time class Civillian:name=''b ...

  9. 使用python写一个可以控制GTA5游戏角色移动

    在 Python 中控制 GTA5 游戏角色的移动,需要通过实现一个控制程序,并且这个程序需要与游戏的某个 API 进行交互,才能实现对角色的控制. 具体的实现方法可能会因游戏版本或游戏平台不同而有所 ...

最新文章

  1. ASP.NET MVC 二维码生成(ThoughtWorks.QRCode)
  2. Windows Phone开发(41):漫谈关键帧动画之下篇
  3. linux内核网络接收数据流程图【转】
  4. 如何生成HDF5文件
  5. 谈判如何在博弈中获得更多_读后感--《谈判--如何在博弈中获得更多》
  6. MySQL加索引语句不加锁:ALGORITHM=INPLACE, LOCK=NONE
  7. xilinx IP核技术资料
  8. 在windows 服务中 调打印_Windows打印后台处理程序漏洞(CVE20201048)
  9. 饥荒机器人怎么用避雷针充电_饥荒避雷针有什么用
  10. a3图纸标题栏尺寸标准_求标准CAD图纸(A0、A1、A2、A3、A4)图框(外框、内框)、标题栏及明细栏大小样式字体是多大?...
  11. 哔哩哔哩PC客户端可以缓存视频了!
  12. 125K非接触IC卡读卡头
  13. 中国银行实习笔试面试经验
  14. Micrometer中文文档
  15. python爬虫——校花网
  16. Halcon模版匹配
  17. 假期之不务正业—— Qt+FFmpeg+百度api进行视频的语音识别
  18. 中国移动诺基亚联手推出智能机
  19. 传统文化,互联网时代的创业“传家之宝”
  20. 如何强化淘宝店铺标签 店铺标签优化方法

热门文章

  1. Latex如何首行不空格/不缩进
  2. 几种常用的程序命名方法(规则)
  3. 已解决java.lang.RuntimeException: java.lang.RuntimeException: org.codehaus.plexus.component.repository.
  4. MATLAB库函数upfirdn(分数倍采样率变换)的C语言实现【姊妹篇2纯C语言实现】
  5. 2023 个人引导页开源单页html源码
  6. 如何防止商业合伙人和技术合伙人之间的冲突和矛盾-商业合伙人和技术合伙人不应该成为公司的瓶颈
  7. 成功就是需要这些:意念、信念、坚持、积累、失败
  8. 聊聊React Native屏幕适配那些事儿
  9. 第一代计算机外星人,2.5亿年前石头里竟然有电脑芯片,是外星人还是史前文明?...
  10. Java的ygc fgc_java基础—常用的GC策略,什么时候会触发YGC,什么时候触发FGC?