Visualizzazione dei risultati da 1 a 4 su 4

Discussione: processing js

  1. #1

    processing js

    Ciao a tutti voi, non conosco bene la struttura dei file PD di processing js.
    Ho questo script che desidererei modificare.
    Attualmente attraverso questo file collegato ad altro script e database, vengono disegnati sul video dei quadratini di colore verde che al click del mouse vengono selezionati e diventano di colore giallo.
    Ho bisogno di sostituire i quadratini che cambiano colore con 2 immagini di piccole dimensioni, chi di voi può aiutarmi?.
    Grazie in anticipo.

    codice:
    int k, rows, cols;
    Seat[] seats;
    
    
    void setup()
    {
        size(1420,400);    //dimensione del riquadro mappa locale
        frameRate(30);
            
        quanti = mappa.length;
        seats = new Seat[quanti];
    
    
        k = 0;
        
        // STALLS
        rows = 3;
        cols = 10;
        Xoff = 80;
        Yoff = 120; //distanza dal bordo superiore
        
        for(i=0; i<rows; i++)
        {
            for(j=0; j<cols; j++)
            {
                seats[k] = new Seat(Xoff+j*33, Yoff+i*33, mappa[k]); //distanza tra i tavoli
                k++;
            }
        }
        
        // GALLERY
        rows = 3;
        cols = 5;
        Xoff = 135;
        Yoff = 240; //distanza dal bordo superiore
        
        for(i=0; i<rows; i++)
        {
            for(j=0; j<cols; j++)
            {
                seats[k] = new Seat(Xoff+j*33, Yoff+i*33, mappa[k]); //distanza tra i tavoli
                k++;
            }
        }
    }
    
    
    void draw()
    {
        background(#F2FAFB);
    
    
        // Disegno pianta locale
        stroke(255);
        fill(0);
        rect(80, 20, 630, 40);
        background(#F2FAFB);    
        fill(#000000);
    //    fill(255,0,0);    
        PFont fontA = loadFont("verdana");  
        textFont(fontA, 16);
        
        string palco = '~ PIANTA DEL LOCALE ~';
        float cw = textWidth(palco);
        
        text(palco, 80+((730-cw)/1), 45);
        
        
        // display seats
        for(i=0; i<quanti; i++)
        {
            seats[i].display();
        }
        
        boolean atLeastOne = false;
    
    
        // loop che individua dove si trova il puntatore del mouse
        for(i=0; i<quanti; i++)
        {
            if(seats[i].over())
            {
                seats[i].update();
                
                atLeastOne = true;
            }
        }
        
        if(atLeastOne)
            cursor(HAND);
        else
            cursor(ARROW);
    }
    
    
    
    
    void mouseClicked()
    {
        // loop per individuare l'elemento cliccato
        for(i=0; i<quanti; i++)
        {
            if(seats[i].over())
            {
                seats[i].press(i);
            }
        }
    }
    
    
    
    
    class Seat
    {
        int x, y;
        int size;
        color clrFree, clrSelected, clrTaken, currentcolor;
        boolean isOver = false;
        boolean isSelected = false;
        boolean isTaken = false;
        
        HashMap config;
    
    
        Seat(int ix, int iy, HashMap iconfig) 
        {
            x = ix;
            y = iy;
            size = 30; //dimensione tavolo
            clrFree = color(0,255,0);
            clrSelected = color(255,255,0);
            clrTaken = color(255,0,0);
            
            config = iconfig;
            
            switch(config.status)
            {
                case "L":
                    currentcolor = clrFree;
                    break;
                    
                case "O":
                    currentcolor = clrTaken;
                    isTaken = true;
                    break;
            }
            
            if(config.selected==1)
            {
                currentcolor = clrSelected;
                isSelected = true;
            }
        }
        
        void display() 
        {
            stroke(currentcolor);
            fill(currentcolor);
            
            rect(x, y, size, size);
        }
        
        void update() 
        {
            over();
            
            // imposta il colore degli elementi selezionabili
            if(isSelected)
            {
                currentcolor = clrSelected;
            }
            else if(isTaken)
            {
                currentcolor = clrTaken;
            }
            else
            {
                currentcolor = clrFree;
            }
        }
    
    
        /**
         * imposta lo stato dell'elemento selezionato
         */
        boolean over()
        {
            if(isTaken)
            {
                isOver = false;
                return false;
            }
            if (mouseX >= x && mouseX <= x+size && 
                mouseY >= y && mouseY <= y+size)
            {
                showDetails();
                isOver = true;
                return true;
            } 
            else
            {
                isOver = false;
                return false;
            }
        }
        
        /**
         * Box informazioni che si apre sull'elemento nel quale viene posizionato il puntatore del mouse
         */
        void showDetails()
        {
            stroke(255);
            fill(#ffffff);    //colore del box informazioni elemento    
    //        fill(0);
            rect(x-size-45, y-size-70, 185, 80); //dimensione del box informazioni elemento
            fill(#000000);    //colore del triangolo puntatore del box informazioni        
            triangle(x+(size/2), y,  x+(size/2)+15, y-10,  x+(size/2)-15, y-10);
            
    //        stroke(0);
        
    
    
            line(x+(size/2)+14, y-10,  x+(size/2)-14, y-10);
            line(x+(size/2)+14, y-11,  x+(size/2)-14, y-11);
            
            int x1 = x-40;
            int y1 = y+size+10;
            int x2 = x+100;
            int y2 = y+size+90;
    
    
    
    
            PFont fontA = loadFont("verdana");  
            textFont(fontA, 14);
        
            int xtxt = x-size-35;
            int ytxt = y-size-45;
    
    
            fill(#000000);        
    //        fill(255,0,0);
            text(config.settore+" ~ Num. "+config.fila+" ~ "+config.numero, xtxt, ytxt);
    
    
            fill(#000000);        
    //        fill(255);
            text("Prezzo ~ "+config.intero+" ~ €", xtxt, ytxt+25);
            text("Tavolo da ~ "+config.ridotto+" ~ Posti", xtxt, ytxt+40);        
        }
    
    
        /**
         * Al cllck su un elemento viene controllata l'azione da effettuare
         */
        void press(int id) 
        {
            int risp;
            
            if(isOver)
            {
                if(isSelected)
                {
                    risp = check("D", id);
                    if(risp==1)
                    {
                        isSelected = false;
                        currentcolor = clrSelected;
                    }
                }
                else
                {
                    risp = check("S", id);
                    if(risp==1)
                    {
                        isSelected = true;
                        currentcolor = clrFree;
                    }
                }
            }
        }
    }

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao dubito che qualcuno si prenda l'impegno inoltre non è detto che sia possibile, ti consiglio di cercare un'altro script che si addica a quello che vuoi fare
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Grazie in qualche modo risolverò il problema.

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    chiudo. nessun problema reale. ma solo la richiesta di modificare del codice al posto tuo.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.