 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 17.07.2006, 17:17 Titel: 2d sprintes |
|
|
in der tutorialsektion von qbasic.de gibt es einige tutorials zum thema 2d animation und sprintes, doch keines, welches ich idiot wirklich verstehe.
könnte mir jemand das ganze erklären?
@Michael Frey: Eine anregung für ein weiteres Kapitel in wikibooks  _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 17.07.2006, 17:59 Titel: |
|
|
Da du dich gerade in dieses Thema einarbeitest/einarbeiten willst,
ist es eher eine Anregung für dich, gleich parallel dazu ein solches zu erstellen..
oder meinst du nicht ?
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 17.07.2006, 18:01 Titel: |
|
|
da hast du wohl was falsch verstanden. ich verstehe es nicht
doch sobald ich es verstehe schreib ich auch gerne eine für idiotenanleitung _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 17.07.2006, 18:09 Titel: |
|
|
Du hast mich nicht verstanden!
Genau weil du es nicht verstehst, muß du Infos sammeln, um es zu verstehen, diese Sammlung kannst du doch dann in ein Torturial umarbeiten..
Du mußt es nicht gleich für Idioten schreiben, schreib es einfach so, daß du es verstehen würdest..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 17.07.2006, 18:16 Titel: |
|
|
kannst du mir ein tutorial nennen das einigermassen gescheit ist? _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 17.07.2006, 18:31 Titel: |
|
|
1. Wenn auf ytwinky.freebasic.de keines ist: Nein
2. Hätte ich sonst vorgeschlagen, daß du eins schreiben sollst?
3. Was sind 2D-Animationen und Sprites?
Werden Programme dadurch schneller oder kosten sie Rechenzeit?
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 17.07.2006, 18:38 Titel: |
|
|
soweit ich weiss sind sprintes bilder, welche sich über den bildschirm bewegen können. zb eine spielfigur (Mario). Mit 2d animationen meine ich, dass Mario ja nicht beim laufen immer gleich aussieht, sondern schritte macht. _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 17.07.2006, 18:44 Titel: |
|
|
In meinem OpenGL-Tutorial werde ich auf Animationen zu sprechen kommen. Achja, zu deiner Sprint-Frage kann ich dir ja was aus den Ärmel schütteln!
Benötigte Ausrüstung:
1x Freund zum Zeitmessen
1x Stopuhr
1x Pfeife
1x Paar Sport-Schuhe
1x Laufbahn
1x Kondition
1. Suche dir eine möglichst gerade und ebene Bahn von etwa 25 bis 50 Metern (bei Bedarf auch länger) aus.
2. Jetzt brauchst du noch jemanden finden der für dich die Zeit misst.
3. Nun kniest du dich bei dem Start der Laufbahn hin und wartest auf das Pfeifen deines Freundes, der sich am Ende der Strecke befindet.
4. Sobald du das Pfeifen hörst, rennst du so schnell wie du nur kannst (=Sprinten) zum Streckenende.
5. Die Zeit wird gestoppt, sobald du die Ziellinie überschritten hast.
Nun kannst du deine persönliche Bestzeit aufnehmen und mit anderen Sprintern vergleichen. Viel Spaß !  _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 17.07.2006, 18:50 Titel: |
|
|
Wahrscheinlich hast du schon geGooglet
und die Forensuche benutzt..
..wie sieht es mit deinen Englischkenntnissen aus?
http://www.freebasic.net/forum
@Stormy:
Hey, ich meine es aber Ernst..
Offensichtlich muß alphonsospringer ganz behutsam darauf hingewiesen werden,
wie man Hilfe bekommen kann, wenn es hier im Forum nicht sofort welche gibt..
..und nicht mit der Holzhammermethode, wegen eines Dreckfuhlers
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 17.07.2006, 20:55 Titel: |
|
|
@alfonsospringer
Da hast du aber ein grosses Thema angeschnitten.
Darum auch kein Anspruch auf Korrektheit:
Was ist ein Sprite?
Ein Sprite ist ein Bild z.B. einer Spielfigur.
Ein Sprite hat immer (oder besser gesagt meistens, es gibt Ausnahmen) auch Transperante Pixel,
Diese Transparenz sorg dafür, das die Spielfigur schön sauber auf den Hintergrund kommt.
(Langsam schreib ich Blödsinn, das muss ich noch Umformulieren/mit einem Bild untermalen)
Ein Sprite kommt selten allein
Damit die Figur "läuft" und es nicht nach "Gleiten" oder "Fliegen" aus sieht fasst man mehre Sprites zusammen.
Zeigt man die einzelnen Sprites kurz nach einander an, sollte es aussehen als ob die Figur läuft, das Auto fährt usw.
siehe auch Wikipedia.
Wie man das Programmiert seh ich mir morgen an. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 17.07.2006, 21:04 Titel: |
|
|
zu gütig von dir  _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 18.07.2006, 09:19 Titel: |
|
|
Ziel
Das Ziel ist erstmal solch eine Animation:
Wo fangen wir an?
Wir machen erstmal für jede Bewegungsphase ein Bild und ordnen diese Bilder schön an.
http://mypage.bluewin.ch/OpenDize/wurm.bmp Ja, es muss BMP sein.
Nun zum Programmieren:
Zuerst machen wir das Bild auf (siehe auch Bild Dateien anzeigen).
Dann Zerteilen wir es in einzel Blder. (dafür hab ich eine Subroutine)
Dann noch das Anzeigen.
Code: | screen 18,32
dim bild as any ptr
declare sub Wurm(buffer as any ptr, x,y,i)
datei$="wurm.bmp"
breite=24 'Eigenschaften des Bildes eingeben
hoehe=63 'Eigenschaften des Bildes eingeben
anz=7 'Anzahl einzel Bilder
bild=IMAGECREATE(breite,hoehe)
bload datei$,bild
put (20,40),bild
for i=0 to 300
Wurm(bild,(i-4*(i\7)),20, i mod 7)
sleep 50
next i
sub Wurm(buffer as any ptr, x,y,i)
dim hilfs as any ptr
breite=24 'Eigenschaften eines einzel Bildes eingeben
hoehe=9 'Eigenschaften eines einzel eingeben
hilfs=IMAGECREATE(breite,hoehe)
GET buffer, (0, (hoehe)*i)-(breite-1, (hoehe)*(i+1)-1), hilfs
put(x,y),hilfs,pset
end sub |
Ich müsste noch viel Kommentieren, aber dazu hab ich im moment keine Lust .
Die Bilder wurde unter den Bedingungen der Creative Commons Attribution-ShareAlike License in der Version 2.0 (abgekürzt „cc-by-sa“) veröffentlicht.
Der Text steht wurde unter den Bedingungen der GFDL veröffentlicht.
Der Quellcode steht (nach ihrer Wahl) unter GFDL oder GPL. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
croco97

Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 18.07.2006, 12:32 Titel: |
|
|
Hier wird's ganz einfach für QBASIC erklärt..
Auch noch einfach, aber etwas weiterführender dann hier.
Grüsse!
Croco |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 18.07.2006, 14:30 Titel: |
|
|
Michael Frey's Vorschlag funktioniert zwar, aber ist ein wenig langsam und es folgen Memory Leaks!. Im Sub "Wurm" kann man den zweiten Buffer gänzlich sparen:
Code: | sub Wurm(buffer as any ptr, x,y,i)
breite=24 'Eigenschaften eines einzel Bildes eingeben
hoehe=9 'Eigenschaften eines einzel eingeben
put(x,y),buffer,(0, (hoehe)*i)-(breite-1, (hoehe)*(i+1)-1),pset
end sub |
Edit: Habe ein Komma vergessen! _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Zuletzt bearbeitet von Stormy am 18.07.2006, 17:19, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 18.07.2006, 15:05 Titel: |
|
|
Stormy hat Folgendes geschrieben: | Michael Frey's Vorschlag funktioniert zwar, aber ist ein wenig langsam und es folgen Memory Leaks!. Im Sub "Wurm" kann man den zweiten Buffer gänzlich sparen:
Code: | sub Wurm(buffer as any ptr, x,y,i)
breite=24 'Eigenschaften eines einzel Bildes eingeben
hoehe=9 'Eigenschaften eines einzel eingeben
put(x,y),buffer(0, (hoehe)*i)-(breite-1, (hoehe)*(i+1)-1),pset
end sub |
|
Danke für den Tipp .
Edit://
Geht aber in FB 0.16 scheinbar nicht . _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.07.2006, 20:40 Titel: |
|
|
croco97 hat Folgendes geschrieben: | Hier wird's ganz einfach für QBASIC erklärt..
Auch noch einfach, aber etwas weiterführender dann hier.
Grüsse!
Croco |
tschuldidung, aber das sind sogar für QB lääängst veraltete programmiertechniken.... grafiken in data und dann mit pset arbeiten, das war mal vlt vor 15 jahren! _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 19.07.2006, 11:33 Titel: |
|
|
könnte sich villeicht doch noch jemand dazu hinreißen lassen dies zu kommentieren?
Code: | screen 18,32
dim bild as any ptr
declare sub Wurm(buffer as any ptr, x,y,i)
datei$="wurm.bmp"
breite=24 'Eigenschaften des Bildes eingeben
hoehe=63 'Eigenschaften des Bildes eingeben
anz=7 'Anzahl einzel Bilder
bild=IMAGECREATE(breite,hoehe)
bload datei$,bild
put (20,40),bild
for i=0 to 300
Wurm(bild,(i-4*(i\7)),20, i mod 7)
sleep 50
next i
sub Wurm(buffer as any ptr, x,y,i)
dim hilfs as any ptr
breite=24 'Eigenschaften eines einzel Bildes eingeben
hoehe=9 'Eigenschaften eines einzel eingeben
hilfs=IMAGECREATE(breite,hoehe)
GET buffer, (0, (hoehe)*i)-(breite-1, (hoehe)*(i+1)-1), hilfs
put(x,y),hilfs,pset
end sub |
ausserdem:
1.Was macht buffer
2. Dim ... as any ptr setzt einen beliebigen pointer auf ... oder ? _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 19.07.2006, 15:57 Titel: |
|
|
achso ja .
Code: | dim bild as any ptr |
Das ist im moment ein Pointernamens Bild.
Der kann so noch nix speichern, weil er ja nur ein Pointer ist, der im moment auf nix zeigt.
Code: | bild=IMAGECREATE(breite,hoehe) |
Jetzt reserviere ich Speicher, der genau so gross ist wie das Bild (wurm.bmp).
Der Pointer zeigt dann auf auf den frisch reservierten speicher.
Jetzt wird das Bild "wurm.bmp" geladen.
Also die Datei wird automatisch geöffnet und in den mit Imagecreate reservierten Speicher geladen.
Hier wird die Bilddatei einfach mal zu Kontrolle ausgegeben.
Gut, nun zur Sub Wurm (mit dem Tipp von Stormy):
Code: | Wurm(bild,(i-4*(i\7)),20, i mod 7) |
Code: | sub Wurm(buffer as any ptr, x,y,i)
breite=24 'Eigenschaften eines einzel Bildes eingeben
hoehe=9 'Eigenschaften eines einzel eingeben
put(x,y),buffer,(0, (hoehe)*i)-(breite-1, (hoehe)*(i+1)-1),pset
end sub |
Buffer: Die Subroutine Wurm bekommt also schon mal den Zeiger auf die Bilddatei. Die Sub kann also mit dem Bild arbeiten.
x und y sollten klar sein.
i ist die Bildnummer, es sind 6 Bilder und mit i wählt man aus, welches man im moment braucht.
mit
Code: | put(x,y),buffer,(0, (hoehe)*i)-(breite-1, (hoehe)*(i+1)-1),pset |
wird eines der 7 Teil Bilder angezeigt, welches kann mit i bestimmt werden.
Code: | Wurm(bild,(i-4*(i\7)),20, i mod 7) |
Hier sind einige Rechnungen verbaut (spezifisch für das Würmchen).
das sorgt dafür, das nur 6 Bilder verwendet werden die es gibt.
Vielleicht ist es so klarer:
Code: | i Bild
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 0
8 1
9 2
... ... |
Nun dazu:
Das ist jetzt schwere zu beschreiben, weil das ein Trick ist .
Okey. Nicht bei jedem Teil Bild soll es einen Pixel weiter gehen.
Bei Bild 0 bis 5 gehts einen Pixel weiter, beim übergang von 5 auf 0 geht es nicht mehr weiter (sondern sogar 4 Pixel zurück).
Code: |
i Bild X-Achse
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 0 3
8 1 4
9 2 5
10 3 6
11 4 7
12 5 8
13 6 9
14 0 6
... ... |
Wie gesagt, das ist so ein Basteltrick, das kann man vielleicht auch schöner machen. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|