player rot färben mit shader?

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

  • player rot färben mit shader?

    hallo

    eine frage ist es möglich den player rot zu färben mit einem shader???

    ich will das wenn mein player getroffen wird vom gegner das er kurz rot wird..

    aber natürlich kenn ich mich nicht mit shadern aus deshalb würde ich mich sehr über eure hilfe freuen..
  • Ich bin grad nur mobil on.
    Wenn du in den Fragment Shader gehst gibt es gl_fragcol oder irgendwie sowas dann gleich.
    Dahinter entfernst du alles und machst das dahin:
    vec4(1.0,0.0,0.0,1.0)
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Den Vertex-Shader einfach so lassen, wie er ist. Der Fragment-Shader sieht so aus:

    GML-Quellcode

    1. //
    2. // Simple passthrough fragment shader
    3. //
    4. varying vec2 v_vTexcoord;
    5. varying vec4 v_vColour;
    6. void main()
    7. {
    8. float alpha = v_vColour.a;
    9. gl_FragColor = vec4(1.,0.,0.,alpha) * texture2D( gm_BaseTexture, v_vTexcoord );
    10. }
    Alles anzeigen

    Im Event so:

    GML-Quellcode

    1. shader_set(shader0)
    2. draw_self()
    3. shader_reset()



    WICHTIG: Ein Sprite kannst du auch einfach mit der Funktion draw_sprite_ext( sprite, subimg, x, y, xscale, yscale, rot, colour, alpha ); Rot zeichnen lassen. Benutze für colour einfach c_red, diese Funktion erspart dir den Einsatz von Shadern.
    Husi012 hat mich nicht mehr in seiner Signatur, ich bin trotzdem noch fame.
  • danke für eure hilfe...eine frage noch



    ich habe vor meinen charakter wenn er bei einer röhre ist und nach unten drückt das er sich dann dreht und dann langsam in die röhre absinkt...

    wie mach ich das??

    muss ich dafür eine eigene animation erstellen für das drehen?
    und soll ich dann einfach absinken lassen und einfach die depth wärendessen verändern damit es so aussieht als würde er in der röhre verschwinden??
    wie lass ich ihn runter absinken??
  • Was du mit dem Drehen meinst, verstehe ich nicht. Jedoch das Absinken kannst du lösen, indem du einfach den Spieler nach unten "laufen" lässt mit y+=... und eventuell noch den Depth so erhöhen, dass du hinter dem Rohr bist.
    Husi012 hat mich nicht mehr in seiner Signatur, ich bin trotzdem noch fame.
  • @Dufner

    hy du irgendwie funktioniert es nicht mit dem rot färben...

    also ich hab ein objekt kanone und im obj_player hab ich ein collisions event mit obj_schuss gemacht und dort dann das draw_sprite_ext(spr_player_idle_right,x,y,1,1,0,c_red,1)
    aber er verfärbt sich nicht...was mach ich falsch????
  • @Dufner

    ok gut aber wie mach ich das dann....ich will ja das wenn der player von dem schuss getroffen wird sich kurz rot färbt und dann wieder normal wird.

    ich dachte im player ein collision event mit schuss und dann drawen aber das geht ja nicht

    wie mach ich das bitte??
  • du könnntest z.b: bei einer collision eine variable auf true setzen und ein alarm hinzufügen... sobald der alarm zu ende geht setzt er die variable wieder auf false. und den code machst dann im draw event... z.B.: if (getroffen){
    draw_sprite_ext(sprite_index,x,y,1,1,0,c_red,1)}
    else {
    blablabla
    }

    oder alles komplett im draw event reinschreiben... if (place_meeting(x,y,schuss){
    getroffen = true;
    alarm[0] = room_speed;
    }

    if (getroffen){
    usw...

    }
    Wir stehen zusammen und wir fallen zusammen