Bildschirm teilen
Übersicht

SchraubeBetreff: Bildschirm teilen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
hab erst seit ein paar Tagen angefangen zu programmieren. Hab folgendes Problem. Ich möchte den Bildschirm teilen, aber irgendwie sind die Körper dann an anderer Stelle und nicht mehr symetrisch. plz help Graphics 1024, 768 SetBuffer BackBuffer() ClsColor 0,0,255 Cls For x=0 To 0 For y=0 To 1 Origin x*562, y*384 ;Sonne Color 255,255,0 Oval 800, 50, 50, 50 ;Boden Color 0,127,0 Rect 0,350,1024,66 ;Haus Color 240,127,240 Rect 110,300,200,100 ;Bäume Color 40,40,40 Rect 700,250,20,200 Rect 900,230,20,240 ;Baumkronen Color 127,127,0 Oval 660,250,100,100 Color 180,100,0 Oval 860,230,100,10 Next Next Flip WaitKey Thx im Vorraus |
||
Das Leben ist hart, aber fair! |
![]() |
Twit |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ä die schleife mit x siht nutzlos aus. und wo teilst du denn den bildschirm ![]() |
||
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nicht mehr symetrisch ??
das was du da hinzeichnest ist nur einfach etwas zu groß als das es komplett in das fenster passen würde. |
||
Schraube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Warum zu groß??
Ich will ein Fenster oben und das andere unten haben, also müsste ich ja nur den 2.Wert von den Körpern verändern, was ich auch gemacht habe, oder??? |
||
Das Leben ist hart, aber fair! |
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
hebe mal die bäume ein bisschen, so dass die oberen den unteren nicht überlagern... ![]() |
||
Norweger...
Spreche aber verdammt gut 8086 |
BlitzBirne |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Eine Frage, meinst du mit symmetrisch, das das untere Halbbild auf dem Kopf stehen soll ?
@Twit: Er "teilt" den bildschirm mit "Origin", so wie ich das sehe. Das ist zwar nicht "real" aber auch erstmal... egal ![]() |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich weiß nicht ob ich Dich richtig verstanden habe, aber vielleicht hilft dir ViewPort weiter. | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
BlitzBirne |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab nochmal das Problem genauer angesehen. Hab das erst wohl falsch verstanden mit symmetrisch.
Vielleicht hilft dir das etwas: Code: [AUSKLAPPEN] Graphics 1024, 768
SetBuffer BackBuffer() ClsColor 0,0,255 Cls ; ; HH heisst Halbe höhe, also 768 / 2 = 384 ; For HH = 0 To 384 Step 384 ;<-- HH ist 1x Null, danach 384, was beim 2. mal das Bild um 384 Pixel nach unten versetzt. ;Sonne Color 255,255,0 Oval 800, 50+HH, 50, 50 ; <-- Hier z.B. wird 1x Null und beim 2. Durchlauf 384 hinzuaddiert. ;Boden Color 0,127,0 Rect 0,350+HH,1024,66 ;Haus Color 240,127,240 Rect 110,300+HH,200,100 ;Bäume Color 40,40,40 Rect 700,250+HH,20,200 Rect 900,230+HH,20,240 ;Baumkronen Color 127,127,0 Oval 660,250+HH,100,100 Color 180,100,0 Oval 860,230+HH,100,10 Next Flip WaitKey Man kann es auch anders machen, aber ich wollte nicht zu weit ausholen, und habe deshalb eine For - Schleife dringelassen. Das Origin kann man sich (für diesen Zweck) so schenken. Du brauchst jetzt nurnoch dafür sorgen, das das ERSTE Bild nicht über die Bildschirmmitte hinausgeht (Vertikal), indem du die Positionen der Objekte noch anpasst - DANN sollte es auch Symmetrisch sein ![]() MfG. |
||
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Diese Origin Lösung sollte ja eigentlich ohne Probleme funktionieren, nur ist wie gesagt das was du da zeichnest einfach zu groß!
Hier ein kleines Bild: Ich hoffe es verdeutlicht die Sache etwas: Schwarz umrahmt: Der Bildschirm Grüne Linie: Die Mittellinie des Bildschirms Rot umrahmt: Dein gezeichneter Kram ( er geht über die Mittellinie hinaus! ) Blau umrahmt: Dein gezeichneter Kram zur Mitte verschoben ( da der eigentliche Kram schon höher als ein halber Bildschirm ist, wird nun sowohl der untere Teil vom roten überzeichnet, als auch der blaue Teil gar nicht mehr ganz dargestellt, da er ja höher als Bildschirm / 2 ist, aber bei Bildschirm / 2 seine 0 y-Koordinate hat ) öhhh, ich wahrscheinlich verwirrt das nur, naja egal ![]() Sorg halt einfach dafür, dass das was du zeichnest maximal HöheDesBildschirms / 2 hoch ist und alles ist gut ![]() walski |
||
buh! |
Schraube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Thx an euch. Ich habe das jetzt so verschoben, dass es wieder normal aussieht.
Graphics 1024, 768 SetBuffer BackBuffer() ClsColor 0,0,255 Cls For x=0 To 0 For y=0 To 1 Origin x*562, y*384 ;Sonne Color 255,255,0 Oval 800, 50, 50, 50 ;Boden Color 0,127,0 Rect 0,350,1024,66 ;Haus Color 240,127,240 Rect 110,250,200,100 ;Bäume Color 40,40,40 Rect 700,150,20,200 Rect 900,110,20,240 ;Baumkronen Color 127,127,0 Oval 660,110,100,100 Color 180,100,0 Oval 860,70,100,100 Next Next Flip WaitKey PS: @Blitzbirne: Dein Vorschlag hat leider nicht geklappt. |
||
Das Leben ist hart, aber fair! |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Code: [AUSKLAPPEN] For x=0 To 0 Hat das eine tiefere Bedeutung? Oder was versuchst du damit zu bezwecken? grüße |
||
http://bl4ckd0g.funpic.de |
BlitzBirne |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm... ich habe mich nochmal drangesetzt, und die Positionen etwas angepasst.
(Was du im obrigen Programm eigentlich noch -->selbst<-- machen solltest ![]() Wie ist es denn damit: Code: [AUSKLAPPEN] Graphics 1024, 768
SetBuffer BackBuffer() ClsColor 0,0,255 Cls ; ; HH heisst Halbe höhe, also 768 / 2 = 384 ; For HH = 0 To 384 Step 384 ;Sonne Color 255,255,0 Oval 800, 50+HH, 50, 50 ;Boden Color 0,127,0 Rect 0,318+HH,1024,66 ;Haus Color 240,127,240 Rect 110,260+HH,200,100 ;Bäume Color 40,40,40 Rect 700,210+HH,20,160 Rect 900,190+HH,20,160 ;Baumkronen Color 127,127,0 Oval 660,210+HH,100,100 Color 180,100,0 Oval 860,190+HH,100,10 Next Flip WaitKey |
||
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
wieso musst er auf origin verzichten? | ||
Norweger...
Spreche aber verdammt gut 8086 |
BlitzBirne |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Muss er nicht, er kann. Wollte damit nur zeigen, das es auch ohne geht. ![]() Ob ich das Koordiantensystem verschiebe um an einer anderen stelle zu malen, oder ob man den Objekten gleich andere Positionen gibt, macht in seinem Programm keinen wirklichen Unterschied. Das was mit Origin eingestellt wurde, bezieht sich zudem auf alle nachfolgenden Grafikbefehle. Könnte ein Fallstrick werden, wenn man nicht aufpasst... Und was er mit Bildschirm aufteilen meinte, denke ich einfach nur das 2x das selbe Bild untereinander sein soll, und nicht, das der Bildschirmbereich selbst geteilt werden sollte. (jedenfalls habe ich es so aufgefaßt) MfG |
||
Schraube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja mit Bildschirm teilen, meinte ich ein Bild oben und das andere unten.
Das mit dem for x = 0 to 0 hab ich bloß so gemacht, weil im Buch von Rene Meyer der Bildschirm vierfachgeteilt wird und ich es aber bloß zweimal haben wollte, deswegen habe ich mal ein bisschen rumprobiert und so hatte es dann funktioniert |
||
Das Leben ist hart, aber fair! |
Schraube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Will nicht extra neues Thema erstellen.
Wie bekomme ich denn bei einem Quiz hin, dass nicht die Fragen immer weiter runterrutschen, sondern die alte vom Bildschirm gelöscht und die neue wieder ganz oben steht hin? So sind die Fragen aufgebaut: Print "1. Frage(Sehr Leicht): Welche Insel gehört nicht zu Europa?" Print "1 - Lanzarote" Print "2 - Madeira" Print "3 - Mauritius" Print "4 - Färöer" Antwort = Input("Was denken Sie? ") If Antwort = 1 Then Print "Falsch, denn Lanzarote gehört zu den Kanaren, welche zu Europa gehören. Noch ein Versuch" If Antwort = 2 Then Print "Falsch, denn Madeira gehört zu Portugal. Noch ein Versuch" If Antwort = 3 Then Print "Richtig, Mauritios liegt nämlich im Indischen Ozean." If Antwort = 4 Then Print "Falsch, denn die Färöer liegen zwischen Island und Großbritanien. Noch ein Versuch!" ; ;Töne ; If Antwort = 1 Then kanal1 = PlaySound(ton4) If Antwort = 2 Then kanal1 = PlaySound(ton4) If Antwort = 3 Then kanal1 = PlaySound(ton5) If Antwort = 4 Then kanal1 = PlaySound(ton4) WaitKey Print " " Print " " If Antwort = 1 Then Goto marke If Antwort = 2 Then Goto marke If Antwort = 4 Then Goto marke MfG Schraube |
||
Das Leben ist hart, aber fair! |
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
kannst CLS benutzen... | ||
Norweger...
Spreche aber verdammt gut 8086 |
Schraube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe das nach waitkey eingesetzt, bloß dann ist zwar die vorige Frage verschwunden, aber er macht trotzdem unter der vorhergehenden weiter. | ||
Das Leben ist hart, aber fair! |
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schau dier mal den Befehl Locate an.... | ||
Schraube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie setzte ich locate bei meinem bsp ein? | ||
Das Leben ist hart, aber fair! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group