variablen im programm ändern

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

ToeB

BeitragDi, Aug 12, 2008 14:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Nimm doch mein Beispiel... Und ein Pfeil hätte es auch getan Rolling Eyes

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

DarkDragon-1993

BeitragDi, Aug 12, 2008 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibs nicht auf! Wie wäre es damit?

Code: [AUSKLAPPEN]

Graphics 640, 480, 16, 2
SetBuffer BackBuffer( )

bild0 = LoadImage( "Bild1adresse" )
bild1 = LoadImage( "Bild2adresse" )
wechsel = 0

While Not KeyHit( 1 )
      If MouseHit( 1 ) then wechsel = 1 - wechsel
     
      If wechsel = 0 then
            DrawImage 0, 0, bild0
      elseif wechsel = 1 ; Eigentlich brauch man nur else, aber ich geh auf Nummer sicher ;-)
            DrawImage 0, 0, bild1
      Endif
     
      Flip
      Cls
Wend

End


Damit dürfte es eigentlich klappen...
 

BadDeath

BeitragDi, Aug 12, 2008 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
@ DarkDragon: genau das schlug ich auch schon vor, mit dem selben Variabelnamen "Wechsel" - komisch.....
Hier: https://www.blitzforum.de/foru...961#303961
-~= real coders just code in binary =~-
 

DarkDragon-1993

BeitragDi, Aug 12, 2008 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry! Embarassed War nicht geplant. Hab mir die letzten Beiträge angesehen und gemerkt, das Problem ist nicht gelöst und einfach drauf los geschrieben... Sozusagen.
Also, auf jeden Fall weiß ich, das wir das Problem auf die selbe Art und Weise lösen würden Smile
Genau gesagt verstehe ich dann auch nichtmehr das Problem...
Also nochmal sry ^^

xaerox

Betreff: terrain ändern

BeitragSo, Jun 28, 2009 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo
ich will in meinem mapeditor terrains ändern können.

es ist ein standart-terrain nach dem laden vorhanden und wenn man auf terrain klickt und dann auf load Terrainimage, dann kommt ein dialog und ich suche ein bild (Heighmap) aus und drücke dannach auf ÖFFNEN

Es soll dann das Terrain, was neugeladen wurde ersetzen, so dass nicht mehr die standart heighmap da ist sondern das nue geladene

Code: [AUSKLAPPEN]

      Function Terrain()
      DrawBlock terraineditor, 200, 50
   If MouseX ()>=290 And MouseX ()<=(290+205) Then
   If MouseY ()>=170 And MouseY ()<=(170+43) Then
   DrawBlock terrain_import, 200, 50
   If MouseHit (1) Then

               terrainpfad$   = eps_FileDialog$( True, "JPG-Heightmaps (*.jpg)|*.jpg", 1, "", "", "", True )
              
          terrain1 = terrainpfad$
         Else
         terrain1=LoadTerrain("editor/defaultmap/terrain.jpg")
   EndIf
   EndIf
   EndIf
   End Function


leider kommt Unable to load terrain

MfG Thomas
Biker sind wahre Helden.
Auch Musiker.

Nicdel

BeitragSo, Jun 28, 2009 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Du meinst wohl eher
Code: [AUSKLAPPEN]

terrain1 = LoadTerrain(terrainpfad$)
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

hazumu-kun

BeitragSo, Jun 28, 2009 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
The_Nici hat Folgendes geschrieben:
Du kannst nicht einfach eine Variable = das bild machen, bild ist nur ein pointer auf den RAM, kannste nicht so drauf zeigen lassen.


Naund der pointer ist im grunde eine Addresse die als integer gespeichert ist. Wieso sollte man die dann nicht auf andere variablen übertragen können. Funktioniert wunderbar.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

hazumu-kun

BeitragSo, Jun 28, 2009 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Eingeproggt hat Folgendes geschrieben:
Ignoriert man mich hier gerne?

Sein anfänglicher Code tut genau das, wenn man meine vorgeschlagegene Änderung umsetzt.

Und wenn mans anders machen will, soll man sich BadDeaths Lösung anschauen. Die würde dasselbe machen.

@the_nici: Es ist schön, wenn du ihm Select-Case näherbringst, aber mit deiner Aussage von wegen Handles kann man ned so einfach zuweisen is schlicht und ergreifend falsch. Sonst würde ja nichtmal bild=LoadImage(...) funktionieren Rolling Eyes

EDIT:
erstens @smily: kein Problem Smile
Zweitens:
Wundert mich, dass der Code überhaupt ohne Absturz läuft... Ich dachte, man muss die Bilder NACH Graphics laden da sie sonst wieder weg sind?
(Is mir auch erst jetzt aufgefallen)


Wenn du keine Modi-Parameter für LoadImage übergibst ist das Speichermanagement auf 'managed' gestellt.
Heißt das Bilder bei VRAM Flush (Auflösung ändern, Graphics ausführen) in den RAM kopiert werden und dann wieder zurück.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

Nicdel

BeitragSo, Jun 28, 2009 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Keine Doppelposts
2. Das Thema ist schon längst geklärt. Es geht jetzt um das Problem von xaerox.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

xaerox

BeitragSo, Jun 28, 2009 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
ja also es wird standard terrain geladen
wenn ich das hier nicht mehr checke bzw. ich finde keine lösung, mache ich es gleich so, dass der terrain-pfad dem user gleich ab anfng abgefragt wird ohne dass eine standardsache vorhanden ist...das macht mir aber viel arbeit da ich haufen zeugs dann umproggen muss und bilder neu malen muss
wo bei mir manchmal die lust fehlt
Biker sind wahre Helden.
Auch Musiker.
 

da_poller

BeitragSo, Jun 28, 2009 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Global bild = Loadimage("bild.bmp")
Global bild1 = loadimage("bild1.bmp")

activeimage = bild

Graphics 1024, 768, 16, 1
While Not Keyhit(88)
Drawimage activeimage, 0, 0
If Mousehit(1) Then
activeimage = bild1
EndIf
Wend
End


einfacher denkfehler.. du hast activeimage immer am anfang der schleife auf bild gesetzt.. so wie oben muss es funktionieren.. interessante lösungsvorschläge hier. Laughing [/code]

Archangel

BeitragSo, Jun 28, 2009 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Wegen dem -->

Code: [AUSKLAPPEN]

Global bild = Loadimage("bild.bmp")
Global bild1 = loadimage("bild1.bmp")

Graphics 1024, 768, 16, 1
While Not Keyhit(88)
activeimage = bild
Drawimage activeimage, 0, 0
If Mousehit(1) Then
activeimage = bild1
EndIf
Wend
End


Dein Code sollte (so wie ich es verstanden habe) nur in dem zeitraum in dem deine Maustaste 1 (linke Maustaste) gedrückt ist, das zweite Bild (bild1) anzeigen und wenn die Taste nicht mehr gedrückt ist, das anfangs/standard Bild (bild) anzeigen.

Für mich ist es ein ganz einfacher Zeichenfehler ...
Benutze anstatt deinem MouseHit(1) einfach MauseDown(1). Nun wird die Variable in deinem Prozessabbild(sorry, aber das heißt so .. grobe Erklärung: Deine Eingänge werden in den Speicher geladen und sind dann dort für den Computer verfügbar) nicht nur für einen Prozessdurchlauf 1 wie es bei dir der fall ist, sondern für alle Durchläufe ... aber ich glaube ich muss dir MouseDown(1) nicht näher erklären!! Very Happy

Zudem würde ich das Ganze in eine Repeat - Until Schleife setzten!

Wenn nicht, hat der nette Herr über mir recht!! ^^

mfg Archangel

xaerox

BeitragSo, Jun 28, 2009 20:56
Antworten mit Zitat
Benutzer-Profile anzeigen
hmnmmmmmmmmmm^^
ich schreib am besten den ganzen code rein...

Code: [AUSKLAPPEN]

   ;terrain
   Global terraineditor = LoadImage("gfx\toolbox/terrain.jpg")
      Global terrain_import = LoadImage("gfx/toolbox/terrain_import.jpg")
      DrawImage terraineditor, 200, 50
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Function
      Function Terrain()
      DrawBlock terraineditor, 200, 50
   If MouseX ()>=290 And MouseX ()<=(290+205) Then
   If MouseY ()>=170 And MouseY ()<=(170+43) Then
   DrawBlock terrain_import, 200, 50
   If MouseHit (1) Then

               terrainpfad$   = eps_FileDialog$( True, "JPG-Heightmaps (*.jpg)|*.jpg", 1, "", "", "", True )
              
          terrain1 = terrainpfad$
         Else
         terrain1=LoadTerrain("editor/defaultmap/terrain.jpg")
   EndIf
   EndIf
   EndIf
   End Function
   
   Global kreuz = LoadImage("editor/kreuz.bmp")
   ;water
   
   
   ;3D-Models
   
   
   ;skybox
   
   
   ;weather
   
   
   ;3D Daten
   
   

         terrains=LoadTerrain("editor/defaultmap/terrain.jpg")
terrain1 = terrains
text1=LoadTexture ("editor/defaultmap/texture.jpg")


EntityTexture terrain1,text1,0,0



ScaleEntity terrain1,300,6000,300

ScaleTexture text1,1,1



 

 

cam=CreateCamera()

MoveEntity cam,1000,300,1000

CameraFogMode cam,1

CameraRange cam,1,30000

CameraFogRange cam,800,4000

CameraFogColor cam,40,140,255

CameraClsColor cam,40,140,255

light=CreateLight()

TurnEntity light,45,45,0
   
;savemap----------------------------------------








;Hauptteil Schleife:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Cls
While Not KeyHit(88)
RenderWorld
;3D Welt

;Bewegen
If KeyDown(205) Then
MoveEntity cam, 8, 0, 0
EndIf
If KeyDown(203) Then
MoveEntity cam, -8, 0, 0
EndIf
If KeyDown(200) Then
MoveEntity cam, 0, 0, 20
EndIf
If KeyDown(208) Then
MoveEntity cam, 0, 0, -15
EndIf

If KeyDown(54) Then
MoveEntity cam, 0, 0, 50
EndIf
;Rotieren
If MouseDown(2) Then
RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0
DrawImage kreuz, 800/2, 600/2
MoveMouse 5, 5
HidePointer
Else
ShowPointer
EndIf





;Bearbeitungsmenü
Select menue




;Terrain
Case 1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DrawImage btn_terrain_over, 0, 0
DrawImage btn_water, 54, 0
DrawImage btn_models, 107, 0
DrawImage btn_skybox, 178, 0
DrawImage btn_weather, 226, 0

DrawImage zwischen, 271, 0
DrawImage btn_save, 704, 0

   If MouseX ()>=54 And MouseX ()<=(54+53) Then
   If MouseY ()>=0 And MouseY ()<=(0+26) Then
   DrawImage btn_water_over, 54, 0
   If MouseHit (1) Then

      menue = 2                     ;zu Case 2 (Water)

   EndIf
   EndIf
   EndIf

   If MouseX ()>=107 And MouseX ()<=(107+71) Then
   If MouseY ()>=0 And MouseY ()<=(0+26) Then
   DrawImage btn_models_over, 107, 0
   If MouseHit (1) Then

      menue = 3                     ;zu Case 2 (3d-models)

   EndIf
   EndIf
   EndIf


   If MouseX ()>=178 And MouseX ()<=(178+48) Then
   If MouseY ()>=0 And MouseY ()<=(0+26) Then
   DrawImage btn_skybox_over, 178, 0
   If MouseHit (1) Then

      menue = 4                     ;zu Case 2 (skybox)

   EndIf
   EndIf
   EndIf

   If MouseX ()>=226 And MouseX ()<=(226+45) Then
   If MouseY ()>=0 And MouseY ()<=(0+26) Then
   DrawImage btn_weather_over, 226, 0
   If MouseHit (1) Then

      menue = 5                     ;zu Case 2 (wettereinstellungen)

   EndIf
   EndIf
   EndIf


Terrain()
EndSelect
Wend

Biker sind wahre Helden.
Auch Musiker.

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group