View Full Version : Thread dei Problemi
RaouL_BennetH
17-09-2005, 12:14
Può essere utile per descrivere i problemi che si incontrano nell'utilizzo dei software.
Comincio io che ho problemi con subversion sia da linux che da windows:
Seguendo la guida di DanieleC88 e Cdimauro, ottengo questo quando cerco di installare il programma:
Unable to complete action for feature "Subclipse" due to errors.
Unable to create file "/usr/lib/eclipse/plugins/org.tigris.subversion.subclipse.core_0.9.34/SVNPluginCore.jar". [/usr/lib/eclipse/plugins/org.tigris.subversion.subclipse.core_0.9.34/SVNPluginCore.jar (No such file or directory)]
Unable to create file "/usr/lib/eclipse/plugins/org.tigris.subversion.subclipse.core_0.9.34/SVNPluginCore.jar". [/usr/lib/eclipse/plugins/org.tigris.subversion.subclipse.core_0.9.34/SVNPluginCore.jar (No such file or directory)]
Ne deduco quindi che non mi permetta di farlo come utente ma che necessito di essere root per farlo.Ma se fosse così,come gli faccio installare quella roba in quella dir senza scomodare il root?
Sono fermo qui su piattaforma linux.
Su windows il problema è un altro.Appena lo avvio, vi posto anche quello.
Raoul.
Ho avuto il tuo stesso preoblema pure io. Subito dopo aver accettato la licenza ti fa un riassunto delle cose da installare. Sotto la lista c'è un bottone "Change Location..." cliccaci sopra e seleziona una cartella dentro alla tua home. Ad esempio ~/.eclipse/
ciao ;)
^TiGeRShArK^
17-09-2005, 15:32
mmmmmmmmmmmmm
è normale che ant mi dia questo problema???
check:
[checkstyle] Running Checkstyle 4.0-beta5 on 2 files
[checkstyle] Can't find/access AST Node typecom.puppycrawl.tools.checkstyle.api.
DetailAST
[checkstyle] Can't find/access AST Node typecom.puppycrawl.tools.checkstyle.api.
DetailAST
BUILD FAILED
^TiGeRShArK^
18-09-2005, 18:00
problema risolto....
in maniera per niente elegante, ma almeno funziona...
praticamente ho creato un file .bat che non fa altro che settare il classpath puntando a junit e al checker, in particolare:
set classpath=C:\Diamonds\trunk\lib\checkstyle\checkstyle-all-4.0-beta5.jar;C:\Diamonds\trunk\lib\junit.jar
in questo modo PRIMA di lanciare l'ant devo lanciare questo classpath.bat e il checker non da più problemi...
spero di trovare una soluzione definitiva prima o poi però.... :mbe:
Ho un problema quando tento di fare l'update del progetto:
update -r HEAD /mnt/developement/workspace/Diamonds
U /mnt/developement/workspace/Diamonds/build.xml
svn: Failed to add directory 'bin': object of the same name already exists
Come mai? La directory bin, che nel mio caso e' /mnt/developement/workspace/Diamonds/bin, non e' visibile nel package explorer di Eclipse (difatti la scopro solo ora)... pero' perche' tenta di ricrearla anziche' aggiornarla? Ci sono state altre modifiche dopo le 15.00 di oggi (18 settembre)? Fino ad allora andava tutto bene :mad:
La directory bin e' cosi' strutturata:
[gica@renzus bin]$ pwd
/mnt/developement/workspace/Diamonds/bin
[gica@renzus bin]$ ls -R
.:
it
./it:
diamonds
./it/diamonds:
helloworld tests
./it/diamonds/helloworld:
HelloWorld.class
./it/diamonds/tests:
TestHelloWorld.class
:confused:
SVN e' noioso. Ho appena aggiunto la cartella bin/
O fai il check out manuale della tua cartella bin/ oppure la cancelli e rifai l'update.
SVN e' noioso. Ho appena aggiunto la cartella bin/
O fai il check out manuale della tua cartella bin/ oppure la cancelli e rifai l'update.
Ho fatto cleanup e poi nuovamente update. Ora sta scaricando :)
Vedo che sono state aggiunte le varie librerie anche per Mac OS e Linux, quindi non necessitiamo di altro materiale per poter eseguire il codice, vero?
Ho fatto cleanup e poi nuovamente update. Ora sta scaricando :)
Come non detto... Arrivato a bin si e' rifermato :mad:
L'ho cancellata e riaggiornato. Ora e' tutto OK!
Ciao
SVN e' noioso. Ho appena aggiunto la cartella bin/
O fai il check out manuale della tua cartella bin/ oppure la cancelli e rifai l'update.
Uhm e perchè hai aggiunto la bin/ ? :confused:
ciao ;)
Uhm e perchè hai aggiunto la bin/ ? :confused:
ciao ;)
Abbiamo messo le librerie di lwgl in bin/
Abbiamo messo le librerie di lwgl in bin/
Io le librerie le vedo sotto lib/bin/ mentre bin/ è vuota.
ciao ;)
Io le librerie le vedo sotto lib/bin/ mentre bin/ è vuota.
ciao ;)
Fammi vedere se abbiamo fatto casino.
ragazzi adesso comincio a bestemmiare :mad: :mad:
non riesco a sincronizzare il progetto in locale con quello remoto, ho provato a fare un update, ma ho avuto una serie di errrori, mi son incasinato, e ho cancellato tutta la copia in locale, provo a fare un nuovo check out as Project, ma all'11% mi si blocca :muro: :muro: :muro: :muro: :muro:
mi da questo messaggio in console:
svn: Cannot rename file '...../Diamonds/lib/linux/libILU.so.1.tmp' : file doesn't exist
HELP!!! :muro: :muro:
ragazzi, non so più cosa fare!!!! da quando è stato aggiornato con le librerie LWJGL non riesco a scaricarmi il progetto in locale, non riesco a capire dove sia il problema :muro: :muro: :muro: :muro: :muro: :muro: :muro: :muro:
ragazzi, non so più cosa fare!!!! da quando è stato aggiornato con le librerie LWJGL non riesco a scaricarmi il progetto in locale, non riesco a capire dove sia il problema :muro: :muro: :muro: :muro: :muro: :muro: :muro: :muro:
Da Eclipse o con Tortoise?
Eclipse, adesso sto scaricando subversion da linea di testo, oltre che ad altri client ver linux... :muro: :muro: , ma mi sembra strano che tutto d'un tratto non riesca a fare un check out, quando fino ad ieri aveva funzionato benissimo.. :confused:
prova a cancellare il progetto da eclipse e poi rifai il checkout
l'avrò fatto minimo una cinquina di volte :muro: :cry:
la cosa strana è proprio che partendo da zero, ovvero senza nessun file sul filesystem locale, mi va in tilt il checkout!!!!
Allora io sono senza idee... Vicius?
adesso ho provato con il client in linea di testo, ma mi da lo stesso errore.... :confused: :confused: :confused:
adesso ho provato con il client in linea di testo, ma mi da lo stesso errore.... :confused: :confused: :confused:
Ok, crea una directory totalmente nuova, entraci dentro e dimmi esattamente quale riga di comando stai usando.
ecco:
svn checkout svn://spartacus.dnsalias.net/diamonds
A diamonds/trunk
A diamonds/trunk/.classpath
A diamonds/trunk/checks
A diamonds/trunk/checks/metrics.xml
A diamonds/trunk/.project
A diamonds/trunk/lib
A diamonds/trunk/lib/linux
A diamonds/trunk/lib/linux/libILU.so.1
A diamonds/trunk/lib/linux/libILU.so
A diamonds/trunk/lib/linux/libILUT.so
A diamonds/trunk/lib/linux/libopenal.so
A diamonds/trunk/lib/linux/liblwjgl.so
A diamonds/trunk/lib/linux/liblwjgl-devil.so
A diamonds/trunk/lib/linux/libIL.so.1
A diamonds/trunk/lib/linux/leggimi.txt
A diamonds/trunk/lib/linux/libIL.so
A diamonds/trunk/lib/linux/libjinput-linux.so
svn: In directory 'diamonds/trunk/lib/linux'
svn: Can't open 'diamonds/trunk/lib/linux/libILU.so.1.tmp': Operation not permitted
Prova ora.
Avevo messo i link simbolici per evitare problemi di link delle librerie ma evidentemente a subversion non piaciono. :mad:
ciao ;)
approposito, il comando l'ho lanciato da root, giusto per evitare problemi di permessi locali (che cmq non c'erano, ma quando non capisci dove sia il problema, le provi tutte!!!)
grande Vicius, risolto, adesso ha superato il punto critico e procede bene, ciao ;)
grande Vicius, risolto, adesso ha superato il punto critico e procede bene, ciao ;)
Perfetto cosi ora sappiamo che è colpa dei link. Ora pero sorge un problema. Se lascio cosi i file con il .1 java non li trova quando si fa partire il programma e se gli toglo il .1 non trova altre due librerie perchè a loro serve il file con il .1
Per ora l'unica cosa che che mi viene in mente è duplicare il file ma non è molto elegante :(
ciao ;)
non saprei, penso che al momento è l'unica soluzione possibili, prova così, in caso si trova una soluzione più elegante, la si adotta, per il momento penso che l'importante sia che funzioni bene;)
Se avete problemi a lanciare Game.java da Eclipse, seguite questi passi:
- click destro su Game.java
- selezionate "Run..."
- Sotto "Java Application" selezionate "Game"
- Selezionate il tab "Arguments"
- in "VM Arguments" aggiungete "-Djava.library.path=${workspace_loc: Diamonds/lib/win32}"
- in "Working directory" aggiungete "${workspace_loc: Diamonds/bin}"
Togliete lo spazio fra ":" e "D". Sotto linux sostituite "linux" a "win32".
A breve creero' i file batch per lanciare il gioco fuori da Eclipse.
^TiGeRShArK^
19-09-2005, 20:55
fatto! :D
dovete settare le variabili d'ambiente %DIAMONDS_HOME% e %JAVA_HOME% in modo che puntino rispettivamente alla directory dove avete installato il vostro progetto diamonds e alla directory dove avete installato JDK5.
Quindi andate sotto la directory bin ed eseguite diamonds.bat e *dovrebbe funzionare il tutto* :Prrr:
cdimauro
20-09-2005, 09:47
Niente da fare, anche seguendo i passi di fek, ottengo sempre questo:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl-devil in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at org.lwjgl.devil.IL.<clinit>(IL.java:572)
at it.diamonds.engine.Texture.loadTextureFromFile(Texture.java:48)
at it.diamonds.Game.main(Game.java:32)
Sono bloccato e non posso andare avanti... :muro: :muro: :muro:
cdimauro
20-09-2005, 09:53
risolto lanciando eclipse con questo parametro:
/usr/local/eclipse/eclipse -vmargs -Djava.library.path=(Percorso_del_progetto)/Diamonds/lib/linux
Anche così non mi funziona: stesso errore di prima. Inoltre ottengo questo:
[cesare@conan cesare]$ /home/cesare/Progs/Programming/Java/eclipse/eclipse -vmargs -Djava.library.path=/home/cesare/workspace/Diamonds/lib/linux
Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path
no svnjavahl-1 in java.library.path
no svnjavahl in java.library.path
java.library.path = /home/cesare/workspace/Diamonds/lib/linux
Niente da fare, anche seguendo i passi di fek, ottengo sempre questo:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl-devil in java.library.path
Sono due giorni che lotto contro di lui.
Io l'ho messo a posto anche nel build.xml ma solo sotto Win32.
Due condizioni devono essere rispettate:
- la directory corrente dove va lanciato il gioco o i test dev'essere bin/
- java.library.path deve puntare a lib/win32 o lib/linux
Se queste due condizioni sono rispettate, allora il gioco e i test partono.
Niente da fare, anche seguendo i passi di fek, ottengo sempre questo:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl-devil in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at org.lwjgl.devil.IL.<clinit>(IL.java:572)
at it.diamonds.engine.Texture.loadTextureFromFile(Texture.java:48)
at it.diamonds.Game.main(Game.java:32)
Sono bloccato e non posso andare avanti... :muro: :muro: :muro:
Avevo anch'io lo stesso identico problema... Sinceramente ho risolto aggiungendo soltanto il flag -Djava.library.path=<workspace_di_eclipse>/Diamonds/lib/linux (senza -vmargs) in VM arguments. Ora pero' il problema e' un altro:
The current display mode is not available due to org.lwjgl.LWJGLExeption: Could not choose visual
:confused:
Anche così non mi funziona: stesso errore di prima. Inoltre ottengo questo:
[cesare@conan cesare]$ /home/cesare/Progs/Programming/Java/eclipse/eclipse -vmargs -Djava.library.path=/home/cesare/workspace/Diamonds/lib/linux
Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path
no svnjavahl-1 in java.library.path
no svnjavahl in java.library.path
java.library.path = /home/cesare/workspace/Diamonds/lib/linux
JavaHL "dovrebbe" essere una lib di sistema. Non ho mai avuto questo problema sotto Win32, Vicius? Idee?
cdimauro
20-09-2005, 10:20
A questo punto mi fermo un attimo sperando di ottenere una mano da qualcuno più esperto di me con Linux.
anche a me da lo stesso errore di cdimauro quando carico eclipse dalla shell, ma adesso, con il nuovo build.xml, senza passare niente a linea di comando, reisco a eseguire il build, ho dovuto solo mdoficare win32 con linux ;)
anche a me da lo stesso errore di cdimauro quando carico eclipse dalla shell, ma adesso, con il nuovo build.xml, senza passare niente a linea di comando, reisco a eseguire il build, ho dovuto solo mdoficare win32 con linux ;)
Non fare il commit delle modifiche a build.xml. Appena torno a casa faccio in modo che capisca automaticamte l'os e la imposti correttamente.
Per javahl sotto linux:
http://www.eclipse-plugins.info/eclipse/plugin_comments.jsp?id=338
When you're using unix/linux you need to compile javahl yourself. I found a small description (http://psnet.nu/notes/index.jsp?res=/Linux/howtos/subversion_with_javahl) for svn 1.1.x, but i think it will also work with svn 1.2.x.
Ve la dovete compilare a quanto sembra...
http://svn.haxx.se/users/archive-2004-12/1488.shtml
http://svn.haxx.se/users/archive-2003-10/0656.shtml (MacOSX)
Setup.exe avanti avanti avanti :p
[...]
- in "Working directory" aggiungete "${workspace_loc: Diamonds/bin}"
Nel mio caso, Working directory e' gia' settata a "${workspace_loc: Diamonds}"; se aggiungo /bin mi dice
Unable to find the texture data/diamond.png
:mad:
Inoltre ho notato che, installando in locale le librerie lwjgl, sia su Mac che su Linux non passa il test indicato qui (http://www.lwjgl.org/installation.php):
java -cp .:res:jar/lwjgl.jar:jar/lwjgl_test.jar:jar/lwjgl_util.jar:jar/lwjgl_fmod3.jar:jar/lwjgl_devil.jar:jar/jinput.jar:
-Djava.library.path=native org.lwjgl.test.WindowCreationTest
:mbe:
Nel mio caso, Working directory e' gia' settata a "${workspace_loc: Diamonds}"; se aggiungo /bin mi dice
la working directory dev'essere bin/
Controllo che la texture sia li'.
Inoltre ho notato che, installando in locale le librerie lwjgl, sia su Mac che su Linux non passa il test indicato qui (http://www.lwjgl.org/installation.php):
java -cp .:res:jar/lwjgl.jar:jar/lwjgl_test.jar:jar/lwjgl_util.jar:jar/lwjgl_fmod3.jar:jar/lwjgl_devil.jar:jar/jinput.jar:
-Djava.library.path=native org.lwjgl.test.WindowCreationTest
:mbe:
Problema di lwjgl qui. Non ne ho idea.
A questo punto mi fermo un attimo sperando di ottenere una mano da qualcuno più esperto di me con Linux.
Scusa se torno sull'argomento... Ma quale distro stai usando? Se stai su Fedora Core 4 e' strano, a me non segnala nessun problema con javahl, pur non avendo installato null'altro all'infuori di Eclipse, Subclipse e il JDK 1.5 :confused:
Non fare il commit delle modifiche a build.xml. Appena torno a casa faccio in modo che capisca automaticamte l'os e la imposti correttamente.
Per javahl sotto linux:
http://www.eclipse-plugins.info/eclipse/plugin_comments.jsp?id=338
When you're using unix/linux you need to compile javahl yourself. I found a small description (http://psnet.nu/notes/index.jsp?res=/Linux/howtos/subversion_with_javahl) for svn 1.1.x, but i think it will also work with svn 1.2.x.
Ve la dovete compilare a quanto sembra...
http://svn.haxx.se/users/archive-2004-12/1488.shtml
http://svn.haxx.se/users/archive-2003-10/0656.shtml (MacOSX)
Setup.exe avanti avanti avanti :p
non ti preoccupare, non ho i permessi per fare un commit, cmq volevo chiederti a riguardo del test che ho postato prima, se ti è possibile ci puoi dare un'occhiata?
cdimauro
20-09-2005, 10:38
Scusa se torno sull'argomento... Ma quale distro stai usando? Se stai su Fedora Core 4 e' strano, a me non segnala nessun problema con javahl, pur non avendo installato null'altro all'infuori di Eclipse, Subclipse e il JDK 1.5 :confused:
Ho FC 2 per x86-64.
Anche così non mi funziona: stesso errore di prima. Inoltre ottengo questo:
[cesare@conan cesare]$ /home/cesare/Progs/Programming/Java/eclipse/eclipse -vmargs -Djava.library.path=/home/cesare/workspace/Diamonds/lib/linux
Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path
no svnjavahl-1 in java.library.path
no svnjavahl in java.library.path
java.library.path = /home/cesare/workspace/Diamonds/lib/linux
Ho avuto lo stesso problema pure io su debian. A quanto pare i mantainer di alcune distribuzioni non hanno voglia di abilitare questa opzione. Va a capire.
Una possibile soluzione:
Apri eclipse poi nel menu: Window -> Preferences...
Qui vai in Team -> SVN. Probabilmente ti dira ancora una volta che non trova la libreria. Ignora cosi puoi modificare le opzioni. In quella finestra c'è una groupbox con tre opzioni. Scegli SVN command line. Salva e riavvia eclipse incrociando le dita. :D
ciao ;)
- java.library.path deve puntare a lib/win32 o lib/linux
Puo puntare a tutte e tre contemporaneamente:
-Djava.library.path=lib/linux/:lib/win32/:lib/macos/
Qui su eclipse funziona e non vedo perchè non possa andare pure su ant.
ciao ;)
Su Mac va ancora peggio :mad:
Non passa nemmeno l'Ant build :mbe:
Variable references non-existent resource: ${workspace_loc:/Game/lib/junit.jar}
eppure ho rifatto il checkout da capo proprio ora :confused:
Ho avuto lo stesso problema pure io su debian. A quanto pare i mantainer di alcune distribuzioni non hanno voglia di abilitare questa opzione. Va a capire.
Una possibile soluzione:
Apri eclipse poi nel menu: Window -> Preferences...
Qui vai in Team -> SVN. Probabilmente ti dira ancora una volta che non trova la libreria. Ignora cosi puoi modificare le opzioni. In quella finestra c'è una groupbox con tre opzioni. Scegli SVN command line. Salva e riavvia eclipse incrociando le dita. :D
ciao ;)
io c'ho impostato javaSVN (Pure Java) e funziona, ma, a quando ho capito, con javahl dovrebbe andare meglio, bo, io adesso sto compilando...
Su Mac va ancora peggio :mad:
Non passa nemmeno l'Ant build :mbe:
eppure ho rifatto il checkout da capo proprio ora :confused:
E' strano. ora il progetto si chiama Diamonds quindi avrebbe dovuto essere ${workspace_loc:/Diamonds/lib/junit.jar}. Certo che sto eclipse è un problema dietro l'altro. :mad:
ciao ;)
cdimauro
20-09-2005, 11:03
Ho avuto lo stesso problema pure io su debian. A quanto pare i mantainer di alcune distribuzioni non hanno voglia di abilitare questa opzione. Va a capire.
Una possibile soluzione:
Apri eclipse poi nel menu: Window -> Preferences...
Qui vai in Team -> SVN. Probabilmente ti dira ancora una volta che non trova la libreria. Ignora cosi puoi modificare le opzioni. In quella finestra c'è una groupbox con tre opzioni. Scegli SVN command line. Salva e riavvia eclipse incrociando le dita. :D
ciao ;)
Niente da fare. Facendo ripartiare Eclipse e provando "Run as / Java Application" mi dà lo stesso errore.
Facendo partire eclipse con: /home/cesare/Progs/Programming/Java/eclipse/eclipse -vmargs -Djava.library.path=/home/cesare/workspace/Diamonds/lib/linux mi dà gli stessi messaggi di errore durante il caricamento, e gli stessi errori provando a far eseguire Game.java.
Seguendo il metodo di fek (mettendo "-Djava.library.path=${workspace_loc: Diamonds/lib/linux}" (senza spazio) in VM arguments e "${workspace_loc: Diamonds/bin}" (senza spazio) in Workind directory, stavolta ottengo questo:
Unable to find the texture data/diamond.png
Che mi sembra già molto meglio. :)
Unable to find the texture data/diamond.png
Che mi sembra già molto meglio. :)
Il problema e' che quel data/diamond.png invece c'e' :muro:
Seguendo il metodo di fek (mettendo "-Djava.library.path=${workspace_loc: Diamonds/lib/linux}" (senza spazio) in VM arguments e "${workspace_loc: Diamonds/bin}" (senza spazio) in Workind directory, stavolta ottengo questo:
Unable to find the texture data/diamond.png
Che mi sembra già molto meglio. :)
probabilmente cerca in /bin/data/diamond.png invece di /data/diamonds.png. Prova ad usare la working dir di default senza il bin/
ciao ;)
non ti preoccupare, non ho i permessi per fare un commit, cmq volevo chiederti a riguardo del test che ho postato prima, se ti è possibile ci puoi dare un'occhiata?
Ti passo i permessi in PM e guardo il test.
E' strano. ora il progetto si chiama Diamonds quindi avrebbe dovuto essere ${workspace_loc:/Diamonds/lib/junit.jar}. Certo che sto eclipse è un problema dietro l'altro. :mad:
ciao ;)
Si', l'IDE e' davvero poco flessibile.
stranissimo :confused: , prima avevo in bin/data/ il file diamonds.png, poi ho fatto un update ed è sparito, ho dato un Synchronize, e vedo che effettivamente c'è questo benedetto file non sincronizzato, allora seleziono solo la cartella bin, e gli do un'altro bel update, e che mi dice?
svn: '......./Diamonds/bin/data/diamond.png' is not under version control
cdimauro
20-09-2005, 11:32
probabilmente cerca in /bin/data/diamond.png invece di /data/diamonds.png. Prova ad usare la working dir di default senza il bin/
ciao ;)
Funziona!!! :)
Però mi appare una finestrella, con titolo "Diamonds Project - Task 1.5" con sfondo magenta e null'altro: anche se provo ad chiuderla, non succede niente. E' normale?
risolto, ho cambiato dalla java perspective alla Resuorce perspective, in modo da poter vedere la cartella bin, e ho aggiunto la cartella data al version control, il problema porbabilmente era che avevo creato io la cartella con un file diamonds.wav per provare il mio codice :D
Funziona!!! :)
Però mi appare una finestrella, con titolo "Diamonds Project - Task 1.5" con sfondo magenta e null'altro: anche se provo ad chiuderla, non succede niente. E' normale?
Bingo! :D
Premi ESC e esce.
Tutto normale, praticamente nessuno di noi conosce Eclipse, io non toccavo Java da anni ed ho imparato a fare questi build script nel finesettimana, i classpath erano un mistero insondabile della fede per me, lwgl neppure sapevo esistesse, vicius e' un mostro e risolve i problemi prima che vengano fuori, e stiamo supportando tre piattaforme.
I problemi iniziali erano inevitabili e direi che fra tutti siamo stati piu' che bravi. Complimenti! :D
cdimauro
20-09-2005, 11:41
Bingo! :D
Premi ESC e esce.
Ma tu guarda che deficiente che sono. :doh:
kill 28481 :fiufiu:
Tutto normale, praticamente nessuno di noi conosce Eclipse, io non toccavo Java da anni ed ho imparato a fare questi build script nel finesettimana, i classpath erano un mistero insondabile della fede per me, lwgl neppure sapevo esistesse, vicius e' un mostro e risolve i problemi prima che vengano fuori, e stiamo supportando tre piattaforme.
I problemi iniziali erano inevitabili e direi che fra tutti siamo stati piu' che bravi. Complimenti! :D
Adesso finalmente si può cominciare... Che bello. :)
Funziona!!! :)
Però mi appare una finestrella, con titolo "Diamonds Project - Task 1.5" con sfondo magenta e null'altro: anche se provo ad chiuderla, non succede niente. E' normale?
anche a me succede la stessa cosa
Vicius ha sistemato i test anche sotto linux. Ora credo possiate completare i vostri task.
ehm.., con l'ultima modifica di Vicius i test non mi vanno più...
[junit] Running it.diamonds.tests.TestAudio
[junit] #
[junit] # An unexpected error has been detected by HotSpot Virtual Machine:
[junit] #
[junit] # SIGSEGV (0xb) at pc=0x460037ad, pid=3750, tid=180235
[junit] #
[junit] # Java VM: Java HotSpot(TM) Client VM (1.5.0_03-b07 mixed mode, sharing)
[junit] # Problematic frame:
[junit] # C [libopenal.so+0x107ad] _alSourceBytesLeft+0x16
[junit] #
[junit] # An error report file with more information is saved as hs_err_pid3750.log
[junit] #
[junit] # If you would like to submit a bug report, please visit:
[junit] # http://java.sun.com/webapps/bugreport/crash.jsp
[junit] #
però, prima avevo modificato lo script di fek, e c'avevo lasciato anche il path per windows, e funzionava, solo che l'ho sovrascritto con la versione di Vicius e non mi ricordo come l'avevo modificato :stordita:
bo, al posto di un solo due punti ce ne ho messi 2, e adesso va...
<property name="library.path" location="lib/linux/::lib/win32/::lib/macos/"/>
a me sembra strano, non lo so, aspetto che qualcun'altro provi per vedere che succede
bo, al posto di un solo due punti ce ne ho messi 2, e adesso va...
<property name="library.path" location="lib/linux/::lib/win32/::lib/macos/"/>
a me sembra strano, non lo so, aspetto che qualcun'altro provi per vedere che succede
L'ho letta questa.
C'e' anche qualcosa per modificare il path in quello corretto a seconda del sistema, che mette automaticamente i :: quando necessario.
:incazzed:
Texture loading error due to +
org.lwjgl.LWJGLException: Could not load devil library.
at org.lwjgl.devil.IL.nCreate(Native Method)
at org.lwjgl.devil.IL.create(IL.java:599)
at it.diamonds.engine.Texture.loadTextureFromFile(Texture.java:48)
at it.diamonds.Game.main(Game.java:32)
Percheeeeeeeee'????
Eppure java.library.path=/Users/gica/programmazione/eclipse/Diamonds/lib/macos e' giusto! :muro:
Per lanciare la classe Game, cosa si deve fare?
Apro il file Game.java --> run --> run --> imposto il java.library.path con la directory contenente le librerie lwjgl --> run :(
fek, novità dalla build sul server?? :stordita:
fek, novità dalla build sul server?? :stordita:
Si', rotta con l'errore di cionci.
[junit] Testcase: testAudioCreation took 2.444 sec
[junit] Caused an ERROR
[junit] OpenAL error: Invalid Enum (40962)
[junit] org.lwjgl.openal.OpenALException: OpenAL error: Invalid Enum (40962
[junit] at org.lwjgl.openal.Util.checkALError(Util.java:56)
[junit] at org.lwjgl.openal.AL10.alListener3f(AL10.java:632)
[junit] at it.diamonds.audio.Audio.initListener(Audio.java:67)
[junit] at it.diamonds.audio.Audio.init(Audio.java:58)
[junit] at it.diamonds.audio.Audio.<init>(Audio.java:17)
[junit] at it.diamonds.tests.TestAudio.setUp(TestAudio.java:21)
Fai il revert degl'ultimi cambiamenti e poi risolviamo il problema assieme.
I test passano se commento queste due righe in Sound.java:
public void freeMemory()
{
// AL10.alDeleteBuffers(buffer);
// AL10.alDeleteSources(source);
wasLoaded = false;
wasPlayed = false;
}
public void initListener()
{
AL10.alListener3f(AL_POSITION,0.0f,0.0f,0.0f);
AL10.alListener3f(AL_VELOCITY, 0.0f,0.0f,0.0f);
// AL10.alListener3f(AL_ORIENTATION, 0.0f,0.0f,0.0f);
}
come faccio a fare il revert? :stordita:
cmq, ho appena finito di correggere il problema con initListener, era un errore veramente banale, per freeMemory, non vedo errori che lo coinvolgono... :confused:
la cosa strana è che prima, nonostante ci fosse un errore evidente nel settare una proprietà del Listener, in locale mi compilava tutto alla perfezione!!!
come faccio a fare il revert? :stordita:
cmq, ho appena finito di correggere il problema con initListener, era un errore veramente banale, per freeMemory, non vedo errori che lo coinvolgono... :confused:
freeMemory() rompe la build anche nell'ultimo commit.
Ho disabilitato anche questo test. Qui c'e' un problema con freeMemory e dobbiamo andare affondo, perche' sta facendo fallire i test a ripetizione.
La build e' VERDE.
ho potuto notare che linux è molto più permissivo, diciamo, negli errori, infatti anche a Vicius (che ha linux), sia dopo il mio prima commit che dopo la correzione a initListener i test venivano passati, è difficile correggere qualcosa se non si ha nessun messaggio di errore, mi puoi postare l'output?
Purtroppo incontreremo questi problemi spesso, a meno di non avere una build machine su una macchina linux.
Ecco l'errore:
[junit] Caused an ERROR
[junit] OpenAL error: Invalid Operation (40964)
[junit] org.lwjgl.openal.OpenALException: OpenAL error: Invalid Operation (4
0964)
[junit] at org.lwjgl.openal.Util.checkALError(Util.java:56)
[junit] at org.lwjgl.openal.AL10.alDeleteBuffers(AL10.java:962)
[junit] at it.diamonds.audio.Sound.freeMemory(Sound.java:69)
[junit] at it.diamonds.tests.TestAudio.testSoundFreeMemory(TestAudio.jav
a:100)
Credo sia lo stesso di cionci. Ho commentato tutto il test per togliere l'errore.
senti fek, ho fatto un'altra modifica, la vuoi provare tu prima, o faccio un commit e poi in caso si commenta?
cdimauro
21-09-2005, 11:21
x Vifani: ho portato parte del tuo codice da Game.java a Engine.java; successivamente ho modificato Game.java in modo da utilizzare la classe Engine per inizializzare il display e OpenGL.
Purtroppo dopo queste modifiche ricevo numerose segnalazioni di errore, in quanto non si riescono a trovare le classi e i tipi utilizzati (Display, GL11, GL_TEXTURE0, Keyboard, ecc.). Tutto ciò nonostante avessi mantenuto nell'intestazione di Game.java (e ricopiato anche in Engine.java):
import static org.lwjgl.opengl.GL11.*;
Non mi spiego come mai prima funzionasse tutto con questo semplice import, e adesso no. :(
EDIT: il build con Ant mi dà BUILD SUCCESSFUL.
Questo vuol dire che e' solo Eclipse a dare problemi?
cdimauro
21-09-2005, 13:09
Adesso neppure la build con Ant mi funziona... :(
Allora, penso che tutti questi casini me li dia SVN, che sballa completamente la sincronizzazione.
Dico questo perché effettuando il sync o l'update non mi dice nulla, mentre andando su SVN Repository vedo che i file hanno un numero di versione più aggiornato rispetto a quelli del mio workspace.
Non solo: clickando su Texture.java, ad esempio, mi ha detto che il file presente sul filesystem è cambiato, e mi ha chiesto di aggiornalo: l'ho fatto, ed effettivamente risulta la versione più aggiornata. Soltanto che, a causa di questo di aggiornamento, questo file adesso fa uso di altre due classi, fra cui TextureNotFoundException.java, che NON RIESCO A IMPORTARE nel mio workspace.
Risultato: la build con Ant fallisce.
La cosa "comica" è che prima di quest'infausto aggiornamento parziale Ant riesciva a portare a termine la compilazione, mentre Eclipse mi diceva che mancavano i riferimenti a Display, Keyboard, ecc... :rolleyes:
Altra cosa da segnalare: ogni volta che faccio delle modifiche e faccio un click sull'iconcina del dischetto per salvare le modifiche, mi appare un dialogo segnalando il messaggio di errore:
"Errors have occurred while calculating the synchronization state for SVNStatusSubscriber.
An internal error occurred processing subscriber events.
An internal error occurred processing subscriber events.
String index out of range: -1
"
Insomma, non so più che pesci prendere.
Il task sulla carta penso di averlo completato (son partito dai test segnalati da fek, che dovevano essere passati e da lì in maniera "naturale" :) ho tirato fuori classe e metodi), compresi i test, ma non posso nemmeno provare per vedere se ci sono problemi. :cry:
Adesso neppure la build con Ant mi funziona... :(
Allora, penso che tutti questi casini me li dia SVN, che sballa completamente la sincronizzazione.
Situazione drammatica. L'unica cosa che ti posso consigliare e' di rimuovere totalmente Eclipse e Svn e installare daccapo e poi fare un check out pulito. Salva ovviamente i file che hai modificato.
Magari mandami il tuo commit alla mail di casa e quando torno a casa faccio io e chiudiamo il task.
Per il resto... Setup.. avanti avanti avanti :p
Sono l'unico a cui si apre la finestra con sfondo nero e basta? Il diamante non ne vuole sapere di essere diseganto :mad:
ciao ;)
Sono l'unico a cui si apre la finestra con sfondo nero e basta? Il diamante non ne vuole sapere di essere diseganto :mad:
ciao ;)
Il diamante non appare su linux, ma appare correttamente su win.
Problema di path nel trovare la texture, oppure problema di lwgl. Raffaele?
penso che il problema sia di lwjgl, anche a me appare uno "scarabocchio verde" al posto del diamande sotto linux, e per il path, se è sbagliato mi lancia un'eccezione, per non parlare dei problemi avuti da me con l'audio :D , siamo sicuri che le librerie incluse nel progetto sono le ultimi stabili?
Il problema dovrebbe essere risolto. Potete confermare?
io da linux non vedo niente (dove dovrebbe essere il diamande a volte non c'è niente, a volte uno "scarabocchio") :mad:
io da linux non vedo niente (dove dovrebbe essere il diamande a volte non c'è niente, a volte uno "scarabocchio") :mad:
Se non ha caricato la texture, allora probabilmente va a prendere zone a caso della memoria video.
Se invece ha caricato la texture, allora lwlgl e' ubriaco e se continua cosi' si passa a jogl.
Non so se puo servire, ma questo è quello che vedo io.
http://img338.imageshack.us/img338/9754/schermata30dg.th.png (http://img338.imageshack.us/my.php?image=schermata30dg.png)
ma ogni tanto scappa fuori pure questo.
http://img92.imageshack.us/img92/3953/schermata41nt.th.png (http://img92.imageshack.us/my.php?image=schermata41nt.png)
:help:
ciao ;)
BlueDragon
21-09-2005, 21:05
Ciao a tutti,
la scorsa settimana, questa, ed anche la prossima sono così impegnato che era qualche giorno che non leggevo bene il forum, ma tento di tenermi sincronizzato e di non rimanere troppo indietro.
Ho importato il progetto su Eclipse ed ho provato a farlo funzionare ma c'è qualcosa che non mi torna...importiamo il progetto dalla root del server o da trunk in poi?
Una volta scaricato tutto, su Eclipse bisogna creare il progetto Game dandogli in pasto il build.xml di Ant giusto?
Dopo un po' di prove sono riuscito a fargli lanciare Game: mi da SoundNotFound e TextureNotFound, e la finestra presenta quindi un semplice quadrato bianco al centro.
Spero di aver tempo domani per provare di nuovo, probabilmente mi sarò perso qualcuna delle istruzioni in giro per i vari thread....? :)
A proposito di informazioni in giro, ma poi il .doc del gioco? Sappiamo che si chiama diamonds, che si ispira ad un gioco esistente di cui abbiamo uno screenshot in un thread ma...ed il resto? Mi sono perso qualcosa anche su questo fronte? :)
Non so se puo servire, ma questo è quello che vedo io.
ciao ;)
Quando torna Raffaele vediamo se riesce a risolvere il problema.
Ciao a tutti,
la scorsa settimana, questa, ed anche la prossima sono così impegnato che era qualche giorno che non leggevo bene il forum, ma tento di tenermi sincronizzato e di non rimanere troppo indietro.
Ho importato il progetto su Eclipse ed ho provato a farlo funzionare ma c'è qualcosa che non mi torna...importiamo il progetto dalla root del server o da trunk in poi?
Una volta scaricato tutto, su Eclipse bisogna creare il progetto Game dandogli in pasto il build.xml di Ant giusto?
Dopo un po' di prove sono riuscito a fargli lanciare Game: mi da SoundNotFound e TextureNotFound, e la finestra presenta quindi un semplice quadrato bianco al centro.
Spero di aver tempo domani per provare di nuovo, probabilmente mi sarò perso qualcuna delle istruzioni in giro per i vari thread....? :)
A proposito di informazioni in giro, ma poi il .doc del gioco? Sappiamo che si chiama diamonds, che si ispira ad un gioco esistente di cui abbiamo uno screenshot in un thread ma...ed il resto? Mi sono perso qualcosa anche su questo fronte? :)
devi importare da trunk in poi, cmq, se usi subeclipse in giro per il forum c'è tutto quello che devi sapere per importare il tutto funzionante in un progetto ecplipse
Ho aggiunto la bozza del documento di design nella directory docs/
devi importare da trunk in poi, cmq, se usi subeclipse in giro per il forum c'è tutto quello che devi sapere per importare il tutto funzionante in un progetto ecplipse
A breve scriviamo e mettiamo online un doc con tutti i passi da svolgere per scaricare il codice, creare il progetto, lanciare una build di ant e lanciare il gioco da dentro e fuori Eclipse.
Chi se ne vuole occupare? E' un compito importante.
Quando torna Raffaele vediamo se riesce a risolvere il problema.
Problema risolto :)
Vicius per cortesia puoi controllare e darmi conferma ?
Problema risolto :)
Vicius per cortesia puoi controllare e darmi conferma ?
Confermo. Problema risolto.
ciao ;)
Raga... scusate :( Saro' deficiente io, ma su Mac continuo ad avere sempre lo stesso problema, ed e' rimasto costante ed immutabile nonostante le varie modifiche che avete apportato:
Texture loading error due to +
org.lwjgl.LWJGLException: Could not load devil library.
at org.lwjgl.devil.IL.nCreate(Native Method)
at org.lwjgl.devil.IL.create(IL.java:599)
at it.diamonds.engine.Texture.loadTextureFromFile(Texture.java:59)
at it.diamonds.engine.Texture.<init>(Texture.java:50)
at it.diamonds.Game.main(Game.java:56)
A questo si e' recentemente aggiunto quest'altro errore:
it.diamonds.audio.SoundNotFoundException
at it.diamonds.audio.Sound.initSource(Sound.java:107)
at it.diamonds.audio.Sound.<init>(Sound.java:34)
at it.diamonds.Game.main(Game.java:46)
Il check out l'ho rifatto da capo per l'ennesima volta, l'ant build ha successo.
Non e' che sbaglio la procedura per avviare l'applicazione? La classe Game la eseguo come Java Application, passando il parametro -Djava.library.path=../lib/macos e impostando la working directory a Diamonds/bin
Tutto cio' su Mac; su Linux riprovero' piu' tardi, dopo aver reinstallato un sistema un po' piu' solido di Fedora.
Che voi sappiate, ci sono problemi ad usare le LWJGL quando non e' abilitata l'accelerazione grafica e non ci sono le libGL? :muro
:help:
Grazie
Il check out l'ho rifatto da capo per l'ennesima volta, l'ant build ha successo.
Non e' che sbaglio la procedura per avviare l'applicazione? La classe Game la eseguo come Java Application, passando il parametro -Djava.library.path=../lib/macos e impostando la working directory a Diamonds/bin
La work directory e' diventata diamonds/ e il library path e' diamonds/lib/macos
La work directory e' diventata diamonds/ e il library path e' diamonds/lib/macos
Perfetto... Ora l'errore su it.diamonds.audio.SoundNotFoundException non me lo da' piu'. Pero' rimane quello sulla lib devil :mbe:
Forse vuole qualche altro parametro per poterla linkare :confused:
Boh, piu' tardi mi ci metto con un po' piu' di pazienza e magari cerco di documentarmi meglio su come cavolo funziona Java su Mac :muro:
Grazie mille
prova /D: java.library.path=lib/macos
In attesa di un nuovo check out (ho piallato pure OS X :D ), vorrei porvi un paio di domande:
- quale versione delle lwjgl stiamo usando? In particolare, quale versione della libreria devil ( :confused: ) Sto girando da un pezzo e pare (ma non ne sono del tutto sicuro) che su OS X ci siano dei problemi proprio con devil. Guardate qui (http://www.lwjgl.org/forum/viewtopic.php?p=7655&sid=d82ea0c496510a1a40cd4d29e122387c) se quello che ho trovato e' inerente al problema (onestamente non ci ho capito molto)
- c'e' qualcun altro, oltre me, che ha provato ad eseguire il codice su Mac?
- tutti quelli che stanno lavorando su Linux hanno l'accelerazione grafica abilitata?
Grazie
Il problema che hai sotto Mac OS X è un bug di DEVIL sotto quel sistema operativo che si verifica anche utilizzando DEVIL con il C/C++. Il problema sembra essere legato alle chiamate ILUT che noi al momento (e spero mai) non usiamo. Ho fatto la commit di nuove librerie native per LWJGL di DEVIL per Mac OS X. Dovrebbero risolvere il problema. Puoi confermare?
Questa mi piace davvero. Ho messo le nuove librerie native per Mac OS ed il server non fa più il build, mentre il locale lo fa. Come è possibile? La cosa interessante è che fallisce il test sull'engine, quando le librerie OpenGL, anche sotto Mac OS non sono state toccate di una virgola.
Il problema che hai sotto Mac OS X è un bug di DEVIL sotto quel sistema operativo che si verifica anche utilizzando DEVIL con il C/C++. Il problema sembra essere legato alle chiamate ILUT che noi al momento (e spero mai) non usiamo. Ho fatto la commit di nuove librerie native per LWJGL di DEVIL per Mac OS X. Dovrebbero risolvere il problema. Puoi confermare?
Reinstallo JDK1.5 + Eclipse e vi faccio sapere quanto prima...
Mi dispiace che il cambiamento delle lib abbia causato problemi al server :ops:
Questa mi piace davvero. Ho messo le nuove librerie native per Mac OS ed il server non fa più il build, mentre il locale lo fa. Come è possibile? La cosa interessante è che fallisce il test sull'engine, quando le librerie OpenGL, anche sotto Mac OS non sono state toccate di una virgola.
Stesso problema di cidimauro. Il test fallisce in maniera intermittente, il che suggerisce una dipendenza fra il test e "qualcos'altro".
La classe Engine va separata in due e bisogna isolare le parti non testabili :)
Ho reinstallato tutto...
Lanciando il build, ottengo un fallimento su testDisplaySize, dovuto alla classe ILU (sempre del package devil :mad: ):
[junit] Testsuite: it.diamonds.tests.TestEngine
[junit] Tests run: 2, Failures: 1, Errors: 0, Time elapsed: 1,342 sec
[junit] ------------- Standard Error -----------------
[junit] No display mode found.
[junit] No display mode found.
[junit] ------------- ---------------- ---------------
[junit] Testcase: testDisplaySize(it.diamonds.tests.TestEngine): FAILED
[junit] Display width must be 800 expected:<800> but was:<1024>
[junit] junit.framework.AssertionFailedError: Display width must be 800 expected:<800> but was:<1024>
[junit] at it.diamonds.tests.TestEngine.testDisplaySize(TestEngine.java:23)
BUILD FAILED
/Volumes/Gica HD/Sviluppo/workspace/Diamonds/build.xml:80: Test it.diamonds.tests.TestEngine failed
Difatti, tentando si eseguire l'applicazione Game, ottengo:
No display mode found.
Texture loading error due to +
org.lwjgl.LWJGLException: Could not load ilu library.
at org.lwjgl.devil.ILU.nCreate(Native Method)
at org.lwjgl.devil.ILU.create(ILU.java:170)
at it.diamonds.engine.Texture.loadTextureFromFile(Texture.java:63)
at it.diamonds.engine.Texture.<init>(Texture.java:53)
at it.diamonds.Game.loadTexture(Game.java:64)
at it.diamonds.Game.main(Game.java:31)
Sara' ancora un problema di path/link ecc. oppure ancora un bug?
Eppure, dal change log (http://lwjgl.org/changelog.php) , tale matzon sembrava aver risolto:
2005-05-22 13:09 matzon
* src/java/org/lwjgl/devil/: IL.java, ILU.java, ILUT.java: using
.dylibs for devil on mac
Servirebbero i sorgenti, e qualcuno che li capisce (il che mi esclude :p ).
Per avere solo quelli del package org.lwjgl.devil mi devo per forza scaricare anche tutto il resto? Spero di no... Piu' tardi ci provo e do' un'occhiata :confused: (sempre che il problema stia li').
Ciao
Le librerie native che ho messo io per Mac OS sono state ricompilate da un utente del forum di LWJGL, quindi non sono ufficiali. Probabilmente ulteriori modifiche ci saranno in tal senso nella prossima versione di LWJGL. A questo punto ti consiglio di dare un'occhiata al codice. Da quello che dice quell'utente è un problema legato alle chiamate ILUT che deve risolvere chi sviluppa DEVIL e non LWJGL.
Le librerie native che ho messo io per Mac OS sono state ricompilate da un utente del forum di LWJGL, quindi non sono ufficiali. Probabilmente ulteriori modifiche ci saranno in tal senso nella prossima versione di LWJGL. A questo punto ti consiglio di dare un'occhiata al codice. Da quello che dice quell'utente è un problema legato alle chiamate ILUT che deve risolvere chi sviluppa DEVIL e non LWJGL.
Ad occhio e croce ( :D ) il problema dovrebbe trovarsi nella funzione getLibraryPaths() della classe LWJGLUtil, che viene chiamata dalla funzione create() della classe ILU. La funzione getLibraryPaths() dovrebbe cercare di ricostruire il percorso dove trovare la libreria libILU a seconda della piattaforma in uso (quindi nel mio caso libILU.dylib).
La mia e' soltanto una supposizione, in quanto non riesco a capire benissimo come funziona questa funzione :fagiano:
public static String[] getLibraryPaths(String[] libNames, ClassLoader classloader) throws LWJGLException {
// need to pass path of possible locations of library to native side
List possible_paths = new ArrayList();
String libname;
String platform_lib_name;
switch (getPlatform()) {
case PLATFORM_WINDOWS:
libname = libNames[0];
platform_lib_name = libNames[1];
break;
case PLATFORM_LINUX:
libname = libNames[2];
platform_lib_name = libNames[3];
break;
case PLATFORM_MACOSX:
libname = libNames[4];
platform_lib_name = libNames[5];
break;
default:
throw new LWJGLException("Unknown platform: " + getPlatform());
}
String classloader_path = getPathFromClassLoader(libname, classloader);
if (classloader_path != null) {
log("getPathFromClassLoader: Path found: " + classloader_path);
possible_paths.add(classloader_path);
}
String lwjgl_classloader_path = getPathFromClassLoader("lwjgl", classloader);
if (lwjgl_classloader_path != null) {
log("getPathFromClassLoader: Path found: " + lwjgl_classloader_path);
possible_paths.add(lwjgl_classloader_path.substring(0, lwjgl_classloader_path.lastIndexOf(File.separator))
+ File.separator + platform_lib_name);
}
//add cwd path
possible_paths.add(platform_lib_name);
// Add all possible paths from java.library.path
String java_library_path = (String)AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
return System.getProperty("java.library.path");
}
});
StringTokenizer st = new StringTokenizer(java_library_path, File.pathSeparator);
while (st.hasMoreTokens()) {
String path = st.nextToken();
possible_paths.add(path + File.separator + platform_lib_name);
}
//create needed string array
String[] paths = new String[possible_paths.size()];
possible_paths.toArray(paths);
return paths;
}
dove la chiamata dalla classe ILU e' la seguente:
String[] iluPaths = LWJGLUtil.getLibraryPaths(new String[]{
"ILU", "ILU.dll",
"ILU", "libILU.so",
"ILU", "libILU.dylib"}, ILU.class.getClassLoader());
Cosa fa la funzione getClassLoader?
Comunque, la stringa iluPaths restituita da tale funzione viene usata come argomento della funzione nCreate() nella riga successiva, ed e' tale funzione che causa l'eccezione (probabilmente perche' iluPaths non e' corretta). La funzione nCreate() e' semplicemente questa (e non so cosa fa):
protected static native void nCreate(String[] iluPaths) throws LWJGLException;
Che mi dite?
Scusami, rispetto ai file precedenti, c'è stato un cambiamento o sbaglio nell'errore?
Scusami, rispetto ai file precedenti, c'è stato un cambiamento o sbaglio nell'errore?
Esatto, con la precedente versione non riusciva a trovare la libreria devil, ora invece non trova ILU :muro:
Scusate, ma ho avuto veramente pochissimo tempo per guardare e capire queste librerie... e non conoscendo ancora bene il linguaggio brancolo un po' nel buio. :mc:
Questo era l'errore precedente:
Texture loading error due to +
org.lwjgl.LWJGLException: Could not load devil library.
at org.lwjgl.devil.IL.nCreate(Native Method)
at org.lwjgl.devil.IL.create(IL.java:599)
Mentre questo e' quello attuale, con la differenza che ora nemmeno il build va a buon fine:
No display mode found.
Texture loading error due to +
org.lwjgl.LWJGLException: Could not load ilu library.
at org.lwjgl.devil.ILU.nCreate(Native Method)
at org.lwjgl.devil.ILU.create(ILU.java:170)
:boh:
Scusa ma c'è sicuramente un problema di library path. L'utente del forum di LWJGL diceva di avere alcun problemi, ma non che non gli trovava la libreria. Facciamo una bella cosa: scaricati LWJGL per Mac OS ed usa SOLO ED ESCLUSIVAMENTE ciò che trovi lì. Non scaricare niente dal sito di DEVIL. Bisogna usare solo ciò che sta nel pacchetto di LWJGL. La libreria deve trovartela per forza a meno che tu non abbia sbagliato il java library path. Prova a copiarti i file di libreria un po ovunque nelle cartelle del progetto: forse le va a cercare da qualche altra parte.
ghiotto86
24-09-2005, 18:16
allora raga ho provato a fare il build del progetto con ant e...
Buildfile: C:\Documents and Settings\ghiotto86\workspace\Diamonds\build.xml
init:
[mkdir] Created dir: C:\Documents and Settings\ghiotto86\workspace\Diamonds\reports
[mkdir] Created dir: C:\Documents and Settings\ghiotto86\workspace\Diamonds\reports\html
compile:
check:
[checkstyle] Running Checkstyle 4.0-beta5 on 17 files
test:
BUILD FAILED
C:\Documents and Settings\ghiotto86\workspace\Diamonds\build.xml:80: Could not create task or type of type: junit.
Ant could not find the task or a class this task relies upon.
This is common and has a number of causes; the usual
solutions are to read the manual pages then download and
install needed JAR files, or fix the build file:
- You have misspelt 'junit'.
Fix: check your spelling.
- The task needs an external JAR file to execute
and this is not found at the right place in the classpath.
Fix: check the documentation for dependencies.
Fix: declare the task.
- The task is an Ant optional task and the JAR file and/or libraries
implementing the functionality were not found at the time you
yourself built your installation of Ant from the Ant sources.
Fix: Look in the ANT_HOME/lib for the 'ant-' JAR corresponding to the
task and make sure it contains more than merely a META-INF/MANIFEST.MF.
If all it contains is the manifest, then rebuild Ant with the needed
libraries present in ${ant.home}/lib/optional/ , or alternatively,
download a pre-built release version from apache.org
- The build file was written for a later version of Ant
Fix: upgrade to at least the latest release version of Ant
- The task is not an Ant core or optional task
and needs to be declared using <taskdef>.
- You are attempting to use a task defined using
<presetdef> or <macrodef> but have spelt wrong or not
defined it at the point of use
Remember that for JAR files to be visible to Ant tasks implemented
in ANT_HOME/lib, the files must be in the same directory or on the
classpath
Please neither file bug reports on this problem, nor email the
Ant mailing lists, until all of these causes have been explored,
as this is not an Ant bug.
Total time: 5 seconds
non sono molto esperto, che significa??
Scusa ma c'è sicuramente un problema di library path. L'utente del forum di LWJGL diceva di avere alcun problemi, ma non che non gli trovava la libreria. Facciamo una bella cosa: scaricati LWJGL per Mac OS ed usa SOLO ED ESCLUSIVAMENTE ciò che trovi lì. Non scaricare niente dal sito di DEVIL. Bisogna usare solo ciò che sta nel pacchetto di LWJGL. La libreria deve trovartela per forza a meno che tu non abbia sbagliato il java library path. Prova a copiarti i file di libreria un po ovunque nelle cartelle del progetto: forse le va a cercare da qualche altra parte.
Se lanci i test di ant ti dice dove va a cercare le dll, scrivendolo su schermo.
BUILD FAILED
C:\Documents and Settings\ghiotto86\workspace\Diamonds\build.xml:80: Could not create task or type of type: junit.
Devi aggiungere il plugin di junit nella lib di Ant.
[NoS]-roby87
24-09-2005, 18:41
Devi aggiungere il plugin di junit nella lib di Ant.
è un plugin che devo scaricare oppure è inside eclipse??
come faccio a metterlo nella lib di ant?? :fagiano:
ghiotto86
24-09-2005, 18:41
opps nick di mi fratel :sofico:
Q. When I try and run the Ant test target I get an error saying something like "Could not create task or type of type: junit". What's wrong?
A. Ant needs to find the junit.jar library on your classpath. Junit.jar is distributed with the source distribution (which you will need to run tests anyway). Either copy junit.jar to your Ant's lib directory (within ANT_HOME) or add it to your classpath manually.
Consiglio. Quando avete un errore, buttate il messaggio d'errore in google, sarete sorpresi da quante persone hanno avuto lo stesso problema e quante persone lo hanno risolto :D
ghiotto86
24-09-2005, 19:18
Q. When I try and run the Ant test target I get an error saying something like "Could not create task or type of type: junit". What's wrong?
A. Ant needs to find the junit.jar library on your classpath. Junit.jar is distributed with the source distribution (which you will need to run tests anyway). Either copy junit.jar to your Ant's lib directory (within ANT_HOME) or add it to your classpath manually.
Consiglio. Quando avete un errore, buttate il messaggio d'errore in google, sarete sorpresi da quante persone hanno avuto lo stesso problema e quante persone lo hanno risolto :D
hai ragione.
bhe ho provato a cercare la ant home ma non ho trovato niente :cry:
lo sai che non sono pratico ne di java ne di eclipse :D
ho provato anche nelle proprietà del progetto spuntando tutit i jar junit lwjgl ecc ma niente. :(
hai ragione.
bhe ho provato a cercare la ant home ma non ho trovato niente :cry:
lo sai che non sono pratico ne di java ne di eclipse :D
ho provato anche nelle proprietà del progetto spuntando tutit i jar junit lwjgl ecc ma niente. :(
Se non sbaglio, la soluzione e' questa:
http://www.hwupgrade.it/forum/showpost.php?p=9484751&postcount=90
:)
Dimenticavo: il file da aggiungere e' il junit.jar ch trovi nella directory Diamonds/lib
ghiotto86
24-09-2005, 21:27
Se non sbaglio, la soluzione e' questa:
http://www.hwupgrade.it/forum/showpost.php?p=9484751&postcount=90
:)
Dimenticavo: il file da aggiungere e' il junit.jar ch trovi nella directory Diamonds/lib
ok fatto. grazie tante.
e ora come faccio a far partire il programma??? :confused:
ok fatto. grazie tante.
e ora come faccio a far partire il programma??? :confused:
Prova cosi':
apri il package it.diamonds che c'e' nei sorgenti
apri il file Game.java
click su "Run" nel menu di Eclipse
click sulla voce "Run" del menu a tendina; si apre una finestra nella quale puoi inserire alcuni parametri
vai su "Arguments" e, se sei su Windows", nello spazio "VM arguments" inserisci
-Djava.library.path=lib/win32
e assicurati che nello spazio "Working directory" ci sia
${workspace_loc:Diamonds}
Ora clicca Run! :)
Fammi sapere se va... A me su Mac non parte :muro:
ghiotto86
24-09-2005, 21:48
ehm...
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at org.lwjgl.Sys$1.run(Sys.java:67)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.<clinit>(Sys.java:65)
at org.lwjgl.opengl.Display.<clinit>(Display.java:104)
at it.diamonds.engine.DisplayImpl.findDisplayMode(DisplayImpl.java:80)
at it.diamonds.engine.DisplayImpl.initDisplay(DisplayImpl.java:107)
at it.diamonds.engine.DisplayImpl.<init>(DisplayImpl.java:14)
at it.diamonds.engine.Engine.create(Engine.java:23)
at it.diamonds.Game.createEngine(Game.java:50)
at it.diamonds.Game.main(Game.java:31)
come faccio a dire ad eclipse che deve cercare la dll in diamonds/lib/win32 ???
ghiotto86
24-09-2005, 21:50
abbiamo postato insieme.
forse ci sto a capì qualcosina :D solo sto fatto dei parametri alla vm non mi venivano :D grazie ora veod se va
Dimenticavo, se e' la prima volta che vai su Run, prima ti chiede di creare una nuova "Run configuration"; devi crearla come "Java Application" (click su "Java Application" e poi "New").
Spero di non dimenticare altro :)
ghiotto86
24-09-2005, 21:52
wow.
bello il diamante :sofico:
ecco ora mi servirebbe un po qualche guida e tutorial su come usare lwjgl :sofico:
avevo visot il tuo post nel 3d inerente alle guide ma alcuni link non funzionano :(
wow.
bello il diamante :sofico:
ecco ora mi servirebbe un po qualche guida e tutorial su come usare lwjgl :sofico:
Solo su OS X non va! Uffa :( :cry: :incazzed:
avevo visot il tuo post nel 3d inerente alle guide ma alcuni link non funzionano :(
I tre su LWJGL e JOAL li ho appena provati e funzionano. Quali sono quelli che non vanno?
ghiotto86
24-09-2005, 22:00
Solo su OS X non va! Uffa :( :cry: :incazzed:
I tre su LWJGL e JOAL li ho appena provati e funzionano. Quali sono quelli che non vanno?
ah ok ora si.
oggi pomeriggio non andavano.
va bene, "sbarierò" un po :D
hai scoperto perchè non va su osx ti da qualche errore o robe del genere? :confused:
ah ok ora si.
oggi pomeriggio non andavano.
va bene, "sbarierò" un po :D
hai scoperto perchè non va su osx ti da qualche errore o robe del genere? :confused:
Boh! Non riesce a caricare delle classi dalle librerie LWJGL, e non capisco perche'! Eppure altre classi, nello stesso path (cioe' lib/macos) le vede e le carica.
Chenneso'! Io gia' non amo particolarmente Java (e non lo conosco gran che), il Mac ce l'ho da un paio di mesi e non sono ancora molto pratico, gli IDE li odio tutti... e quindi sono qui che bestemmio e bevo caffe' :cool:
Pero' mi viene il dubbio che possa avere a che fare con qualche impostazione del monitor o roba simile, perche' quando lancio l' Ant build ottengo un fallimento proprio sul test relativo alla dimensione del display (o della finestra che tenta di aprire):
[junit] Testsuite: it.diamonds.tests.TestEngine
[junit] Tests run: 2, Failures: 1, Errors: 0, Time elapsed: 1,342 sec
[junit] ------------- Standard Error -----------------
[junit] No display mode found.
[junit] No display mode found.
[junit] ------------- ---------------- ---------------
[junit] Testcase: testDisplaySize(it.diamonds.tests.TestEngine): FAILED
[junit] Display width must be 800 expected:<800> but was:<1024>
[junit] junit.framework.AssertionFailedError: Display width must be 800 expected:<800> but was:<1024>
[junit] at it.diamonds.tests.TestEngine.testDisplaySize(TestEngine.java:23)
BUILD FAILED
/Volumes/Gica HD/Sviluppo/workspace/Diamonds/build.xml:80: Test it.diamonds.tests.TestEngine failed
Non saprei...
Vabbe', per oggi e' sufficiente.
Ciao
ghiotto86
24-09-2005, 22:20
hai provato a cambiare la risoluzione del tuo schermo e metterla a 800x600 giusto per vedere se va
Mi provate questo link per cortesia?
http://fcarucci.homeip.net:8080/cruisecontrol/buildresults.jsp
EDIT: Funziona! :D
ghiotto86
25-09-2005, 10:04
Mi porvate questo link per cortesia?
http://fcarucci.homeip.net:8080/cruisecontrol/buildresults.jsp
che dovrebbe fare???
a me da questo
BUILD COMPLETE - build.45
Date of build: 09/25/2005 08:00:43
Time to build: 25 seconds
Last changed: 09/24/2005 20:35:07
Last log entry: [cisc] refactoring richiesto da fek;)
Build Artifacts
[NoS]-roby87
25-09-2005, 11:42
Perfetto :)
senti fek vorrei qualche delucidazione riguardo i vari task da affrontare;
cioè uno può fare il proprio task indipendentemente dagli altri task??
come fanno poi a funzionare tutti insieme?? :confused:
ghiotto86
25-09-2005, 11:43
aridaglie col nicj di mi fratell
BlueDragon
25-09-2005, 13:31
Miracolo! Si avvia senza errori, vedo il Diamante e sento il suono...grazie in particolare a Gica (ho risolto leggendo un paio di tuoi post ;))
Ora che l'ambiente è apposto finalmente ho qualche possibilità di scrivere del codice :)
BlueDragon
25-09-2005, 13:51
Avevo una mezza intenzione di fare il task 2.6, così per curiosità ho introdotto una riga di codice in Game engine per riprodurre un suono premendo D sulla tastiera...
Dopo un po' di volte che viene emesso il suono succede questo:
Exception in thread "main" org.lwjgl.openal.OpenALException: OpenAL error: Invalid Value (40963)
at org.lwjgl.openal.Util.checkALError(Util.java:56)
at org.lwjgl.openal.AL10.alGenSources(AL10.java:682)
at it.diamonds.audio.Sound.initSource(Sound.java:101)
at it.diamonds.audio.Sound.<init>(Sound.java:34)
at it.diamonds.Game.playSound(Game.java:90)
at it.diamonds.Game.processKeyboard(Game.java:122)
at it.diamonds.Game.main(Game.java:47)
Proverò ad indagare ma la mia conoscenza di LWJGL (e della programmazione Audio/Grafica) è prossima allo zero, quindi intanto lo posto qui così mentre studio LWJGL qualche esperto può commentare l'evento :)
ghiotto86
25-09-2005, 17:32
senti fek vorrei qualche delucidazione riguardo i vari task da affrontare;
cioè uno può fare il proprio task indipendentemente dagli altri task??
come fanno poi a funzionare tutti insieme??
non sono dipendenti uno dall'altro??
mi risponderesti fek??
anche qualcun'altro eh :D
Miracolo! Si avvia senza errori, vedo il Diamante e sento il suono...grazie in particolare a Gica (ho risolto leggendo un paio di tuoi post ;))
Ora che l'ambiente è apposto finalmente ho qualche possibilità di scrivere del codice :)
Non ringraziare me, mi sono semplicemente limitato a riportare suggerimenti e soluzioni indicati da altri, in particolare VICIUS, cisc e fek ;)
senti fek vorrei qualche delucidazione riguardo i vari task da affrontare;
cioè uno può fare il proprio task indipendentemente dagli altri task??
come fanno poi a funzionare tutti insieme??
non sono dipendenti uno dall'altro??
Si', i task di ogni storia cercano di essere il piu' indipendenti l'uno dall'altro possibile. Ovviamente ci saranno sempre delle dipendenze, ma in questo caso vi dovete mettere d'accordo e parlare con chi implementa il test dal quale dipendete.
Ogni task aggiunge qualche funzione all'applicazione, usando i risultati dei test delle storie precedenti: la somma di tutti i task e' il gioco.
ghiotto86
25-09-2005, 18:57
Si', i task di ogni storia cercano di essere il piu' indipendenti l'uno dall'altro possibile. Ovviamente ci saranno sempre delle dipendenze, ma in questo caso vi dovete mettere d'accordo e parlare con chi implementa il test dal quale dipendete.
Ogni task aggiunge qualche funzione all'applicazione, usando i risultati dei test delle storie precedenti: la somma di tutti i task e' il gioco.
ok ora mi è chiaro.
no perchè alcuni task sono strettamente legati (e penso che man mano che andiamo avanti con la storia sia ancora + grande il legame) indi ci dovrebbe essere molta collaborazione tra i coders.
thanks per la risposta
BlueDragon
25-09-2005, 22:34
Avevo una mezza intenzione di fare il task 2.6, così per curiosità ho introdotto una riga di codice in Game engine per riprodurre un suono premendo D sulla tastiera...
Dopo un po' di volte che viene emesso il suono succede questo:
Exception in thread "main" org.lwjgl.openal.OpenALException: OpenAL error: Invalid Value (40963)
at org.lwjgl.openal.Util.checkALError(Util.java:56)
at org.lwjgl.openal.AL10.alGenSources(AL10.java:682)
at it.diamonds.audio.Sound.initSource(Sound.java:101)
at it.diamonds.audio.Sound.<init>(Sound.java:34)
at it.diamonds.Game.playSound(Game.java:90)
at it.diamonds.Game.processKeyboard(Game.java:122)
at it.diamonds.Game.main(Game.java:47)
Proverò ad indagare ma la mia conoscenza di LWJGL (e della programmazione Audio/Grafica) è prossima allo zero, quindi intanto lo posto qui così mentre studio LWJGL qualche esperto può commentare l'evento :)
Non ho avuto ancora la possibilità di guardare la documentazione di LWJGL, comunque dopo aver riguardato il codice di Sound ed aver fatto un paio di prove la questione sembra essere il fatto che allochiamo in qualche modo delle risorse sul nostro audio AL10 ma non le liberiamo mai (freeMemory di Sound non viene chiamato). La soluzione più semplice, cioé chiamare il metodo freeMemory subito dopo aver fatto sound.play() non è applicabile perché facendo così non si sente alcun suono (evidentemente le risorse vengono deallocate prima ancora che il suono sia emesso). Inserendo un Thread.sleep(2000) e poi facendo freeMemory dopo ogni play, tutto funziona correttamente, ma non è ovviamente una buona soluzione :)
Comunque dopo aver fatto questi test con Sound ho deciso di riallinearmi al repository e....sorpresa! E' apparsa una nuova classe Gem ed un sacco di errori che impediscono di lanciare il programma. Ma sul repository non ci dovrebbe essere sempre una copia funzionante?
Comunque dopo aver fatto questi test con Sound ho deciso di riallinearmi al repository e....sorpresa! E' apparsa una nuova classe Gem ed un sacco di errori che impediscono di lanciare il programma. Ma sul repository non ci dovrebbe essere sempre una copia funzionante?
Si'. E non dovrebbe mai esserci una classe non testata. Controllo.
EDIT: La build e' verde al momento.
Si'. E non dovrebbe mai esserci una classe non testata. Controllo.
Qui funziona(tm) :D
ciao ;)
cdimauro
26-09-2005, 10:46
Mi provate questo link per cortesia?
http://fcarucci.homeip.net:8080/cruisecontrol/buildresults.jsp
EDIT: Funziona! :D
Could not connect to remote server
You tried to access the address http://fcarucci.homeip.net:8080/cruisecontrol/buildresults.jsp, which is currently unavailable. Please make sure that the Web address (URL) is correctly spelled and punctuated, then try reloading the page.
:cry:
Il mio webserver sul tablet e' momentaneamente giu'. Non ho fatto in tempo a tirarlo su stamattina :p
BlueDragon
26-09-2005, 23:18
Qui funziona(tm) :D
ciao ;)
Ora funziona anche a me :)
Mi sa che per aggiornare il progetto con l'ultima versione del repository non basta fare click-destro su Diamonds[trunk]->ReplaceWith->Latest from Repository...stasera ho provato ad aggiornare in questo modo e rimanevano gli errori, poi invece aggiornando una per volta le cartelle mi ha scaricato i file mancanti di ognuna ed è andato tutto apposto.
Cmq oggi mi sono letto le varie lezioni di tutorial su OpenAL pubblicate su lwjgl.org e stasera ho fatto un altra prova per quando riguarda quell'eccezione: capita quando viene generata la 64esima fonte (source) del suono... Come è scritto sulle lezioni di OpenAL, si possono avere varie fonti ma non sono infinite... ;)
Ah quanto pare subversion è ancora giu. :muro:
ciao ;)
la mia è una situazione tipica: Eclipse 3.1, Subversion, Subclipse e tutto quanto (ho seguito tutte le istruzioni del thread "[Diamonds] Si parte!").
eppure non capisco come devo fare in Eclipse a compilare e far partire il programma... :mbe:
RaouL_BennetH
03-10-2005, 18:04
la mia è una situazione tipica: Eclipse 3.1, Subversion, Subclipse e tutto quanto (ho seguito tutte le istruzioni del thread "[Diamonds] Si parte!").
eppure non capisco come devo fare in Eclipse a compilare e far partire il programma... :mbe:
io faccio tasto destro nel sorgente->Run As Java Application.
cionci, puoi spostarlo nel topic dei problemi per cortesia?
71104, ti da' errore? oppure non sai proprio come farlo partire da dentro Eclipse?
La compilazione e' in background. Per farlo partire "Run as Java application" e devi configurare il java.library.path.
Il che mi ricorda che ci serve un bel "Getting started" che passo passo spieghi come installare Eclipse, Subversion, Ant, fare il check out del progetto, e farlo partire e fare il commit.
Chi si offre volontario?
71104, ti da' errore? oppure non sai proprio come farlo partire da dentro Eclipse? è che non ci riesco: i comandi Run et similia sono tutti grayed, e pure tutti quelli per il build, come se Eclipse non lo considerasse un progetto (come se non ci fosse nessun progetto aperto).
La compilazione e' in background. Per farlo partire "Run as Java application" e devi configurare il java.library.path. aaaaaaaahhhh, ecco, il java.library.path, ma certo... :eh: :lamer:
e sarebbe...? :huh:
Chi si offre volontario? *e tutti guardano VICIUS* :D
io faccio tasto destro nel sorgente->Run As Java Application. quale sorgente? sono tanti... :help:
quale sorgente? sono tanti... :help:
La classe principale è it.diamonds.Game
ciao ;)
quale sorgente? sono tanti... :help:
Game.java
ordunque, cliccando col destro sul sorgente di Game.java non mi appare nessun Run As (e ho Eclipse 3.1), comunque mi avvicino alla soluzione: dopo aver aperto Game.java mi si è... "sgrayato" il comando Run (il tasto verde con la freccia bianca); l'ho cliccato e nella finestra apparsa ho scritto "Diamonds" come Project e "Game" come Main class; ho cliccato su Run ma non avvia, mi mostra un messaggio di errore: "Could not find the main class. Program will exit." aho', io gliel'ho specificata... e ho impostato il Build automatico (la check nel menu Project)...
ho anche provato a deselezionare "Build automatically" e a fare il Build manuale, sia con "Build all" che con "Build project", ma io clicco e non succede nulla...
non ho molto feeling con questo Eclipse :help:
Visual Studio è più facile da usare :help:
up! dunque? :(
possibile sia così difficile?
qualcuno mi descrive passo-passo quello che avrei dovuto fare per avviare il programma subito dopo aver seguito le istruzioni del primo post del thread "[Diamonds] Si parte!" ?
Probabilmente nessuno ha incontrato il tuo problema, per questo non sappiamo risolvertelo.
Hai fatto il check out del progetto?
Se si', allora con right click su Game.java dovrebbe apparirti il menu "Run as...".
Dentro a quel menu dovrebbe esserci un'opzione "Run as Java Application". Se non c'e', sicuramente c'e' l'opzione "Run...". La selezioni e ti appare una finestra di dialogo.
Allega qualche sshot e vediamo come andare avanti.
da dove ti ha lasciato fek:D, se nel sotto menù di java application non c'hai Game, fai new, ed apparirà, quindi vai un arguments, in VM arguments metti -Djava.library.path=lib/win32 se hai winzozz, e poi dai run e dovrebbe partire
ecco qua: nessun comando Run As... e comunque cliccando sul tasto Run As (tasto verde con freccia bianca e cosetto rosso) il menu Run As è vuoto :huh:
il progetto è fresco di checkout (finito in questo istante)...
ora provo a fare come suggerisce cisc.
edit:
GROAR!!!!! IO VORREI SAPERE PERCHE' NON RIESCO A METTERE FILES IN ATTACHMENT... :mad: :mad:
edit2:
troppo grande... -__-'
105 kb ed è troppo grande...
e io come dovrei fare secondo voi? -__-'
sorry, oggi niente screenshot...
cisc, ho fatto tutto quello che hai detto (che avevo già fatto prima tranne mettere quella stringa in VM arguments) ma non parte: non trova la main class... :cry:
Attacca Windows Remote Desktop e apri le porte sul firewall. Poi quando torno a casa stasera mi chiami in MSN, mi attacco al tuo PC e te lo configuro io.
Se e' una cosa banale e non funziona perche' fai il lamentino e non hai voglia di sbatterti un po' con Eclipse pero' poi ti strozzo :D
^TiGeRShArK^
05-10-2005, 08:18
La compilazione e' in background. Per farlo partire "Run as Java application" e devi configurare il java.library.path.
ah vero...
io mi ero dimenticato di settare quello.....
ma cmq mi funziona lo stesso....:mbe:
partono sia i test che il gioco correttamente.....
mah! misteri di eclipse! :D
Attacca Windows Remote Desktop e apri le porte sul firewall. Poi quando torno a casa stasera mi chiami in MSN, mi attacco al tuo PC e te lo configuro io.
Se e' una cosa banale e non funziona perche' fai il lamentino e non hai voglia di sbatterti un po' con Eclipse pero' poi ti strozzo :D
guarda che non me lo sono inventato per non lavorare, altrimenti anziché inventare tutta sta storia semplicemente ti dicevo "non mi va di partecipare al progetto"; io ho seguito passo passo tutte le tue istruzioni, ho scaricato Subclipse ho configurato gli URL che avete detto e ho fatto "Check out as project"; ho scaricato tutto il progetto ma la main class non esiste e non me lo avvia. :cry:
ma voi di preciso che cosa avete fatto subito dopo aver fatto il checkout? avete fatto direttamente run as???
comunque fek, io non uso XP (ho il 2000) perciò niente Windows Remote Desktop; potrei installare VNC ma non posso ricevere connessioni perché il firewall lo configura il babbo e di aprire porte non se ne parla neanche :cry:
comunque ti chiamo lo stesso su MSN e ti mando tutti gli screen shot che vuoi
Oki, facciamo con gli sshot allora, e poi ti strozzo :D
71104, hai risolto?
Selezionando "Diamonds [trunk]" nel package explorer (senza aver aperto nessun file) e facendo RUN --> RUN AS --> Java Application dalla barra dei menu, Eclipse non ti mostra una finestrella con una barra di stato che dice "Searching for main types"? Se si, poi ti basta selezionare Game e impostare opportunamente java.library.path. Questo almeno fino a un paio di settimane fa, la mia copia locale non l'aggiorno da... un po'! :(
Gica
no, non ho risolto manco penniente, le ho provate tutte...
ieri ho parlato su MSN con fek e con TigerShark, ma non c'è stato niente da fare: non mi trova la c***o di main class :mad:
oggi provo a reinstallare Eclipse (lo faccio tra una mezz'ora che mo esco per qualche min.)
CE L'HO FATTA, E' PARTITO!!!! O___O'
ho dovuto reinstallare Eclipse ma è partito o_o'
la versione che ho mostra il diamante di anta che è possibile muovere in 4 direzioni usando i tasti freccia (le direzioni diventano 8 se si considerano le combinazioni di 2 tasti freccia :D) molto bello comunque :)
cdimauro
07-10-2005, 11:10
Con Linux come dovrebbe partire il progettino? Con java -jar Diamonds.jar ottengo questo:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at org.lwjgl.Sys$1.run(Sys.java:67)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.<clinit>(Sys.java:65)
at org.lwjgl.opengl.Display.<clinit>(Display.java:104)
at it.diamonds.engine.DisplayImpl.findDisplayMode(Unknown Source)
at it.diamonds.engine.DisplayImpl.initDisplay(Unknown Source)
at it.diamonds.engine.DisplayImpl.<init>(Unknown Source)
at it.diamonds.engine.Engine.create(Unknown Source)
at it.diamonds.Game.createEngine(Unknown Source)
at it.diamonds.Game.main(Unknown Source)
:(
Devi aggiungere il famoso -Djava.library.path=lib/linux
C'è anche uno script .sh in bin per fare partire tutto con un solo comando.
ciao ;)
^TiGeRShArK^
07-10-2005, 17:28
ehm...
problemino...
mi fallisce un test...
[junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0,911 sec
[junit] Testcase: testCollisionSoundNearWall(it.diamonds.tests.TestGemCollis
ionSound): FAILED
[junit] expected:<16.01> but was:<32.010002>
[junit] junit.framework.AssertionFailedError: expected:<16.01> but was:<32.0
10002>
[junit] at it.diamonds.tests.TestGemCollisionSound.testCollisionSoundNea
rWall(TestGemCollisionSound.java:39)
e questo senza aver modificato niente ancora....
qualcuno sa niente???
io intanto vedo se riesco a capire il motivo...
^TiGeRShArK^
07-10-2005, 17:37
forse ho capito...
ki sta riducendo la dimensione della gemma ha fatto un commit parziale....
quindi il test ancora si aspetta ke la dimensione / 2 sia 64/2 = 32, invece ora si ha 32/2=16 e ovviamente l'asserzione fallisce.....
DANIELECOTTANTOTTTOOOOOO?!?!?
c pensi tu o devo farlo io???
cmq MAI fare commit se la build fallisce x il futuro! :Prrr:
a proposito di commit io non ho ben chiara una cosa: come si fa a sincronizzare il lavoro? mettiamo che io faccio un update, poi TigerShark ne fa un altro, io faccio una modifica, TigerShark ne fa un'altra, io faccio il commit, e TigerShark pure; la mia modifica viene cancellata o sbaglio? :confused:
oppure il server fa automaticamente il merge? e come si comporta il server se uno stesso file è stato modificato in due modi diversi?
forse ho capito...
ki sta riducendo la dimensione della gemma ha fatto un commit parziale....
quindi il test ancora si aspetta ke la dimensione / 2 sia 64/2 = 32, invece ora si ha 32/2=16 e ovviamente l'asserzione fallisce.....
DANIELECOTTANTOTTTOOOOOO?!?!?
c pensi tu o devo farlo io???
cmq MAI fare commit se la build fallisce x il futuro! :Prrr:
Prova a fixarlo te. Daniele fino a domani alle 2 non puo sistemarlo.
ciao ;)
a proposito di commit io non ho ben chiara una cosa: come si fa a sincronizzare il lavoro? mettiamo che io faccio un update, poi TigerShark ne fa un altro, io faccio una modifica, TigerShark ne fa un'altra, io faccio il commit, e TigerShark pure; la mia modifica viene cancellata o sbaglio? :confused:
oppure il server fa automaticamente il merge? e come si comporta il server se uno stesso file è stato modificato in due modi diversi?
Se i file sono diversi il problema non si pone. Se sono sullo stesos file tenta di fare il merge in automatico e se si crea un conflitto allora eclipse ti chiede di fare un merge manuale modifcando il file.
ciao ;)
Se i file sono diversi il problema non si pone. Se sono sullo stesos file tenta di fare il merge in automatico e se si crea un conflitto allora eclipse ti chiede di fare un merge manuale modifcando il file. capito; quindi durante un eventuale lavoro di merge manuale il commit da parte di altri utenti rimane bloccato finché non ho finito?
a proposito di commit io non ho ben chiara una cosa: come si fa a sincronizzare il lavoro? mettiamo che io faccio un update, poi TigerShark ne fa un altro, io faccio una modifica, TigerShark ne fa un'altra, io faccio il commit, e TigerShark pure; la mia modifica viene cancellata o sbaglio? :confused:
oppure il server fa automaticamente il merge? e come si comporta il server se uno stesso file è stato modificato in due modi diversi?
Una buona regola di programmazione quando si usa un CVS o SVN è di fare l'update sia prima di iniziare a fare le modifiche, sia prima di fare la commit vera e propria. Così se c'è qualche conflitto tra le modifiche fatte da te e l'ultimo aggiornamento, le puoi visionare con l'editor apposito di Eclipse e risolvere :)
DanieleC88
08-10-2005, 12:26
forse ho capito...
ki sta riducendo la dimensione della gemma ha fatto un commit parziale....
quindi il test ancora si aspetta ke la dimensione / 2 sia 64/2 = 32, invece ora si ha 32/2=16 e ovviamente l'asserzione fallisce.....
DANIELECOTTANTOTTTOOOOOO?!?!?
c pensi tu o devo farlo io???
cmq MAI fare commit se la build fallisce x il futuro! :Prrr:
Lo so benissimo, purtroppo ho notato l'errore. Il problema è che il test della gemma funzionava (per questo ho fatto il commit) e non avevo notato che quello fallisse. Ho provato subito a correggere, ma anche avendo valori che credevo giusti il test falliva. Mi ci rimetto a lavorare appena torno a casa, forse romperò un po' anche VICIUS. :p
Prova a fixarlo te. Daniele fino a domani alle 2 non puo sistemarlo.
ciao ;)
Come fai a sapere delle 2? Cmq è vero, ancora non torno a casa. ;)
allora, io adesso vorrei fare un primo commit temporaneo, anche se credo che ci saranno altre cose da modificare, perché le mie modifiche servono a Danilo; il programma si avvia correttamente e i test sono tutti verdi (a parte il fatto che ne ho dovuto correggere uno perché VICIUS non aveva previsto l'incompatibilità tra le coordinate di Extents e quelle degli Sprite).
come faccio adesso a fare il commit senza cancellare le eventuali modifiche fatte da altri da ieri sera a oggi? faccio prima un update da me? non rischio di cancellare le mie modifiche? help plz :help:
DanieleC88
08-10-2005, 14:00
faccio prima un update da me? non rischio di cancellare le mie modifiche? help plz :help:
No, i conflitti non li sovrascrive.
ho fatto sto commit; da me funzionava tutto, test tutti verdi, ora sto provando a fare un checkout in una nuova dir e a farlo partire (speriamo bene O.o' se ho rotto la build fek mi sderena ^^')
a proposito... fek e VICIUS, ma voi due vi eccitate quando leggete i miei post o cosa...? :mbe: Danilo mi ha detto la password per fare i commit...
DanieleC88
08-10-2005, 15:16
a proposito... fek e VICIUS, ma voi due vi eccitate quando leggete i miei post o cosa...? :mbe: Danilo mi ha detto la password per fare i commit...
:rotfl:
:rotfl: La immaginavo questa reazione.... BUAHAHAH :rotfl:
:rotfl:
P.S.: ...ma chi è Danilo? :stordita:
MHWUAHUWHUWAHUWHA funziona :D
test tutti verdi e programma apparentemente funzionante
adesso dopo questo commit provvisorio devo sapere alcune cose: quando la gemma tocca il fondo dell'Extent devo gestirlo come una collissione con le pareti? devo riprodurre il suono e far smettere di pulsare? anche perché credo che ci sia un piccolo errore: una volta che la gemma tocca l'Extent se continua a pulsare la sua dimensione aumenta e diminuisce, quindi siccome non può uscire dal bordo si allontana e si riavvicina un po' (è troppo forte :D); questa cosa va eliminata, giusto?
^TiGeRShArK^
08-10-2005, 22:03
P.S.: ...ma chi è Danilo? :stordita:
IOOOOOOOoooooOOOOOOO!!!!!! :p
cdimauro
10-10-2005, 13:54
Devi aggiungere il famoso -Djava.library.path=lib/linux
Perché per la versione Windows basta un doppio click su Diamonds.exe e parte senza problemi? :asd: :D :p
Ma l'archivio col giochino che è stato fatto lo si può distribuire in giro oppure è esclusivamente per uso personale per adesso?
Perché per la versione Windows basta un doppio click su Diamonds.exe e parte senza problemi? :asd: :D :p
Ma l'archivio col giochino che è stato fatto lo si può distribuire in giro oppure è esclusivamente per uso personale per adesso?
Ora c'è anche un diamonds.sh per linux e mac.
ciao ;)
State facendo i bravi vero? :)
State facendo i bravi vero? :)
Fino ad ora si. :D
ciao ;)
^TiGeRShArK^
10-10-2005, 22:37
State facendo i bravi vero? :)
the big brother knows everything!!! :D
cmq x ora m sa ke c siamo comportati abbastanza bene.... a parte qualcuno ke deve imparare a fare ant check!! :sofico:
(skelzo pwd del repository! :D)
cmq x ora m sa ke c siamo comportati abbastanza bene.... a parte qualcuno ke deve imparare a fare ant check!! :sofico: ho imparato :Prrr:
Sono l'unico al quale il programma non funziona ne' su Linux, ne' su Mac... :(
Che vergogna :sob:
Vabbe', ci giochero' quando sara' pronto :fagiano:
Vi tengo d'occhio anche da una PSP :)
Sono l'unico al quale il programma non funziona ne' su Linux, ne' su Mac... :(
Che vergogna :sob:
Vabbe', ci giochero' quando sara' pronto :fagiano:
Su mac non ti posso aiutare ma su linux si. Qual'è il problema? mesaggi di errore strani?
ciao ;)
Su mac non ti posso aiutare ma su linux si. Qual'è il problema? mesaggi di errore strani?
ciao ;)
A differenza che su Mac, dove la build fallisce con questo errore
BUILD FAILED
/Volumes/Gica HD/Sviluppo/workspace/Diamonds/build.xml:58: Test it.diamonds.tests.TestCollision failed
su Linux la build va a buon fine, assieme a tutti i tests, ma quando lancio l'applicazione ottengo questo:
The current display mode is not available due to org.lwjgl.LWJGLExeption: Could not choose visual
Qualche idea?
Cmq non e' urgente... non mi ci rimettero' a litigare prima di giovedi' sera!
Grazie,
Gica
DanieleC88
12-10-2005, 14:10
Qualche idea?
Che scheda video e che driver usi? Sembra che non venga inizializzata correttamente LWJGL (quindi credo sia un problema con OpenGL).
Qualche idea?
Cmq non e' urgente... non mi ci rimettero' a litigare prima di giovedi' sera!
Grazie,
Gica
Ci scommetto la testa di DanieleC88 che non hai dri abilitato :D
Se hai nvidia basta installare i driver proprietari. Con ati incomincia a pregare :muro:
ciao ;)
Ci scommetto la testa di DanieleC88 che non hai dri abilitato :D
Se hai nvidia basta installare i driver proprietari. Con ati incomincia a pregare :muro: scusa, questo spero non significhi che tutti i nostri utenti Mac e/o Linux debbano fare così --> :muro:
O_o
DanieleC88
12-10-2005, 15:26
Ci scommetto la testa di DanieleC88 che non hai dri abilitato :D
Propria la MIA di testa devi scommettere? MALEFICO!
...O quello era ayin? :stordita:
scusa, questo spero non significhi che tutti i nostri utenti Mac e/o Linux debbano fare così --> :muro:
O_o
Su mac no ho idea di come funziona. Su linux se hai nvidia basta usare i driver di nvidia.com, che molte distribuzioni usano di default, e non ci sono problemi. Con le ati so solo che il supporto e quasi inesistente. Quindi via con i driver proprietari anche li ma non prima di aver acceso un cero per ogni santo protettore del calendario appeso sulla parete. :D
ciao ;)
Propria la MIA di testa devi scommettere? MALEFICO!
...O quello era ayin? :stordita:
:asd:
ciao ;)
Su mac no ho idea di come funziona. Su linux se hai nvidia basta usare i driver di nvidia.com, che molte distribuzioni usano di default, e non ci sono problemi. Con le ati so solo che il supporto e quasi inesistente. Quindi via con i driver proprietari anche li ma non prima di aver acceso un cero per ogni santo protettore del calendario appeso sulla parete. :D io cmq sul portatile ho una ATI e non ho mica tutti sti problemi che dici tu... :mbe: almeno non credo... :stordita:
Ci scommetto la testa di DanieleC88 che non hai dri abilitato :D
Se hai nvidia basta installare i driver proprietari. Con ati incomincia a pregare :muro:
ciao ;)
:fiufiu:
Difatti non ho il DRI abilitato, per il semplice fatto che su Fedora uso il server grafico X.Org; la scheda grafica e' la sempreverde ( :p ) 3dfx Voodoo3 (16 MB) :old: e con questa configurazione sw non sono mai riuscito ad abilitarlo.
Dovrei reistallare SuSE, che con XFree86 abilita l'accelerazione senza problemi... Ma uffa!
Per quanto riguarda Mac, il direct rendering suppongo sia attivo, altrimenti non potrei giocare a Xtreme Racing (o come si chiama quella roba la')... Boh!
Ciao :(
DanieleC88
14-10-2005, 09:28
Difatti non ho il DRI abilitato
Be', almeno la mia testa è salva... :D
^TiGeRShArK^
14-10-2005, 16:15
ehm...
avevo pensato ad una cosa....
non so se è fare over-engineering, ma mi sa ke nelle storie future occorrerà considerare la velocità di spostamento...
a quanto mi ricordo ora viene fatta semplicemente variando il numero di pixel dello spostamento...
ma su makkine di diversa potenza questo non si dovrebbe tradurre in spostamenti piu' veloci o piu0 lenti a seconda della velocità del pc...
può essere ke una cazzata enorme ma è un dubbio ke mi è venuto...
ki mi kiarisce please???
cdimauro
15-10-2005, 08:03
Coi giochi 2D la velocità di aggiornamento della grafica e dei movimenti dovrebbe essere costante.
in effetti anche secondo me dovremmo introdurre nel gioco un qualche tipo di temporizzazione, timer o che so io...
BlueDragon
15-10-2005, 11:45
Beh, fino all'altra settimana, quando il diamante era 64x64, io avevo una Geforce 2 ed il diamante si muoveva in un certo modo...poi il primo giorno che ho fatto girare il codice con il diamante 32x32 avevo un Geforce5200 ed il diamante si muoveva a tutta un'altra velocita....e mi sa che non era per il cambio di texture(o sì?)...:)
Comunque lo faremo quando Jocchan ce lo chiederà in una prossima storia...
..per adesso ci conviene non pensarci, o al massimo pensare ai relativi test e non al codice... :D
In effetti occorre fare in modo che, con assoluta certezza, la velocità sia univoca e indipendentemente dal sistema. Ma per questo c'è tempo.
Vi raccomando solo di non prendere iniziative, inserendo sistemi di alcun genere, fino a quando non sarà effettivamente ed esplicitamente richiesto ;)
DanieleC88
15-10-2005, 13:04
Secondo me non è un grande problema. Pensavo anche io di fare così nel mio giochino (un bel redraw per ogni 25mo di secondo), ma poi ho avuto problemi di sincronizzazione che mi mandavano addirittura in crash il gioco. C'è bisogno semplicemente di un loop principale che ridisegni tutto quando possibile e poi di un gestore di eventi che dica al loop cosa è cambiato, quindi cosa disegnare.
Se poi ho sbagliato tutto, sono pronto alla crocifissione.
ma nel frattempo come mai il progetto è fermo? :confused:
che stiamo aspettando? :confused:
ma nel frattempo come mai il progetto è fermo? :confused:
che stiamo aspettando? :confused:
Aspettiamo lunedì per ripartire col terzo ciclo.
Nel frattempo, io proverò una build aggiornata fino al termine della prima storia del secondo ciclo, ed in base a quella verranno elaborate le storie (ed i task) per il prossimo ciclo.
Chi programma, ha due giorni di pausa, nei quali potrà riflettere sulla storia rinviata (che comunque avrà delle differenze), ed iniziare a ragionare sui test necessari (solo a quelli, non al codice, dato che ancora non ci sono task).
Riguardo il parametro di temporizzazione, questo lo fornisce LWJGL senza alcun problema. Si usa la classe org.lwjgl.Sys ed il metodo getTimerResolution()
^TiGeRShArK^
16-10-2005, 17:59
Perfetto....
tnx raffaele ;)
credo ke in futuro ci sarà piuttosto utile! :Prrr:
ceAlex80
23-10-2005, 15:58
Ciao a tutti e spero di postare nel posto giusto..visot che già fek mi ha tirato le orecchie due minuti fa.. :D
Comunque ho scaricato tutto il progetto ma non riesco a compilarlo. Avrò sicuramente problemi di settaggio con la libreria lwjgl: L'errore che mi da è il seguente:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at org.lwjgl.Sys$1.run(Sys.java:67)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.<clinit>(Sys.java:65)
at org.lwjgl.opengl.Display.<clinit>(Display.java:104)
at it.diamonds.engine.DisplayImpl.findDisplayMode(DisplayImpl.java:91)
at it.diamonds.engine.DisplayImpl.initDisplay(DisplayImpl.java:114)
at it.diamonds.engine.DisplayImpl.<init>(DisplayImpl.java:35)
at it.diamonds.engine.Engine.create(Engine.java:35)
at it.diamonds.Game.createEngine(Game.java:70)
at it.diamonds.Game.main(Game.java:43)
Non sono molto esperto in Java ed Eclipse in particolare :D , ed il primo passo sarebbe riuscire a compilare..o no? :doh:
Ciao a tutti e spero di postare nel posto giusto..visot che già fek mi ha tirato le orecchie due minuti fa.. :D
Comunque ho scaricato tutto il progetto ma non riesco a compilarlo. Avrò sicuramente problemi di settaggio con la libreria lwjgl: L'errore che mi da è il seguente:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at org.lwjgl.Sys$1.run(Sys.java:67)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.<clinit>(Sys.java:65)
at org.lwjgl.opengl.Display.<clinit>(Display.java:104)
at it.diamonds.engine.DisplayImpl.findDisplayMode(DisplayImpl.java:91)
at it.diamonds.engine.DisplayImpl.initDisplay(DisplayImpl.java:114)
at it.diamonds.engine.DisplayImpl.<init>(DisplayImpl.java:35)
at it.diamonds.engine.Engine.create(Engine.java:35)
at it.diamonds.Game.createEngine(Game.java:70)
at it.diamonds.Game.main(Game.java:43)
Non sono molto esperto in Java ed Eclipse in particolare :D , ed il primo passo sarebbe riuscire a compilare..o no? :doh:
Usi linux. ? Se si probabilmente ti manca una libreria (libtiff). Prova a seguire le istruzioni nel leggimi.txt in lib/linux e vedere se risolvi.
ciao ;)
ceAlex80
23-10-2005, 16:11
No..purtroppo sono costretto ad usare questa fetecchia di winzzoz xp pro..almeno per un pò. Proverò a vedere di settare i path giusti per la lwjgl, leggendo qualche tutorial. Comunque nel repository del progetto ci sono i jar ma non i sorgenti di queste librerie, tutto giusto vero?
BlueDragon
23-10-2005, 16:40
No..purtroppo sono costretto ad usare questa fetecchia di winzzoz xp pro..almeno per un pò. Proverò a vedere di settare i path giusti per la lwjgl, leggendo qualche tutorial. Comunque nel repository del progetto ci sono i jar ma non i sorgenti di queste librerie, tutto giusto vero?
Sì, ci sono i jar con le classi compilate dentro..non ti serve scaricare altro..l'unica accortezza è settare bene Eclipse affinché abbia il path necessario per usare il jar :)
Questo post dovrebbe metterti sulla strada giusta:
http://www.hwupgrade.it/forum/showpost.php?p=9598620&postcount=117
ceAlex80
23-10-2005, 16:48
Perfetto!! adesso fischia! :D Dovevo solo settare il path dal menu run in modo da utilizzare i jar del progetto.
Ancora grazie! ;)
P.S: Scusate se non ho letto il 3d dall'inizio... :doh: ...mi era venuta l'ansia da compilazione! :Prrr:
DanieleC88
24-10-2005, 16:12
Altro problemino: mandando giù in tutta fretta il diamante con la freccia giù, da me non smette di emettere a ripetizione il suono di collisione (senza neanche aspettare che sia terminato, peraltro) finché non chiudo del tutto il gioco. Credo ci voglia un controllo nella classe sonora, del tipo:
if (!this->isPlaying()) {
Play();
}
Puoi scrivere un test che mostri il bug e fixarlo per favore?
DanieleC88
25-10-2005, 16:42
L'avrei fatto anche ieri, ma, come oggi, ho poco tempo a mia disposizione a causa dei compiti in classe (e non solo) che abbiamo tutti di seguito questa settimana. :(
Lo farò appena possibile, se non lo farà prima qualcun'altro.
L'avrei fatto anche ieri, ma, come oggi, ho poco tempo a mia disposizione a causa dei compiti in classe (e non solo) che abbiamo tutti di seguito questa settimana. :(
Lo farò appena possibile, se non lo farà prima qualcun'altro.
Ci ha gia pensato 71104.
ciao ;)
Ci ha gia pensato 71104. sentendo i Guns 'n Roses :D
DanieleC88
26-10-2005, 15:42
Ci ha gia pensato 71104.
ciao ;)
E bravo Alberto. ;)
^TiGeRShArK^
02-11-2005, 21:21
problemino col test dello spostamento a sinistra...
public void testKeyLeftLessThanDelay()
{
grid.insertGem(2, 4, gem);
grid.setGemUnderControl(gem);
long startTime = timer.getTime();
input.setStartTime(0);
while (timer.getTime() - startTime < input.getInputDelay())
{
input.generateKey(KeyCode.vk_Left);
grid.reactToInput(input);
}
System.out.println("testKeyLeftLessThanDelay " + grid.findGemCell(gem).row() + ", " + grid.findGemCell(gem).column());
assertTrue("gem reacts erroneously to multiple vk_Left in a timeframe shorter than input.getInputDelay()", grid.isGemAt(2, 3));
}
anzikchè mettere la gemma nella cella 2,3 me la ritrovo nella cella 13,3.... :doh:
Hai ancora questo problema ?
^TiGeRShArK^
03-11-2005, 09:37
mmm...
ni..
overro nei test l'ho risolto utilizzando il mock timer...
ma mi sa ke c'è qualke problema nella gestione della gravità...
infatti la gemma scendeva di una cella chiamando reactToInput (mi pare)...
inoltre se non sbaglio c'erano delle differenze tra keyLeft e Keyright xkè in uno non memorizzava la posizione della cella nuova con il metodo grid.findGem(gem) se nn sbaglio...
se hai tempo prova a dargli un'okkiatina xkè x ora io non posso ke sn al lavoro e ieri sera ero troppo stanko...
^TiGeRShArK^
03-11-2005, 10:00
ah..inoltre si ha un "feeling" strano mentre scende la gemma e si muove velocemente tra sinistra e destra.... non so se è collegato ai prob di cui sopra..
Che io sappia con recatToInput la gemma non dovrebbe scendere... La gemma dovrebbe scendere con draw...
^TiGeRShArK^
03-11-2005, 10:48
boh.. non lo so con chi scende..
però ieri inviando input a palla in 100 msec mi ritrovavo la gemma che era arrivata all'ultima riga... :mbe:
invece x quanto riguarda il feeling strano l'ha notato qualcun altro oltre me?
Il feeling strano credo che sia dovuto proprio a questo... In pratica si demanda a reactToInput lo spostamento verticale della gemma... A me sembra che premendo un tasto la gemma vada sempre per diagonale...
Prova ad aumentare il ritardo a 200 e si nota benissimo...
Ho provato a verificare se si sposta in diagonale, ma non lo fa...
^TiGeRShArK^
03-11-2005, 11:18
boh.. nn ho idea..
cmq secondo me lo dovremmo risolvere ora 'sto prob..
si ha una sensazione troppo strana muovendo la gemma...
BlueDragon
03-11-2005, 19:39
Per la cronaca, la gravità era effettivamente in draw..poi si è deciso di separare il disegno della grafica dalla logica di aggiornamento del gioco e gravity è stato tolto da draw, finendo in reactToInput. Ovviamente anche in reactToInput non sta bene, perché una cosa sono gli input dell'utente ed una cosa è l'aggiornamento costante del gioco. Cmq al momento dello spostamento non c'era nessun problema perché sia draw che reactoInput venivano chiamati con la stessa frequenza, indipendentemente dalla pressione o meno dei tasti da parti dell'utente, quindi...nessuna differenza :)
Lo spostamento in diagonale (cioè quando si tiene premuto il tasto giù più sinistra o destra) verrà introdotto nella seconda storia, per ora lasciamolo così com'è ;)
Ci sono problemi nello spostamento orizzontale?
C'è un problema con la priorità dei tasti... Se si preme contemporaneamente il tasto destro e quello sinistro ci si sposta verso destra...questo perchè il timer dell'ultima pressione rilevata viene aggiornata nella parte relativa al tasto destro...e di conseguenza il tasto sinistro non viene processato...
Poi si parlava con Tiger che c'è una sensazione strana durante lo spostamento della gemma... Prova Jocchan...
C'è un problema con la priorità dei tasti... Se si preme contemporaneamente il tasto destro e quello sinistro ci si sposta verso destra...questo perchè il timer dell'ultima pressione rilevata viene aggiornata nella parte relativa al tasto destro...e di conseguenza il tasto sinistro non viene processato...
Hmmm... e' un bug evidente. Mi sembra di ricordare che ci fosse un test che controllava questo bug. E' ancora li'?
Chi vuole lavorarci?
C'è un problema con la priorità dei tasti... Se si preme contemporaneamente il tasto destro e quello sinistro ci si sposta verso destra...questo perchè il timer dell'ultima pressione rilevata viene aggiornata nella parte relativa al tasto destro...e di conseguenza il tasto sinistro non viene processato...
Poi si parlava con Tiger che c'è una sensazione strana durante lo spostamento della gemma... Prova Jocchan...
Eh purtroppo non posso provare ;_;
Il PC che sto usando provvisoriamente (e che avrò ancora per qualche giorno purtroppo) ha un supporto praticamente nullo a OpenGL, ed il gioco qui non gira. Forse però domani pomeriggio potrò usarne uno decente (non garantisco ma speriamo).
Potete descrivermi la sensazione per favore? Scatta?
Per la priorità, invece, dobbiamo risolvere (è un bug, il fatto che il diamante debba rimanere immobile quando si premono sinistra e destra è scritto esplicitamente nella storia) ;)
EDIT:
Hmmm... e' un bug evidente. Mi sembra di ricordare che ci fosse un test che controllava questo bug. E' ancora li'?
Chi vuole lavorarci?
Azz mi hai anticipato :p
Potete descrivermi la sensazione per favore? Scatta?
Provato adesso mi sembra, ok. Forse il timer non e' precisissimo, ma qui non c'e' molto da fare (proviamo il timer di SDL?). La gemma balza da una cella all'altra, forse sarebbe piu' carino se si muovesse gradualmente, ma questo devi dircelo tu.
Si sente pero' la mancanza dell'interpolazione, maledetti PC e il context switching che entra quando gli pare :)
Sull'X360 il frame time e' inchiodato con una precisione di una parte su 10.000!
Il bug sulla pressione contemporanea delle frecce direzionali e' pero' evidente e va corretto. Ci vuole un test e il codice che lo fa passare. Chi si prenota? O scelgo io il volontario? :D
Ci penso io a risolvere il bug... Sono 2 secondi ;)
Vuoi provare anche a spostare l'applicazione della gravita' in un metodo di update?
Ovviamente per questo refactoring serve qualche test.
Mmmm....non ho molto tempo ora...semmai più tardi se nessuno se ne vuole occupare... Intanto scrivo i test per questo bug...
Altra cosa...se si premono destra e sinistra insieme e poi si rilasciano entrambi, la gemma si sposta immediatamente nell'ultimo tasto rilasciato... IMHO il comportamento ideale sarebbe che la gemma restasse per quanto possibile ferma...
E' un comportamente accettabile o è da evitare ? In caso fosse da evitare, faccio un test per non farlo presentare nuovamente (la risoluzione è semplice) ?
Provato adesso mi sembra, ok. Forse il timer non e' precisissimo, ma qui non c'e' molto da fare (proviamo il timer di SDL?). La gemma balza da una cella all'altra, forse sarebbe piu' carino se si muovesse gradualmente, ma questo devi dircelo tu.
E' fondamentale che lo spostamento laterale sia istantaneo o quasi. Questo nel senso che la gemma deve essere rapida a muoversi, in modo da poter fare spostamenti dell'ultimo secondo, ma non per questo deve comportare un effetto brutto a vedersi.
Quindi, se è possibile introdurre uno spostamento graduale, seppur quasi istantaneo, tanto di guadagnato :)
Sto impazzendo su questo codice...ha complessità ciclomatica 9... Non riesco a emtterlo in una forma da far passare checkstyle... Aggiungere un altro metodo solo per questo mi sembra uno spreco, anche perchè la classe ha già 25 metodi !!!
public void reactToInput(Input input, AbstractTimer timer)
{
Gem gem = getGemUnderControl();
Cell cell = findGemCell(gem);
if(allowedTime(timer))
{
if(input.isKeyLeft() && !input.isKeyRight())
{
lastKeyTime = timer.getTime();
if(cell.column() > 0)
{
updateGemAfterInput(cell, -1, gem);
}
}
if(input.isKeyRight() && !input.isKeyLeft())
{
lastKeyTime = timer.getTime();
if(cell.column() < grid[cell.row()].length - 1)
{
updateGemAfterInput(cell, +1, gem);
}
}
}
if(null != gemUnderControl)
{
moveGem(gemUnderControl);
}
}
Sto impazzendo su questo codice...ha complessità ciclomatica 9... Non riesco a emtterlo in una forma da far passare checkstyle... Aggiungere un altro metodo solo per questo mi sembra uno spreco, anche perchè la classe ha già 25 metodi !!!
Aggiungi metodi, non e' un problema. Questo metodo in particolare sta diventando troppo complesso.
Con 25 metodi siamo giusto al limite, ma siamo sempre in tempo a fare un po' di refactoring ed individuare quali funzionalita' possono essere portate fuori in una nuova classe.
Vediamo, i due if all'interno del if che controlla il timer possono essere estratti in due, che alleggeriscono il codice e dettano un futuro refactoring: estrarre reactToInput e metodi collegati in una classe, ad esempio chiamata InputReactor? Puo' essere un'idea.
L'ultimo branch puo' essere eliminato con un NullObject pattern, ma mi sembra troppo presto per introdurlo adesso. Aspettiamo che ci siano altri costrutti che testano se una gemma e' null o no.
BlueDragon
03-11-2005, 21:19
Se non vuoi creare nuovi metodi, secondo me puoi spostare i controlli sulle colonne (> 0 e < lenght -1) dentro il metodo updateGemAfterInput :)
Se non vuoi creare nuovi metodi, secondo me puoi spostare i controlli sulle colonne (> 0 e < lenght -1) dentro il metodo updateGemAfterInput :)
Va benissimo creare nuovi metodi perche' ti dettano ulteriori refactoring possibili.
Prova cosi':
public void reactToInput(Input input, AbstractTimer timer)
{
Gem gem = getGemUnderControl();
Cell cell = findGemCell(gem);
if(allowedTime(timer) && !input.areRightAndLeftKeyPressed() )
{
if(input.isKeyLeft())
{
handleLeftKey();
}
if(input.isKeyRight())
{
handleRightKey();
}
}
if(null != gemUnderControl)
{
moveGem(gemUnderControl);
}
}
Poi estrai l'ultimo if in un metodo update(), quello di cui abbiamo parlato prima.
Infine vedrai che puoi giostrarti il primo if come due "if guard" che sono piu' leggibili e gli altri due if urlano per un inizio di Command Pattern. Alla fine la complessita' sara' non piu' di 3.
Ma quanto e' divertente fare refactoring? E' come un giochino :D
BlueDragon
03-11-2005, 21:32
Va benissimo creare nuovi metodi perche' ti dettano ulteriori refactoring possibili.
Beh, in questo caso però penso che spostare i controlli nell'altro metodo sia una buona cosa...in fondo è meglio che sia il metodo a controllare ciò che gli viene passato piuttosto che dover controllare la validità dei parametri prima della chiamata...no?
Cmq a proposito di refactoring e di come districare la complessità, cosa ci dici del libro sul refactoring di Martin Fowler? Must buy?
Io ieri mi sono letto un paio di recensioni su Amazon, mi sa che lo ordino :)
Beh, in questo caso però penso che spostare i controlli nell'altro metodo sia una buona cosa...in fondo è meglio che sia il metodo a controllare ciò che gli viene passato piuttosto che dover controllare la validità dei parametri prima della chiamata...no?
Dipende dalle situazione e anche dai gusti personali. C'e' chi preferisce validare i parametri prima di passarli al metodo per semplificare il codice del chaimato e chi preferisce validarli all'interno del metodo. Io appartengo alla seconda categoria, ma ogni tanto faccio al contrario. Si va un po' a sentimento: tu fai quello che secondo te rende il codice piu' semplice.
Cmq a proposito di refactoring e di come districare la complessità, cosa ci dici del libro sul refactoring di Martin Fowler? Must buy?
Io ieri mi sono letto un paio di recensioni su Amazon, mi sa che lo ordino :)
Mettiamola cosi': e' una pietra miliare nella storia dello Sviluppo del Software degl'ultimi trent'anni.
Una volta letto il libro vedrai che quelli che ho indicato qui in questo topic non sono altro che refactoring codificati ognuno col proprio nome e i passi da eseguire (in TDD) per implementarli.
Alla fine della fiera puo' uscire un metodo sulla falsa riga di questo:
public void reactToInput(Input input, AbstractTimer timer)
{
if(!allowedTime(timer))
{
return;
}
// questo magari puo' essere filtrato a monte dall'input
if (input.areRightAndLeftKeyPressed() )
{
return;
}
// Questo viene spostato all'interno di ogni metodo handle(command)
// Cell cell = findGemCell(getGemUnderControl());
for each (command in commands) // non ricordo il foreach in java :P
{
handle(command);
}
// movimento della gemma spostato nel metodo di update
}
Ho fatto il commit...
Questa situazioni:
if (input.areRightAndLeftKeyPressed() )
{
return;
}
imho dovrebbe diventare così:
if (input.areRightAndLeftKeyPressed() )
{
lastKeyTime = timer.getTime();
return;
}
Questo per evitare che al rilascio dei due tasti la gemma si muova istantaneamente verso l'ultimo tasto rilasciato, ma con buona possibilità (a seconda del momento del rilascio rispetto al timer) la gemma resta ferma...
Non per correggere il tuo codice, ma per far capire la soluzione al problema che spiegavo nell'ultimo post della pagina precedente...
Per quanto riguarda update...non ce la faccio devo andare fra pochi minuti...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.