Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

lightpower

Frischling

  • »lightpower« ist der Autor dieses Themas

Beiträge: 5

Wohnort: Ludwigsburg

Beruf: Schüler

  • Private Nachricht senden

11

10.08.2016, 12:13

erstmal danke. versuch mich besser auszudrücken. und auch danke für alle infos, ich versuche alles zu verstehen und zu lernen. auch wenn ich ein paar dinge nicht auf anhieb kapiere, werde ich danach googlen und auch hier nachfragen.

aber dann würde mein initFade jedesmal aufgerufen.

bin mir nicht sicher, ob ich das in processing(.org) verwenden kann. dort gibt es einen setup()-bereich, das einmal bei programmstart ausgeführt wird und einen draw()-bereich das dann in loop ausgeführt wird.

da ich den aufruf von fade im draw() ausführen muss wird dieser ständig ausgeführt, deshalb hat ich einen boolean angesetzt der das verhindert.

mir ist einfach wichtig zu verstehen wie ich es schaffe einen wert in einer bestimmten zeit zu verändern. am schluss möchte ich 100 werte (in einem array) in z.b. 3000ms auf die neuen werte verändern, dabei haben alle 100 werte verschiedene start- und end werte und werden dann einmal angetriggert. dann läuft alles durch und dann wird der fade wieder beendet und auf false gestellt.

wenn sowas in dem draw()-bereich ständig abläuft muss ich doch sowas bauen?? ich meine if-befehle die über true und false ablaufen?

ich denke das processing so ein abgespecktes ding ist. aber es soll anscheinend auf java basieren und ich möchte am schluss ein spiel programmieren.

ich weiss, vielleicht denk ich da falsch, aber ich versuche mit kleinen programmteile paar dinge zu erlernen. abläufe zu verstehen. bevor ich überhaupt an spiel so ein gehe.

vielleicht bin ich im diesem forum falsch, zweck processing, aber mein englisch ist echt schlecht, darum suchte ich ein forum das sich mit spiele und java beschäftigt und auf deutsch ist.

so sieht mein programm fürs faden gerade aus:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// =============================================================================================VAR
float momentWert;

float zeit = 3000;
float startZeit;
float schrittWert;

float anfangsWert = 255;
float endWert = 0;

boolean fadeAktiv = false;
// ========================================================================================== SETUP
void setup() {
  //frameRate(60);
  //fullScreen();
  background(0);
  size(1000,600);
  noStroke();
  //noCursor();  
}
// ===================================================================================== SETUP ENDE

// =========================================================================================== DRAW
void draw() {
  background(#000000);
  fade();  // hier müsste ich dann nochmals den fade nur aufrufen wenn ich antriggern will
  text(str(momentWert), 10, 10, 100, 80); // anzeige auf dem bildschirm  
}
// ====================================================================================== DRAW ENDE

// ===================================================================================== FUNKTIONEN

// FADE ------------------------

void fade () {
      
  if (!fadeAktiv) {
    momentWert = anfangsWert;
    float diffWert = endWert - anfangsWert; 
    schrittWert = diffWert / zeit;
    startZeit = millis();
    fadeAktiv = true;
  } else {
    if ((millis()) < startZeit + zeit) {
      momentWert = floor (anfangsWert + ((millis() - startZeit) * schrittWert));
    } else {
      momentWert = endWert; // das ganze um am schluss den endWert richtig zu setzen, ist das ein fake, bekomme es sonst nicht sauber hin  
      // hier müsste ich fadeAktiv wieder auf false stellen, aber erst wenn das fade() im draw() per zb. taste angetriggert wird
    }
  }
}

CeDoMain

Alter Hase

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

12

10.08.2016, 14:32

Du kannst fadeInit() in setup() aufrufen und dann in draw() den Fade ausführen:

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Vars
float momentWert;

float zeit = 2000; // Zeit des Fades
float startZeit;
float schritteProZeit;

float startWert = 11;
float endWert = 222;

boolean fadeAktiv = false; 

//....

// initialisiert fade
void fadeInit()
{
    momentWert = anfangsWert;
    float diffWert = endWert - anfangsWert; 
    schritteProZeit = diffWert / zeit;
    startZeit = millis();
    println (momentZeit);
    fadeAktiv = true;
}
void setup()
{
    fadeInit();
}
// fade ausführen
void draw()
{
    if(millis() <= startZeit + zeit)
    {
        momentWert = floor (anfangsWert + ((millis() - momentZeit) * schrittZeit)); // runden statt schneiden
    }    
    // Um einen neuen Fade zu starten musst du hier einfach wieder fadeInit() aufrufen
}

wenn sowas in dem draw()-bereich ständig abläuft muss ich doch sowas bauen?? ich meine if-befehle die über true und false ablaufen?
Dazu brauchst du doch keine Variable. Du kannst einfach prüfen, ob die FadeZeit abgelaufen ist (siehe die if in [ic]draw()[ic]).

am schluss möchte ich 100 werte (in einem array) in z.b. 3000ms auf die neuen werte verändern, dabei haben alle 100 werte verschiedene start- und end werte und werden dann einmal angetriggert.
Dann machst du dir schonmal 3 100er Arrays: Startwerte, Endwere und Momentanwerte. Dann noch eine einzelne Variable wo die Fadezeit drin steht.

Nein du bist hier nicht falsch! Es gibt hier auch andere Threads, wo es um Processing geht. Und dir lässt sich ja helfen, wie du hoffentlich merkst. ;)
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

lightpower

Frischling

  • »lightpower« ist der Autor dieses Themas

Beiträge: 5

Wohnort: Ludwigsburg

Beruf: Schüler

  • Private Nachricht senden

13

11.08.2016, 10:35

danke erstmal, es funktioniert wie ich es wollte. :vain:
auch die array wurden komplett angelegt, für alle vars.
ich finde es genial das das ohne probs läuft :)
soviele zahlen die ständig geändert werden, mir macht das proggen spass :rolleyes: :D

Werbeanzeige