Skip to content

aplicativo Miti  #150747

@fariassuellen598-svg

Description

@fariassuellen598-svg

import json
import os
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.image import Image
from kivy.uix.progressbar import ProgressBar

class MitiVisualApp(App):
def build(self):
# 🔒 SOLUÇÃO DO CRASH: Define um caminho seguro que o Android permite gravar arquivos
self.nome_arquivo = os.path.join(self.user_data_dir, "progresso_miti.json")
self.carregar_dados()
self.meta_ienes = 500000

    layout = BoxLayout(orientation='vertical', padding=20, spacing=10)

    # 🖼️ ÁREA DO DESENHO
    # Lembre-se: para carregar, o 'avatar.png' precisa estar na mesma pasta do script!
    if os.path.exists('avatar.png'):
        self.desenho = Image(source='avatar.png', size_hint=(1, 0.4))
    else:
        self.desenho = Label(text="[ Aguardando sua arte em avatar.png ]", size_hint=(1, 0.4))
    
    layout.add_widget(self.desenho)

    # --- SEÇÃO DO PANDA (FINANÇAS) ---
    # .get() evita que o app feche caso a chave sum de surpresa
    moedas = self.dados.get("moedas_ienes", 0)
    
    self.lbl_fundo = Label(
        text=f"Total: {moedas:,} Ienes",
        bold=True, size_hint=(1, 0.1)
    )
    
    # Barra de Progresso
    self.barra = ProgressBar(
        max=self.meta_ienes,
        value=min(moedas, self.meta_ienes),
        size_hint=(1, 0.08)
    )
    
    # Botão
    self.btn_interacao = Button(
        text="Guardar Ienes",
        background_normal='',
        background_color=(0.1, 0.6, 0.3, 1),
        size_hint=(1, 0.15)
    )
    self.btn_interacao.bind(on_press=self.salvar_dados_teste)

    layout.add_widget(self.lbl_fundo)
    layout.add_widget(self.barra)
    layout.add_widget(self.btn_interacao)
    
    return layout

def carregar_dados(self):
    try:
        with open(self.nome_arquivo, "r") as arquivo:
            self.dados = json.load(arquivo)
            if "moedas_ienes" not in self.dados:
                self.dados["moedas_ienes"] = 0
    except:
        # Se o arquivo não existir ou der erro, cria um do zero na memória
        self.dados = {"moedas_ienes": 0}

def salvar_dados_teste(self, *args):
    self.dados["moedas_ienes"] += 1000
    try:
        with open(self.nome_arquivo, "w") as f:
            json.dump(self.dados, f)
    except Exception as e:
        print(f"Erro ao salvar: {e}")
        
    self.lbl_fundo.text = f"Total: {self.dados['moedas_ienes']:,} Ienes"
    self.barra.value = min(self.dados["moedas_ienes"], self.meta_ienes)

if name == 'main':
MitiVisualApp().run()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions