Vai al contenuto

Aid20: software per il DM (sviluppo)


DTL

Messaggio consigliato

Giusto un piccolo quesito: ma perchè non si possono ridimensionare gli oggetti di arredamento? STATUE, BRACER, SCALE ... Insomma non è detto che siano sempre 5x5 anzi...

Quindi un netto improvement potrebbe essere aggiunger ele icone "ingrandite"... o renderle ingrandibili...

si potrebbe, ma e` un bel casino, non dal mio punto di vista, ma da quello dell'interfaccia. se mi trovi come fare un'interfaccia decente lo faccio volentieri

Secondo quesito...

Che formato hanno i componenti del map-maker (muri, pavimenti ecc)?

e con che cosa si possono produrre tali formati?

qualsiasi formato apribile dalle qt, cioe` gif, png, jpg, svg...
Link al commento
Condividi su altri siti


si potrebbe, ma e` un bel casino, non dal mio punto di vista, ma da quello dell'interfaccia. se mi trovi come fare un'interfaccia decente lo faccio volentieri

Ci vorrebbe un comando apposito... che una volta importato l'oggetto da ingrandire ti chieda quanto ingrandirlo con una casellina simile a quella che si apre quando crei una nuova mappa...

O qualcosa di simile... :think:

qualsiasi formato apribile dalle qt, cioe` gif, png, jpg, svg...

E quanto devono essere grandi in Pixel le iconcine? perchè mi sta venendo un'idea malsana... dicavarle dalle foto digitali di rocce & minerali..... :banghead::banghead:

Link al commento
Condividi su altri siti

Ci vorrebbe un comando apposito... che una volta importato l'oggetto da ingrandire ti chieda quanto ingrandirlo con una casellina simile a quella che si apre quando crei una nuova mappa...

O qualcosa di simile... :think:

e se una volta messo lo vuoi cambiare?

E quanto devono essere grandi in Pixel le iconcine? perchè mi sta venendo un'idea malsana... dicavarle dalle foto digitali di rocce & minerali..... :banghead::banghead:
non ricordo, mi pare 96x96, ma mi pare anche che siano riscalate automaticamente. prova con un po' di immagini, basta che tu le aggiunga nella dir in cui ci sono le altre.
Link al commento
Condividi su altri siti

Ci vorrebbe un comando apposito... che una volta importato l'oggetto da ingrandire ti chieda quanto ingrandirlo con una casellina simile a quella che si apre quando crei una nuova mappa...

O qualcosa di simile... :think:

Si potrebbe aggiungere nella barra in alto una casella che si attivi quando è selezionato un oggetto, e che mostri la dimensione misurata in numero caselline. La riscalatura dovrebbe essere a ratio fisso, per non sformare le texture.

Può funzionare, Dusdan?

E quanto devono essere grandi in Pixel le iconcine? perchè mi sta venendo un'idea malsana... dicavarle dalle foto digitali di rocce & minerali..... :banghead::banghead:

Che tu potessi avere idee malsane, non avevamo il minimo dubbio.

Il problema è che se devi fare qualcosa di modulare (come i pavimenti), prenderle da una foto crea grossi problemi sui bordi.

Link al commento
Condividi su altri siti

e se una volta messo lo vuoi cambiare?

Lo cancelli e lo riscali... oppure una cosa come propone Shar...

Si potrebbe aggiungere nella barra in alto una casella che si attivi quando è selezionato un oggetto, e che mostri la dimensione misurata in numero caselline. La riscalatura dovrebbe essere a ratio fisso, per non sformare le texture.

Può funzionare, Dusdan?

Ecco qualcosa del genre intendevo... ;-)

non ricordo, mi pare 96x96, ma mi pare anche che siano riscalate automaticamente. prova con un po' di immagini, basta che tu le aggiunga nella dir in cui ci sono le altre.

Che tu potessi avere idee malsane, non avevamo il minimo dubbio.

Il problema è che se devi fare qualcosa di modulare (come i pavimenti), prenderle da una foto crea grossi problemi sui bordi.

Allora farò un po' di prove e poi vedremo i risultati.. perchè non riesco a spiegarmi a parole.. diciamo che l'idea della foto è la "base" su cui lavorare... ;-)

Link al commento
Condividi su altri siti

Allora farò un po' di prove e poi vedremo i risultati.. perchè non riesco a spiegarmi a parole.. diciamo che l'idea della foto è la "base" su cui lavorare... ;-)

Non è niente di troppo difficile, guarda questi tutorial per farti un'idea

Questo usa The Gimp:

http://www.highpoly3d.com/writer/tutorials/tileable/seamless.htm

Questo Photoshop:

http://www.gfxartist.com/features/tutorials/740

  • Mi piace 1
Link al commento
Condividi su altri siti

Allora allora...

Ieri ho provato ad importare dei jpg (96x96 pixel - Dysdan ci hai preso ;-) ) ed ha funzionato... per i pavimenti alemno ha funzionato...

Il fatto che abbia funzionato ha scatenato la mia follia e mi ha dato un serie di nuove idee... farò un po' di prove e poi vi farò sapere... ma se funziona ci vuole poco per aggiungere altri modelli di pavimento e muro.... il problema al limite è per gli oggetti...

:bye:

Link al commento
Condividi su altri siti

Nuovo giorno....

Nuove sperimentazioni....

Nuova proposta/domanda:

Non sarebbe possibile inserire il salvataggio in un altro formato (tipo PNG) nel map maker?

Puoi sempre stamparlo in pdf.

Oppure puoi catturare la schermata.

Non credo che ci siano problemi, comunque, a mettere anche il png. Potrebbe essere un po' pesante come dimensioni, alla fine, perchè devi salvare più volte le stesse informazioni (pavimenti, muri, oggetti).

Ma dai formati "alternativi" non si torna indietro.

Link al commento
Condividi su altri siti

Il problema dell'avere un formato in più in cui salvare è presto detto... facciamo finat che creao un dungeon lo voglio importare come immagina in qualche altro programma... col PDF non sempr eposso farlo... ed in uguale maniera non sempre posso fare il photoshot dello schermo (col Mac a TS non posso ad esempio)... diciamo che fornire tale possibilità potrebbe essere un "di più" utile... :bye:

Link al commento
Condividi su altri siti

non sempre posso fare il photoshot dello schermo (col Mac a TS non posso ad esempio)... diciamo che fornire tale possibilità potrebbe essere un "di più" utile... :bye:

1. premendo i tasti SHIFT MELA 3: viene catturato l’intero schermo e salvato in un file. Nel caso di più monitor, viene generato un file per ogni singolo monitor.

2. premendo i tasti SHIFT MELA 4: viene catturata solo un’area rettangolare disegnata con il mouse. Premendo spazio, il cursore del mouse assume l’icona di una telecamera. In tal caso, è possibile catturare distintamente icone, menu e vari elementi. Gli elementi catturabili singolarmente si evidenziano al passaggio del cursore del mouse.

Google->Mac screenshot

:lol:

Link al commento
Condividi su altri siti

Allora mi sono spiegato male.. shift-mela-3 lo conoscevo... ma non funge... o se funge non so dove diavolo va a mettere i files... ;-)

L'altro però non lo conoscevo... :banghead:

E ciò non modifica quanto ho detto prima... :cool:

diciamo che fornire tale possibilità potrebbe essere un "di più" utile...

:bye:

Link al commento
Condividi su altri siti

  • 3 mesi dopo...

Ho provato a usare Aid20 ma non si avvia. Ho installato Phyton 2.5.1 e qt 4.2 ma non parte. E non ho ancora capito dove devo mettere Pyqt4.

Prova a togliere tutto quello che hai installato, e a seguire queste istruzioni:

http://dragonslair.it/forum/showthread.php?t=12352

In caso, se ancora non va, ci si rivede su queste pagine per sistemare i problemi di installazione.

:bye:

Link al commento
Condividi su altri siti

#!/usr/bin/python

#########################################################################

# Copyright © 2007 by Vincenzo Forchi` #

# vincenzo.forchi@gmail.com #

# This program is free software; you can redistribute it and/or modify #

# it under the terms of the GNU General Public License version 2 as #

# published by the Free Software Foundation. #

# #

# This program is distributed in the hope that it will be useful, #

# but WITHOUT ANY WARRANTY; without even the implied warranty of #

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #

# GNU General Public License for more details. #

# #

# You should have received a copy of the GNU General Public License #

# along with this program; if not, write to the #

# Free Software Foundation, Inc., #

# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #

#########################################################################

import sys, os

from PyQt4.QtCore import QSettings, QVariant, QString, QFile, QTranslator, SIGNAL, Qt

from PyQt4.QtGui import QApplication, QMainWindow, QMessageBox, QGridLayout, QPushButton, QButtonGroup, qApp

from Ui.Ui_aid20 import Ui_Aid20

from Tools.CombatManager import CombatManager

from Tools.DiceRoller import DiceRoller

from Tools.BattleMapper import BattleMapper

class Aid20(QMainWindow):

[ CombatManager, DiceRoller, BattleMapper ] = range(3)

# lingue = {0: 'en', 1: 'it'}

def __init__(self, lingua='en', parent=None):

QMainWindow.__init__(self, parent)

self.ui = Ui_Aid20()

self.ui.setupUi(self)

self.setLanguage(lingua)

bg = QButtonGroup(self)

bg.addButton(self.ui.pushCombatManager, Aid20.CombatManager)

bg.addButton(self.ui.pushDiceRoller, Aid20.DiceRoller)

bg.addButton(self.ui.pushBattleMapper, Aid20.BattleMapper)

self.connect(bg, SIGNAL("buttonClicked(int)"), self.launchProgram)

# self.connect(self.ui.comboLanguage, SIGNAL("activated(int)"), self.setLanguage)

self.connect(self.ui.actionEnglish, SIGNAL("triggered()"), self.setLanguage)

self.connect(self.ui.actionItaliano, SIGNAL("triggered()"), self.setLanguage)

self.connect(self.ui.actionAid20, SIGNAL("triggered()"), self.aboutAid20)

# self.connect(self.ui.actionGPL_License, SIGNAL("triggered()"), self.aboutGPL)

# self.connect(self.ui.actionOGL_License, SIGNAL("triggered()"), self.aboutOGL)

self.cmw = CombatManager(self)

self.drw = DiceRoller(self)

self.bmw = BattleMapper(self)

def launchProgram(self, index):

if index == Aid20.CombatManager:

self.cmw.show()

elif index == Aid20.DiceRoller:

self.drw.clear()

self.drw.show()

elif index == Aid20.BattleMapper:

self.bmw.show()

def closeEvent(self, ev):

settings = QSettings(QSettings.IniFormat, QSettings.UserScope, "VF", "Aid20")

settings.setValue("language", QVariant(self.lingua))

self.cmw.close()

self.drw.close()

self.bmw.close()

def setLanguage(self, lingua=None):

#if isinstance(lingua, int):

# lingua = Aid20.lingue[lingua]

#else:

# for (k, v) in Aid20.lingue.iteritems():

# if v == lingua:

# self.ui.comboLanguage.setCurrentIndex(k)

if lingua is None:

if self.ui.actionEnglish.isChecked():

lingua = 'en'

elif self.ui.actionItaliano.isChecked():

lingua = 'it'

QMessageBox.information(self, QApplication.translate("Aid20", "Language Change"),

QApplication.translate("Aid20", "You have to reload the program for this change to be effective"))

else:

if lingua == 'en':

self.ui.actionEnglish.setChecked(True)

self.ui.actionItaliano.setChecked(False)

elif lingua == 'it':

self.ui.actionEnglish.setChecked(False)

self.ui.actionItaliano.setChecked(True)

self.lingua = lingua

if self.lingua == 'en':

try:

self.translator

qApp.removeTranslator(self.translator)

except:

pass

else:

self.translator = QTranslator()

self.translator.load("Aid20_%s.qm" % self.lingua, os.path.join(os.path.curdir, "translations"))

qApp.installTranslator(self.translator)

return

try:

self.cmw.close()

self.cmw.setParent(None)

self.cmw = CombatManager(self)

self.drw.close()

self.drw.setParent(None)

self.drw = DiceRoller(self)

self.bmw.close()

self.bmw.setParent(None)

self.bmw = BattleMapper(self)

self.bmw.close()

del self.bmw

self.bmw = BattleMapper(self)

except:

pass

def aboutAid20(self):

QMessageBox.about(self, QApplication.translate("Aid20", "About Aid20"), 'Questo e` un programma fichissimo, trovate un po` di licenze a caso in qualche cartella')

def aboutGPL(self):

f = QFile('GPL')

f.open(QFile.ReadOnly|QFile.Text)

QMessageBox.about(self, QApplication.translate("Aid20", "About GPL"), QString(f.readAll()))

def aboutOGL(self):

f = QFile('OGL')

f.open(QFile.ReadOnly|QFile.Text)

QMessageBox.about(self, QApplication.translate("Aid20", "About OGL"), f.readAll())

if __name__ == "__main__":

app = QApplication(sys.argv)

settings = QSettings(QSettings.IniFormat, QSettings.UserScope, "VF", "Aid20")

lingua = settings.value("language", QVariant(QString("en"))).toString()

if lingua != 'en':

translator = QTranslator()

translator.load("Aid20_%s.qm" % lingua, os.path.join(os.path.curdir, "translations"))

app.installTranslator(translator)

w = Aid20(lingua)

w.show()

sys.exit(app.exec_())

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente registrato per poter lasciare un commento

Crea un account

Crea un nuovo account e registrati nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.
 

Accedi ora
×
×
  • Crea nuovo...