Graphik Modus währen Betrieb Ändern

Übersicht BlitzBasic Beginners-Corner

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

Izen

Betreff: Graphik Modus währen Betrieb Ändern

BeitragSa, Sep 23, 2006 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja Mal wieder nix dazu Gefunden
Also:
Ich habe in meinem Game jetz mal ein Schönes optionsmenü Programmiert
Nur Wenn man Im Grafikmenü Auf Übernehmen Klickt will ich nicht nur das er Die Optionen In die config Datei Speichert sondern Direkt Übernimmt...
Ich habe es schon so versucht das ich dann ein zweites Mal Den Befehl Graphics starte halt mit den neuen angaben nur dann ändert der die werte nicht sondern seh ich dann nurnoch die Titelleiste...
Ich habe auch schon versucht vor dem zweiten Graphics nen EndGraphics zu setzen... Hilft aber auch nicht.
vllt. Zur information Ich benutze BB+ Nur falls es dafür wichtig ist
 

Dreamora

BeitragSa, Sep 23, 2006 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du EndGraphics - Graphics machst, musst du alle Grafiken nochmal neu laden.

Anderst ist die Auflösung aber im laufenden Betrieb nicht zu ändern, diese Lösung ist also schon die richtige Smile

Von daher am besten die Grafiksettings vor dem eigentlichen Programmstart oder durch ein Config Programm abfragen, dann kannst du dir die Zeit mit Grafiken neu laden ersparen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Smily

BeitragSo, Sep 24, 2006 11:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Izen.

Code: [AUSKLAPPEN]
Graphics 800,600,15,2
Repeat
Until KeyHit(1)
EndGraphics
Graphics 1024,768,15,2
Repeat
Until KeyHit(1)


scheint doch ohne Probleme zu gehen.
Die Grafiken zu laden etc. würde ich mit einer Sub (alos mit gosub) machen, da, wie mein vorredner schon sagte, die Grafiken nochmal neu geladen werden müssen.

mfg, Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

PowerProgrammer

BeitragSo, Sep 24, 2006 11:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein!!!!
Keine Gosubs!
Gib doch keine blöden Tipps! Gosbs sind fast so schlimm wie Gotos. Wer mit Gosubs anfängt, wird die Finger auch nicht von Gotos nehmen!

Besser mit Functions! Das ist nämlich kein schlechter Programmierstil!
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!

Hubsi

BeitragSo, Sep 24, 2006 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber das ist besser?

Code: [AUSKLAPPEN]
global peng,blubb,rumms

load_the_images()

function load_the_images()
peng=loadimage(...)
blubb=loadimage(...)
rumms=loadimage(...)
end function


BB hat nunmal keine Möglichkeit mehrere Werte zu returnen und 3 Trilliarden globale sind nicht so pralle Very Happy Wer Goto und Gosub von vornherein verteufelt programmiert mit Tunnelblick Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Smily

BeitragSo, Sep 24, 2006 11:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber funktionen haben den Nachteil, dass man in dem Fall die Bildvariablen globalisieren muss.
ausserdem dienen Funktionen eher dazu eigene "Befehle" zu schreiben, welche einen Wert zurückgeben soll (mal sehr grob ausgedrück)

goto verwende ich nicht. Aber gosubs verwende ich schon hin und wieder, da es sich z.b. in diesem Fall anbieten würde (Die grafiken müssen ja einmal am programmstart und dann nach der änderung der auflösung geändert werden) Meine Programmcodes bleiben auch Übersichtlich ^^.

Code: [AUSKLAPPEN]
Graphics 800,600,15,2
gosub loadimages
; ...
;Hauptprogramm
; ...

; ...
; Auflösung wird im Optinsmenü verändert
; ...
EndGraphics
Graphics newx,newy,15,2
gosub loadimages

.loadimages
 Bild1 = loadimage("images\Bild1.bmp")
 Bild2 = loadimage("images\Bild2.bmp")
 Bild3 = loadimage("images\Bild3.bmp")
 Bild4 = loadimage("images\Bild4.bmp")
return


So wird das gosub genau so verwenden wie eine Funktion. Blos dass eben der Befehlsname etwas anders ist ^^
Oder könntest du mir in dem Fall eine gute alternative aufzeigen?

€dit ich sollte mich nicht so lange mit schreiben aufhalten ^^ Hubsi war wohl schneller
PS: Ich Verteufel Goto ^^ aber nicht Gosub
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
  • Zuletzt bearbeitet von Smily am So, Sep 24, 2006 11:43, insgesamt einmal bearbeitet

StepTiger

BeitragSo, Sep 24, 2006 11:42
Antworten mit Zitat
Benutzer-Profile anzeigen
natürlich kann BB mehrere Werte zurückgeben!

man denke bitte an types!
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Smily

BeitragSo, Sep 24, 2006 11:44
Antworten mit Zitat
Benutzer-Profile anzeigen
StepTiger hat Folgendes geschrieben:
natürlich kann BB mehrere Werte zurückgeben!

man denke bitte an types!


Willst du alle Bilder in einem Type Machen? Shocked
Dan erklär mir mal, wie du gezielt ein Bild abrufen und Zeichnen willst (Es soll natürlich übersichtlich sein und die Bilder sollen einen Namen haben Razz )
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

Dreamora

BeitragSo, Sep 24, 2006 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
indem du den type nimmst und das entsprechende Field zeichnest

Aber den Sinn dahinter seh ich auch nicht ganz, denn dann muss der Type global sein, womit man direkt die Bilder global machen hätte können.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Smily

BeitragSo, Sep 24, 2006 11:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn micht nicht alles Täuscht hat X-Pressive sowas in seinem Spiel Click Clack XL umgesetzt.
Vlt lässt er sich ja mal dazu hinreisen hier zu posten und zu schreiben, wie er das ganze hinbekommen hat Wink
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

DerHase

BeitragSo, Sep 24, 2006 11:50
Antworten mit Zitat
Benutzer-Profile anzeigen
@Izen hast Du das neuste Update? Seit einer Weile kann man den Graphics Befehl in BB+ einfach nützen und er wird die Bilder nicht aus dem Speicher werfen. Ausser Du hast bei Loadimage den Flag auf 2 gesetzt, dann werden sie aus dem Speicher gelöscht. Aber bei default sollte es keine Probleme mit dem ändern des Anzeige Modus geben. EndGraphics sollte da nicht verwendet werden.

D2006

Administrator

BeitragSo, Sep 24, 2006 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Gosub ist ein schlechter Programmierstil (sagt man sich so)
und viele Globalen sind ein schlechter Programmierstil (sagt man sich so, übrigens sehe ich keinen anderen Grund Globalen nicht zu benutzen. Ein globaler Integer wird auch 4 Byte verbrauchen)

Muss also jeder für sich entscheiden, inwiefern er den guten Programmierstil bricht. Smile
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

PowerProgrammer

BeitragSo, Sep 24, 2006 12:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke, wenn man Globalen nutzt und sie ORDENTLICH benennt, mit Prenamen etc., ist dies nicht unbedingt ein schlechter Stil. Der Code wird dadurch auch eher ordentlich als spaghettiartig.
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!

StepTiger

BeitragSo, Sep 24, 2006 15:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
indem du den type nimmst und das entsprechende Field zeichnest

Aber den Sinn dahinter seh ich auch nicht ganz, denn dann muss der Type global sein, womit man direkt die Bilder global machen hätte können.


ich glaube du begreifst das ganze nicht so

Du erstellst einen typ, der von dieser funktion zurückgegeben wird.
Dann fragst du die bilder über diesen einen typ ab, kannst ihn also auch lokal benutzen.

so in der art
Code: [AUSKLAPPEN]
x.Loaded=LoadThem()
bild1=x\b1
sonne=x\b2


oder wie auch immer. Und schon hat man mehrere Werte in einem Typ gespeichert
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

D2006

Administrator

BeitragSo, Sep 24, 2006 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
StepTiger: es geht darum, dass man dann auch gleich Globale benutzen kann, weil das exakt auf das gleiche rauskommt.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

Omenaton_2

BeitragDi, Sep 26, 2006 10:59
Antworten mit Zitat
Benutzer-Profile anzeigen
PowerProgrammer hat Folgendes geschrieben:
Nein!!!!
Keine Gosubs!
Gib doch keine blöden Tipps! Gosbs sind fast so schlimm wie Gotos. Wer mit Gosubs anfängt, wird die Finger auch nicht von Gotos nehmen!

Besser mit Functions! Das ist nämlich kein schlechter Programmierstil!
^

Doch ! Nimm ruhig Gosubs, die sind sehr gut. Man kann damit alles wunderbar machen.
Hör nicht auf fanatischen Gosub-Hasser.
Dein Programm soll gut funktionieren und (vor allem für dich wenn du allein arbeitest) verständlich sein, nicht irgendwelchen anderen programmierern gefallen. Außerdem soll dir das Programmieren Spaß machen, deswegen machst du das schließlich. Die Leute die sich darüber ärgern, daß es andere Meinung als die vorherrschenden gibt, sollen sich ruhig darüber ärgern. Nur das Endergebnis und DEIN Spaß an der Arbeit zählen, sonst nichts.
 

Dreamora

BeitragDi, Sep 26, 2006 11:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hasse Leute die Gosub auf die gleiche Stufe mit Goto stellen!

Gosub ist das gleiche wie eine Funktion, nur das es keinen eigenen Variablenraum hat sondern die gleichen Variablen nutzt, wie der Codeteil von wo aus sie aufgerufen wurden!

Dadurch kann man Codeteile sinnvolle separieren.

Anders als Gosub erlaubt Goto jedoch kein blödes rumspringen im Code, was ja der Hauptgrund ist warum man Goto nicht verwenden sollte, will man den Code auch später noch nutzen. (es gibt im alten blitz leider noch 1 fall wo man es fast braucht und das ist um aus mehreren schleifen mit einem Sprung raus zu kommen. Braucht man mit BM nimmer, da es da goto eh nicht mehr gibt)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Matthias

BeitragDi, Sep 26, 2006 11:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hay.
Gosub und Goto sind nur Befehle für Spagetticodeliebhaber
deshalb solte mann die finger davon Lassen.

Auserdem mus man sich alle Varieablen merken die mann schon
benutzt hat. Das ist noch viel schlimmer als einige als Global zu deklarieren.

Anstatt:

Global Bild1,Bild2,Bild3,Bild4,Bild5 usw zu schreiben kann mann auch das
so machen

Dim Bild(20) basta!!



Beispiel :


Code: [AUSKLAPPEN]

Graphics 800,600,15,2
Dim Bild(5)
loadimages()
; ...
;Hauptprogramm
; ...

; ...
; Auflösung wird im Optinsmenü verändert
; ...
EndGraphics
Graphics newx,newy,15,2
Dim Bild(5)
loadimages()


Function Loadimages()

For Z=1 to 3
Bild(Z)=loadImage("Images\Bild"+Right("00000"+Z,Len(Z))+".bmp")
next
end function

BladeRunner

Moderator

BeitragDi, Sep 26, 2006 12:42
Antworten mit Zitat
Benutzer-Profile anzeigen
~GESCHLOSSEN~


Total an der Frage vorbei, diese Diskussion
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group