Need help, please

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Need help, please

    Hallo, liebe GM,

    Ich hab hier eine Frage, die ich aber eigentlich selber lösen können sollte, nur
    es funktioniert einfach nitt! :headtouch:

    Ist es eigentlich möglich einfach einunsichtbares "Controller-Object" im Level zu haben, dass ein Script wie dieses (siehe unten) beinhaltet? Bei mir funktioniert das nämlich nicht. Aber ich finde es ist eine super Idee wenn das gehen würde, weil man kann damit , durch das "Controller-Object" alles was im Level passiert steuern ohne auch nur irgendein Script in den anderen Objekten zu haben! Schaut mal:

    (Ins Step-Event des "Controller-Object")

    if instance_position(schalter.x,schalter.y,Character) //Wenn der Character den Schalter berührt

    {
    instance_create(x=120,y=200,Schatztruhe) //Eine Schatztruhe wird gemacht
    }

    Die Idee ist, dass man in den Schalter kein Script machen muss und man kann
    wenn man den Schalter berührt immer etwas anderes per Level passieren lassen!

    Leider funktioniert der Code nicht bei mir... Was ist daran falsch?Oder muss noch was dazu?

    2) Könntet ihr mir nochmal ne vertikale Healthbar zeigen, also wie man die macht, oder
    vielleicht habt ihr Tuts oder sowas, ich krieg das einfach nicht hin!
    DU BIST, WAS DU ISST!!
  • RE: Need help, please

    Original von kimi
    if instance_position(schalter.x,schalter.y,Character) //Wenn der Character den Schalter berührt


    Ich sitze grad nicht an meinem Rechner, auf dem der GM isntalliert ist und habe noch nie mit "instance_position" gearbeitet. Ich würde aber sagen, dass du es so nicht verwenden kannst. Check doch lieber, ob der Player nahe der Truhe ist. Am verständlichsten sollte es so sein:

    GML-Quellcode

    1. if(player.x>truhe.x-10 && player.x<truhe.x+10 && player.y>truhe.y-10 && player.y<truhe.y+10)


    Original von kimi
    instance_create(x=120,y=200,Schatztruhe) //Eine Schatztruhe wird gemacht


    Das ist auch falsch. Zumindest kannst du es so nicht lassen. Du musst "x=" und "y=" weglassen:

    GML-Quellcode

    1. instance_create(120,200,truhe);
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • RE: Need help, please

    Original von mauge
    Das ist auch falsch. Zumindest kannst du es so nicht lassen. Du musst "x=" und "y=" weglassen:

    GML-Quellcode

    1. instance_create(120,200,truhe);


    @mauge: So wie du es gemacht hast würde es heißen, dass es im Raum auf Position 120,200 erscheinen wird.

    Wenn man jetzt das macht:

    GML-Quellcode

    1. instance_create(x+120,y+200,truhe)

    Erstellt es die Truhe um 120 Pixel nach rechts und 200 Pixel nach unten vom Objekt (das heißt in D&D soviel wie Relative ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Merko ()

  • @Merko: Er hat aber kein "+", sonder ein "=" verwendet.. Und das geht meines Wissens nicht.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • um sowas zu realisieren ist position_meeting(x,y,obj) besser als instance_position.
    also, dies hier:

    GML-Quellcode

    1. if ( position_meeting(schalter.x,schalter.y,Character) ) { //Wenn der Character den Schalter berührt
    2. instance_create(120,200,Schatztruhe) //Eine Schatztruhe wird gemacht
    3. }
    sollte funktionieren, nur werden unendlich viele Truhen erstellt.
    mach es besser so:

    GML-Quellcode

    1. if ( position_meeting(schalter.x,schalter.y,Character) ) { //Wenn der Character den Schalter berührt
    2. if ( !position_meeting(120,200,schatztruhe) ) { // wen noch keine Schatztruhe da ist
    3. instance_create(120,200,Schatztruhe) //Eine Schatztruhe wird gemacht
    4. }
    5. }
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl
  • Vielen Dank an alle,

    es funktioniert!! Ich musste zwar noch ein paar Sachen auf mein Spiel anpassen,
    ist ja normal, aber es ging.

    @ Myrikenes wegen der HEALTHBAR

    Ich weiß zwar wie man das alles mit normalen HB's macht, nur halt nicht mit der Verticalen.
    Ich weiß nicht wie ich die Energie verändern kann??
    DU BIST, WAS DU ISST!!
  • So mache man eine Vertikale Healthbar: (nicht getestet)

    GML-Quellcode

    1. health_x=16
    2. health_y=16
    3. health_länge_x=8
    4. health_länge_y=128
    5. health_wert=50
    6. health_wert_maximal=100 (Maximaler Healthwert)
    7. //Hintergrund
    8. draw_rectangle(health_x,health_y,health_x+health_länge_x,health_y+health_länge_y,0)
    9. //Energie : Von Oben nach Unten
    10. draw_rectangle(health_x,health_y,health_x+health_länge_x,health_y+health_länge_y*health_wert/health_wert_maximal,0)
    11. //Energie : Von Unten nach Oben
    12. //draw_rectangle(health_x,health_y-health_länge_y,health_x+health_länge_x,health_y+health_länge_y-health_länge_y*health_wert/health_wert_maximal,0)
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von bernt ()

  • das ganze sollte man noch mit

    GML-Quellcode

    1. draw_set_color(???)

    "aufpeppen" :D

    mach vor den "draw_rectangle" dingern einmal
    für den Hindergrund: draw_set_color(c_black)
    und für die Energie: draw_set_color(c_green)
    oder so was in der art

    (man kann das ganze ja noch mit sprites machen, aber das ist eine andere sache ^^