Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-08-2008, 11:48   #1
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
[Java, GTGE e wtf] chiarimento su Sprite, Game e immagini da assegnare a sprite

ciao a tutti, sto iniziando a guardare GTGE, questa libreria per sviluppare piccoli videogiochi 2d. Sto muovendo i primi passi, facendo le prime prove ma mi sono già bloccato. Il problema è il seguente:

tutti gli esempi che vedo in giro per la rete e sul tutorial ufficiale usano UNA classe che estende Game e in questo modo è possibile usare un metodo getImage(String s) a cui si passa un path di un'immagine che viene collegata ad uno sprite. Ora, a me usare un'unica classe (contenente il main tra l'altro) me la fa fare a spruzzo. io vorrei fare una cosa del genere

Codice:
public class Plane extends Sprite
{
   public Plane()
   {
       super(getImage("resources/plane1.png"));
   }
}
ma non posso perchè Sprite a differenza di Game non prevede costruttori a cui si passi un path(String) o metodi come quello di Game getImage.
Qualcuno conosce la libreria? sa come posso fare? è anche possibile che sono così noob che sfugge qualcosa a me e quinid mi può aiutare anche chi non conosce GTGE ma solo Java. Grazie a tutti in anticipo.

Ultima modifica di ndakota : 10-08-2008 alle 11:54.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 10-08-2008, 14:23   #2
agente mm8
Senior Member
 
Iscritto dal: Mar 2008
Messaggi: 401
Tu praticamente vuoi creare uno sprite, vero?
Io ho iniziato da poco con j2me e si fà così:
crei una classe che estende gamecanvas e dentro fai una cosa tipo:
Codice:
public class MioCanvas extends GameCanvas [..]
{
    private Image img;
    private Sprite sprite;

    public MioCanvas(){
        super(true);
        try{
            img = Image.createImage("/abc.png");
            sprite = new Sprite(img,16,169,
        }catch(IOException ex)
    }
}
Dovrebbe essere una cosa + o - così
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 10-08-2008, 14:37   #3
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
ok però io sto usando una certa libreria(GTGE) che semplifica queste operazioni, se faccio così ne vanifico l'utilizzo.. devo usare le classi di libreria con i loro metodi dunque..
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 10-08-2008, 14:41   #4
agente mm8
Senior Member
 
Iscritto dal: Mar 2008
Messaggi: 401
cerco qualcosa su internet e poi ti faccio sapere.

guarda qui:
Spoiler:
http://hackerforum.devil.it/viewtopic.php?t=8921&sid=7fd94281b8994d6a68ff4f4a6e8cf9d1

Ultima modifica di agente mm8 : 10-08-2008 alle 14:46.
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 10-08-2008, 14:46   #5
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Quote:
Originariamente inviato da agente mm8 Guarda i messaggi
cerco qualcosa su internet e poi ti faccio sapere.
ho anche provato a usare il tuo codice.. ma la classe Image non prevede un metodo createImage.. magari solo su me.. non saprei..
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 10-08-2008, 14:49   #6
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Quote:
Originariamente inviato da agente mm8 Guarda i messaggi
guarda qui:
Spoiler:
http://hackerforum.devil.it/viewtopic.php?t=8921&sid=7fd94281b8994d6a68ff4f4a6e8cf9d1
si si ho presente quelle tre miniguide.. e come ho scritto nell'op in queste guide(e anche nei tutorial ufficiali di gtge) viene SEMPRE fatto tutto in un'unica classe contenente anche il main che estende Game.. e per questo funziona.. io sto cercando di evitare proprio questo
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 10-08-2008, 15:10   #7
rivoluzionario
Member
 
Iscritto dal: May 2006
Città: Roma
Messaggi: 289
Per leggere un'immagine da un file si usa il metodo read della classe javax.imageio.ImageIO
rivoluzionario è offline   Rispondi citando il messaggio o parte di esso
Old 10-08-2008, 16:59   #8
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2788
Ciao, ho avuto il tuo stesso problema, per risolverlo ho spulciato i sorgenti e alla fine ho scritto una classe Util in cui ho messo un metodo statico getImage() che fa la stessa cosa di quello contenuto nella classe Game:

Codice:
import java.awt.image.*;
import java.awt.Color;
import java.io.*;
import com.golden.gamedev.util.*;

public class Util{
   static public BufferedImage getImage(String imgPath){
      try{
         return ImageUtil.getImage((new File(imgPath)).toURL(),Color.MAGENTA);
      }catch(Exception e){
         System.out.println("Errore nel caricamento di "+imgPath);
         return null;
      }
   }
}
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 10-08-2008, 19:01   #9
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
grandeeeeeeeeee funziona.. però strano che non abbiano pensato sta cosa, no? ah toUrl mi dice che è deprecato, c'è modo di mettere a posto sta cosa?
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 10-08-2008, 19:24   #10
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2788
Non so, io uso Java 5, forse è deprecato dal 6, dovresti vedere la documentazione, avranno fatto qualche nuovo metodo per sostituirlo

EDIT: sì, infatti dice di usare il metodo .toURI() e poi sull'oggetto restituito invocare .toURL() : LINK

Ultima modifica di wingman87 : 10-08-2008 alle 19:27.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 10-08-2008, 19:36   #11
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Non so, io uso Java 5, forse è deprecato dal 6, dovresti vedere la documentazione, avranno fatto qualche nuovo metodo per sostituirlo

EDIT: sì, infatti dice di usare il metodo .toURI() e poi sull'oggetto restituito invocare .toURL() : LINK
perfetto grazie.. adesso non da neanche warning
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 11-08-2008, 21:52   #12
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
wingman87 ciao. ancora io. volevo chiederti, ho lo stesso problema con il metodo keyPressed che è definito in Game e non in Spirte.. ma dimmi un pò ma ti pare possibile? possibile che questa libreria è stata progettata per fare tutto nel main? a me sembra una cosa improponibile, soprattutto in un linguaggio come Java.. poi non so sarò io che sono noob e mi sfugge qualcosa?
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 11-08-2008, 22:16   #13
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2788
Beh, in teoria gli eventi come la pressione di un tasto o un click dovresti gestirli nel metodo update(), o almeno credo :P Poi dipende... ad esempio, io sto facendo un breakout e devo muovere il paddle con il mouse, quando ho instanziato l'oggetto ne ho anche overridato il metodo update() (quello che ho usato è una classe anonima), praticamente ho fatto questo:
Codice:
Paddle paddle=new Paddle(){
         public void update(long elapsedTime){
            setX(getMouseX()-this.getWidth()/2);
            super.update(elapsedTime);
         }
      };
Siccome l'ho instanziato da dentro la classe Game avevo la visibilità di tutti i metodi che mi servivano e che altrimenti non avrei potuto vedere. Però non è una cosa che si può sempre fare, ad esempio io non ho problemi perché il paddle lo uso solo in questa specifica classe che sarebbe la classe Level, se lo dovessi usare anche altrove non sarebbe bello dover ricopiare ogni volta questo pezzo di codice...

Comunque ti consiglio di dare un'occhiata alle classi GameEngine e GameObject, soprattutto se il tuo codice inizia a diventare troppo ingarbugliato.

Se proprio non puoi fare tutto dall'update un'altra soluzione che mi viene in mente è passare un riferimento dell'oggetto Game allo sprite così questo può usare tutti i metodi che questo espone...

Che tipo di gioco stai creando?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 11-08-2008, 22:26   #14
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
intendevo proprio nell'update.. cioè nell'update della classe Game posso chiamare keyPressed(long l) ma nell'update della classe Sprite no.. avevo pensato anche io di passare l'oggetto game a sprite.. non sto creando nessun gioco comunque, sono ancora troppo nabbo, sto cercando di capire bene come funziona.. anche perchè per ora ho delle lacune perfino su Java perciò figurati..

ecco mi era venuto in mente di chiedere qui se si potrebbe creare un gioco Java+GTGE in un pò di persone.. non dico al livello di diamond eh, magari partire da una cosa piccola e se tutto va bene alzare il tiro..
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2008, 09:37   #15
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2788
Quote:
Originariamente inviato da ndakota Guarda i messaggi
ecco mi era venuto in mente di chiedere qui se si potrebbe creare un gioco Java+GTGE in un pò di persone.. non dico al livello di diamond eh, magari partire da una cosa piccola e se tutto va bene alzare il tiro..
Io ci starei ma sono completamente ignorante in materia di organizzazione e coordinazione del team... Hai già qualche idea?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2008, 10:52   #16
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Io ci starei ma sono completamente ignorante in materia di organizzazione e coordinazione del team... Hai già qualche idea?
ah di certo non sarei io a coordinarlo.. comunque non serve certo chissà chi, direi che basta uno che conosce abbastanza Java ed ingegneria del software che lo progetti.. ma non sarò certo io potremmo aprire un thread apposito per reclutare altra gente, che ne dici?
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2008, 13:09   #17
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2788
Ok, se si riesce ad organizzarsi io ci sto. Hai qualche idea per il gioco da creare?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2008, 14:08   #18
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Ok, se si riesce ad organizzarsi io ci sto. Hai qualche idea per il gioco da creare?
guarda a me piacciono i gdr ma non mi importa in questo caso perchè si parla di sviluppo.. mi va bene qualsiasi genere.. sarebbe bello scegliere tutti insieme quando si è creato il team.. l'unica cosa è che aspetterei almeno una settimana.. non so se è una mia impressione ma a me il forum sembra desolato

Ultima modifica di ndakota : 12-08-2008 alle 14:10.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2008, 14:36   #19
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
se vi serve uno che ha poco tempo eccomi.....comunque se ne parlerebbe metà settembre....
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 23-09-2008, 16:36   #20
jenergy
Junior Member
 
Iscritto dal: Sep 2008
Messaggi: 2
Giochino in java

Io ci sono ndakota, ovviamente non a tempo pieno perchè lavoro, ma molto molto disponibile..
Avete aperto il thread? Ora cerco...
jenergy è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
Windows 11 23H2, ricerca nel menu Start ...
Google Chrome introduce il layout vertic...
Artemis II: per la prima volta degli ast...
Battery swap e flotte smart: così nasce ...
Apple affronta un dilemma con il MacBook...
ECOVACS X11 OMNICYCLONE: 19.500 Pa, moci...
ll nuovo HONOR 600 Lite 5G arriva in Ita...
Kindle, addio allo store sui vecchi e-re...
DJI Flip Combo Fly More a 599€ invece di...
Addio cavi e adattatori multipli: Techly...
MOVA M50 Ultra: scopa elettrica con brac...
Amazon taglia i prezzi su GPU, CPU, alim...
Snapdragon 8 Elite Gen 6 Pro: migliorame...
Mythos di Anthropic trasforma il 72% del...
Nel 2027 potrebbe arrivare un Galaxy S27...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:32.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v