Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Nemesis Mini JLI'ler
Anmeldedatum: 23.01.2005 Beiträge: 6 Wohnort: Ingolstadt/Bayern Medaillen: Keine
|
Verfasst am: 04.02.2005, 02:26 Titel: scrolling |
|
|
Hallo ich hätte mal ne frage.
also beim scrolling 1 im buch scrollt das universe ja hin und her.
scrolling2 hingegen stoppt am ende.
beim scrolling2 ist nicht beschrieben wie man das zum hin und herscrollen bekommt.
wäre sehr nett wenn ihr es mir verraten könntet.
danke im voraus. _________________ ich will es schaffen egal wie schwer es ist. |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 04.02.2005, 02:50 Titel: |
|
|
wenns am einen ende stoppt einfach die schrittvariable negieren, das selbe dann beim anderen ende.
O.o
Soll jezz nicht böse klingen, aber diese Frage hätteste sicher selber beantworten können wenn du dir den bestehenden Code angeschaut und überdacht hättest. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Nemesis Mini JLI'ler
Anmeldedatum: 23.01.2005 Beiträge: 6 Wohnort: Ingolstadt/Bayern Medaillen: Keine
|
Verfasst am: 05.02.2005, 21:49 Titel: |
|
|
danke für die hilfe. und hast recht ich glaube ich muss noch etwas durchhaltevermögen lernen was das nachdenken angeht.
also danke. _________________ ich will es schaffen egal wie schwer es ist. |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 21.03.2005, 19:38 Titel: |
|
|
FallenAngel84 hat Folgendes geschrieben: | wenns am einen ende stoppt einfach die schrittvariable negieren, das selbe dann beim anderen ende. |
ähme... stand mal vor dem selben Problem, habs aber net lösen können(zwar schon, aber mit schlechten Nebeneffekten). Welche Schrittvariable meinteste denn? |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.03.2005, 20:50 Titel: |
|
|
Wenn sich was bewegt muss es ja was geben was das zu scrollende anregt sich zu bewegen, sowas ungefähr:
CPP: | Bild.Position.x += ScrollVariable.x; |
_________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 21.03.2005, 21:00 Titel: |
|
|
jo, glaube du meinst das(bei mir m_ScrollDirection und IIW = 5120):
CPP: | int IIW = ImageInfo.Width;
if(!(1024*AB_W_1024 == IIW))
{
IIW = 1024*AB_W_1024;
}
// testen, ob noch gescrollt werden soll, oder ob
// das Ende der Grafik erreicht wurde
if(m_PosSurface <= IIW)
{
m_PosSurface += m_ScrollDirection;
m_ScrollRect1.left += m_ScrollDirection;
m_ScrollRect2.right += m_ScrollDirection;
if(m_ScrollRect1.left > Width)
{
m_ScrollRect1.left = 0;
m_ScrollRect2.right = 0;
}
}
else
{
m_ScrollDirection = -m_ScrollDirection;
m_PosSurface--;
} |
oder? |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.03.2005, 21:37 Titel: |
|
|
Wieso fragst du wenn du selber testen kannst XD
so wie es aber aussieht, wird er einmal zu der einen seite scrollen, dann die scrollrichtung umkehren und dann auf immer und ewig in die andere richtung zurückscrollen. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 22.03.2005, 09:28 Titel: |
|
|
ich hab dir da meine frühere Lösung(mit "Nebeneffekten") gezeigt. kommt aber ziemliche scheiße raus, wenn ichs ausführe. Er scrollt dann erst nach ganz rechts, dreht dann um(allles noch schon und gut...); aber beim nächsten Bild kommt nur nochma das letzte und dann stürzt das Prog ab.
Bsp:
1 2 3 4 5 // Richtung hin...
5 5 // Richtung zurück...
*crash* |
|
Nach oben |
|
|
Chriss Senior JLI'ler
Anmeldedatum: 18.08.2004 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 30.03.2005, 05:37 Titel: |
|
|
Wenn es abstürz greifst du auf eine Spalte zu die nicht mehr zu dem Bild gehört. Der Letzte Pixel liegt bei [Splatenbreite -1]
Übrigens reicht es nicht die Schrittvariable einfach zu negieren da bei diesem Beispiel immer nur eine Spalte kopiert wird. |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 02.04.2005, 15:54 Titel: |
|
|
jo, es wird ja nur eine 1024*768 Abschnitt aus dem 5120*768 Bild in den 1024*768 Second-buffer kopiert. Dieses geht vom Anfang des Bildes bis zum Ende. Es wird am Ende aber immer nur der letzte Abschnitt kopiert. Da kommste mit negieren net weit. Irgendwelche anderen Ideen?? |
|
Nach oben |
|
|
Chriss Senior JLI'ler
Anmeldedatum: 18.08.2004 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 11.04.2005, 20:23 Titel: |
|
|
Naja man braucht einemal eine Variable für die Position auf dem Surface, die Richtung und eine Schrittvariable.
Dann würde ich den backbuffer misbrauchen und das ganze Surface für die Zwischenspeicherung bis auf die Wegfallende Zeile in den backbuffer kopieren. Hier dann die neue Zeile weglassen.
Wenn es nach rechts geht die Surface Position + Bildschirmbreite -1 + Schrittvariable nehmen und diese Zeile in den entsprechenden Bereich des Backbuffers schreiben.
Zuletzt den Backbuffer in das Surface für die Zwischenspeicherung kopieren um eine gute grundlage für das nächste Bild zu haben.
Bei der Verschiebung nach links muss man dann die entsprechende Zeile wieder um Backbuffer weglassen (also diesmal Backbuffer links und Tmp Surface rechts) und die Aktuelle Positio - Schrittweitenehmen und wieder in den Backbuffer kopieren.
Das ganze wieder zurückkopieren und immer so weiter.
Das ganze funktioniert auch wunderbar nach obern und unten. Anhand der Richtungsvariablen kann man ja unterscheiden welche Zeilen leer bleiben müssen und wenn man x und y getrennt behandelt kann man auch in 2 Schritten diagonal scrollen |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 12.04.2005, 15:25 Titel: |
|
|
thx, aber... wem sagst du das...?
Gruß DirectXer |
|
Nach oben |
|
|
|