Blender Italia | Blender Game Engine | Logica di gioco e Gameplay | [Generare mattoni di logica del BGE]

Stai visualizzando 6 post - dal 1 a 6 (di 6 totali)
  • Autore
    Post
  • #17121
    wildlux
    Membro
    • Blenderista
    • Post sul Forum 174

    Ciao ragazzi sto cercando di scrivermi una mini guida personale sulla programmazione già  sono arrivato a 84 pagine comprese di copertina.

    Sono arrivato al capitolo Game engine e volevo scrivere tutti i mattoncini di logica.

    Il problema arriva dopo che inserisco il codice mi compaiono i miei mattoncini,ma ovviamente bisogna collegarli tra di loro.

    Sapete come si potrebbe fare questo collegamento?

    #194195
    wildlux
    Membro
    • Blenderista
    • Post sul Forum 174

    Scusate il doppio post ,ho trovato una documentazione ma non ho capito come funziona…

    Il collegamento al sito è questo:

    http://www.blender.org/documentation/blender_python_api_2_56_6/bpy.ops.logic.html#bpy.ops.logic.links_cut

    Dice in questo sito così:

    Code:
    bpy.ops.logic.links_cut(path=None, cursor=9)¶
    Remove logic brick connections
    Parameters:
    path (bpy_prop_collection of OperatorMousePath, (optional)) – path
    cursor (int in [0, inf], (optional)) – Cursor

    Mi potete speigare come funziona la cosa?

    #194196
    {Genesis}
    Membro
    • Blenderista
    • Post sul Forum 372

    Scusa la schiettezza ma credo ti manchino un po' di basi sulla programmazione, comunque vediamo di chiarire i dubbi. 😉

    La pagina che indichi e' relativa alla documentazione dei metodi/funzioni messe a disposizione dalla API di blender.

    Ti descrivo brevemente in cosa consistono le righe che hai postato:

    Quote:
    bpy.ops.logic.links_cut(path=None, cursor=9)

    Questo e' il metodo che viene messo a disposizione dalle API di blender, si chiama links_cut pa parte della classe logik che e' figlia della classe ops che a sua volta e' figlia di bpy.

    Quello che vedi tra parentesi sono i parametri che puoi passare al metodo, sono due e hanno dei valori di default (None e 9) per cui puoi anche richiamare il metodo senza passare esplicitamente dei valori e in quel caso verranno usati quelli di default.

    Quote:
    Remove logic brick connections

    E' la descrizione dell'azione compiuta dal metodo, in questo caso cancella una connessione (o se preferisci un legame) tra due logic brick.

    Quote:
    path (bpy_prop_collection of OperatorMousePath, (optional)) – path

    cursor (int in [0, inf], (optional)) – Cursor

    Quest'ultima riga descrive i parametri che puoi passare al metodo e i “valori” che sono accettati dal metodo, in particolare:

    path accetta quello che credo sia un tipo enum che può assumere i “valori” None oppure un quale altro valore che fa aprte di bpy_prop_collection che appartiene alla classe OperatorMousePath o qualche cosa del genere.

    cursor accetta dei valori interi (int in) che appartengono a un intervallo che va da o a infinito ([0, inf])

    Entrambi i parametri come detto prima sono opzionali (optional)

    Spero di essere stato sufficientemente chiaro e di aver risposto alla tua domanda. 😀

    #194197
    wildlux
    Membro
    • Blenderista
    • Post sul Forum 174

    Riguardo le basi di programmazione ho creato GUI con Python. Agli esami di stato ho portato anche un programma scritto da me che risolveva un problema della materia che si chiama “Calcolo delle probabilità  e statistica”. Dopo che è finita la scuola mi sono messo a fare molte cose ed ho imparato un bel po di cose. 😡

    Ritornando a noi.

    Ammettiamo che io voglia collegare questi blocchi qui.

    Code:
    import bpy
    a=bpy.ops.logic
    a.sensor_add(type='KEYBOARD',name=””,object=”Cube”)
    a.controller_add(type='LOGIC_AND' , name=”” , object=””)
    a.actuator_add(type='MOTION',name='',object=”Cube”)

    Non ho capito di preciso una cosa.

    Ok è possibile immettere questi valori di cui parli ,ma come faccio a dirgli per esempio che il sensore deve collegarlo al controllore ? ❓

    E successivamente come lo collego il mio controllore con l'attuatore?

    Code:
    bpy.ops.logic.links_cut(path=None, cursor=9)

    Più vedo la stringa di sopra e più non la capisco.

    Potresti farmi un esempio in modo che possa capirne il funzionamento per favore? 😥

    #194198
    {Genesis}
    Membro
    • Blenderista
    • Post sul Forum 372

    Evidentemente i miei dubbi sulle tue doti di programmazione erano del tutto errati 😡

    Venendo al problema, credo che il metodo/funzione che indichi sia sbagliato, anche nella descrizione viene spiegato che quel metodo serve per cancellare una connessione non per crearla, quindi in realtà  fa il contrario di quello che ti serve.

    Direi quindi che bisogna trovare il metodo corretto per fare quello che ti serve, purtroppo fino ad ora non ho trovato nulla 🙁

    EDIT:

    Ok un piccolo aggiornamento ho trovato questa pagina che puo' essere interessante:

    http://www.blender.org/documentation/blender_python_api_2_59_2/bpy.types.Controller.html

    Porta ad una classe(?) di tipo controller (ma ho visto che ci sono anche i tipi sensor e actuator), quindi se ho ben capito in pratica il giro che devi fare e' più lungo del previsto.

    In poche parole dopo aver fatto quello che hai scritto nel codice di sopra, devi:

    – crearti un tipo Controller

    – recuperare il controller che ti serve usando la get di bpy_struct (trovi il riferimento nella pagina che ho linkato)

    – ottenuto il controller usare il metodo/funzione link al suo interno (esempio. nome_controller.link(sensore, attuatore))

    Probabilmente dovrai anche crearti i tipi attuatore e sensore.

    Non so dirti quanto questo sia giusto, pero' spero ti sia di aiuto 🙁

    #194199
    motaba
    Membro
    • Blenderista
    • Post sul Forum 2
    'wildlux' wrote:

    Ciao ragazzi sto cercando di scrivermi una mini guida personale sulla programmazione già  sono arrivato a 84 pagine comprese di copertina.

    Sono arrivato al capitolo Game engine e volevo scrivere tutti i mattoncini di logica.

    Il problema arriva dopo che inserisco il codice mi compaiono i miei mattoncini,ma ovviamente bisogna collegarli tra di loro.

    Sapete come si potrebbe fare questo collegamento?

    quando fai qualcosa in blender… ti scrive il comando che hai esegiuito in una pagina nascosta sopra a tutto la devi tirare giù con quello puoi vedere i comandi eseguiti e fare lo script…

Stai visualizzando 6 post - dal 1 a 6 (di 6 totali)
  • Devi essere connesso per rispondere a questo topic.