Helpdesk
Menschen Wissenschaft Politik Mystery Kriminalfälle Spiritualität Verschwörungen Technologie Ufologie Natur Umfragen Unterhaltung
weitere Rubriken
PhilosophieTräumeOrteEsoterikLiteraturAstronomieHelpdeskGruppenGamingFilmeMusikClashVerbesserungenAllmysteryEnglish
Diskussions-Übersichten
BesuchtTeilgenommenAlleNeueGeschlossenLesenswertSchlüsselwörter
Schiebe oft benutzte Tabs in die Navigationsleiste (zurücksetzen).

Programmieren: Hilfe & Austausch

920 Beiträge ▪ Schlüsselwörter: Programm, Code, Html ▪ Abonnieren: Feed E-Mail

Programmieren: Hilfe & Austausch

11.09.2012 um 15:35
@YaaCool

Ja aber die Befehle sind oben nicht drin :D

also die beiden letzten.


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 15:36
@interpreter

na kla, die hab ich eben von da kopiert :D


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 15:39
@YaaCool

Ja.... nur in ner anderen Reihenfolge irgendwie, huh? :D


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 15:41
@interpreter

ja die war ein wenig verkehrt, war aber nicht schlimm
die reihenfolge hat eben nur die kagge gemacht, dass das forrest bild über alle anderen gelegt wurde, weil es ja als letztes drauf gebracht wurde :D
ändert aber nichts an der funktion an sich^^

ich hab grade noch ein anderes behindertes problem, bei dem ich nicht verstehe was ich falsch mache


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 15:43
@YaaCool

na dann lass mal sehen


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 15:49
was ist hier
if (key [KEY_SPACE]) { for (int i=0;i<=5;i++) { high++; } for (int j=0;j<=5;j++) { high--; } }
falsch?

ich will, dass wenn ich die leertaste drücke meine figur (die high benutzt für ihre y-position) einmal +5 hoch und dann wieder runter geht, also hüpft
aber sie macht einfach gar nichts
wenn ich schreibe
if (key [KEY_DOWN]) high++; if (key [KEY_UP]) high--;
dann bewegt sie sich hoch oder runter, je nachdem welche der tasten ich wie lange drücke
jetzt soll sie das da oben bei einmaligem tastendruck durchführen
die forschleifen deshalb, damit die bewegung flüssig ist und die figur nicht einfach die position sprunghaft wechselt
wobei das
if (key [KEY_SPACE]) { high+=5; high-=5; }
auch nicht funktioniert

an der leertaste kanns nicht liegen, hab schon eine andere versucht, geht auch nicht


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 15:52
@YaaCool

Na ganz einfach... du veränderst nur die Variable (high) er zählt sie hoch, dann wieder runter aber das wird ja nirgendwo auf dem Bildschirm umgesetzt.

ich nehme mal an, das nach dem KeyDown/Up irgendwo noch ein Befehl kommt der das umsetzt oder nicht? den müsstest du auch in deine Schleife einbauen.


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 15:57
@interpreter

ja na klar
weil high steht für die y-position bei

blit(mario,Doublebuffer, 0,0, right, high,20,40);

verändert sich die variable, verändert sich die position
deshalb sag ich doch, bei den anderen tasten mit
if (key [KEY_DOWN])
high++;
if (key [KEY_UP])
high--;
bewegt sie sich doch auch


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 16:01
@YaaCool

ja... in den Beiden Fällen veränderst du die Variable

high(0)

high++ (1)

umsetzung (1)

in deinem Konzept

aber änderst du die Variable

high(0)
high(5)
high(0)

umsetzung (0)

wenn es also bei deiner Umsetzung angekommen ist ist der Wert wieder 0 und es ändert sich an der ausgabe nichts.

Versuch mal das hier:


if (key [KEY_SPACE]) { for (int i=0;i<=5;i++) { high++; blit(mario,Doublebuffer, 0,0, right, high,20,40); } for (int j=0;j<=5;j++) { high--; blit(mario,Doublebuffer, 0,0, right, high,20,40); } }

Ich glaube du hältst den Computer einfach für viel schlauer als er ist :D


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 16:03
@YaaCool

wenn dir das dann noch zu schnell geht, bau ne Zählschleife oder sowas ein, um es zu verzögern :)


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 16:05
@interpreter

da tut sich auch nichts


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 16:07
@YaaCool

dann verzögere es mal stark... es steht anzunehmen das der ganze Sprung in diesem fall vielleicht ne Millisekunde braucht oder sowas...


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 16:10
@interpreter

ich habs jetzt so
if (key [KEY_SPACE]) { for (int i=0;i<=5;i++) { varHigh++; Sleep(1000); blit(mario,Doublebuffer, 0,0, varRight, varHigh,20,40); } for (int j=0;j<=5;j++) { varHigh--; Sleep(1000); blit(mario,Doublebuffer, 0,0, varRight, varHigh,20,40); } }
aber auch nichts
dabei sollte das stark genug verzögert sein?

ja die dummen variabeln heißen jetzt anders, das tut aber nichts zur sache


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 16:10
@YaaCool

OHHH und du musst den Doublebuffer natürlich immer auch auf den Screen blitten.


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 16:11
hab ich
tut sich auch nichts


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 16:12
@YaaCool

zeig mal den aktuellen Stand?


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 16:13
if (key [KEY_SPACE]) { for (int i=0;i<=5;i++) { varHigh++; Sleep(500); blit(Doublebuffer, screen, 0,0, 0,0, 640, 480); blit(mario,Doublebuffer, 0,0, varRight, varHigh,20,40); } for (int j=0;j<=5;j++) { varHigh--; Sleep(500); blit(Doublebuffer, screen, 0,0, 0,0, 640, 480); blit(mario,Doublebuffer, 0,0, varRight, varHigh,20,40); } }

wenn man doublebuffer und mario andersrum setzt tut sich auch nichts


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 16:15
der Befehl für das Blitten auf den Screen müsste sinnvollerweise nach dem Blitten auf den Doublebuffer kommen... aber auswirken müsste sich das trotzdem....


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 16:18
@YaaCool

wirkt sich das blitten normalerweise sofort aus oder braucht das noch nen Refresh-Befehl oder sowas?


melden

Programmieren: Hilfe & Austausch

11.09.2012 um 16:19
@interpreter

das geht sofort


melden