Types gleichzeitig und einzeln behandeln
Übersicht

![]() |
ToeBBetreff: Types gleichzeitig und einzeln behandeln |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie kann ich types gleichzeitig und einzel behandeln?
Code: [AUSKLAPPEN] Graphics 800,600,16,1 Global Maus = CreateImage(20,20) SetBuffer ImageBuffer(Maus) Line 0,0,5,20 Line 0,0,20,5 Line 5,20,20,5 Global Bank = CreateImage(50, 50) SetBuffer ImageBuffer(Bank) Color 200, 10, 10 Rect 1, 1, 50, 150 ,1 Rect 1, 1, 150, 50, 1 Color 255, 255, 255 Rect 1, 1, 150, 20, 1 Rect 1, 1, 20, 150, 1 BB = ImageWidth(Bank) BH = ImageHeight(Bank) Type feld Field x Field y End Type Global b.feld Const NORMAL = 0 Const UP = 1 Const DOWN = 2 Const HIT = 3 HidePointer() SetBuffer BackBuffer() ;Schleife hier: Repeat If MouseHit(2) Then b = New feld b\x = 100 b\y = 100 EndIf Cls Rect 50,50,700,500,0 mx = MouseX() my = MouseY() If MS = NORMAL If MouseDown(1) Then MS = HIT ElseIf MS = HIT If MouseDown( 1 ) Then MS = DOWN Else MS = UP ElseIf MS = DOWN If Not MouseDown( 1 ) Then MS = UP ElseIf MS = UP MS = NORMAL EndIf For b = Each feld If MS = HIT If mx => b\x And mx <= b\x + BB If my => b\y And my <= b\y + BH Schieben = True EndIf EndIf ElseIf MS = UP Schieben = False EndIf If Schieben = True Then b\x = b\x + (mx - Oldmx) b\y = b\y + (my - Oldmy) EndIf If b\x < 50 Then b\x = 50:mx = 50 If b\y < 50 Then b\y = 50:my = 50 If b\x > 700 Then b\x = 700:mx = 700 If b\y > 500 Then b\y = 500:mx = 500 DrawImage Bank,b\x,b\y DrawImage Maus,mx,my Next Flip Oldmx = mx Oldmy = my Until KeyHit(1) End Wie ihr seht wird immer wenn man die rechte Maus-Taste drückt eine neue "Bank" erstellt (bzw. ein neuer Type...)Wenn ich jetzt darauf klicke und es bewegen möchte,klappt das auch. wenn ich jezt aber 2 erstellt habe, dann bewege ich den 1. auch mit ![]() |
||
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! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Code einrücken.
2. Deinem Type ein ID-Feld übergeben 3. Auf die ID prüfen und nur die passende Bank bewegen. |
||
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 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie mach ich das denn? ich hab echt keine ahnung... ![]() |
||
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! |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mittels IF halt das ID Feld aller Types ansehen und wenn es die gewünschte ID hat, entsprechende Operationen darauf ausführen (darin gespeicherte Position ändern oder was auch immer du machen möchtest)
Alternativ kannst du auch Handle und Object nutzen, schau dazu auf www.blitzbasic.com in der blitz manual nach um zu verstehen was die Befehle machen und wie man sie nutzt. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
darth |
![]() Antworten mit Zitat ![]() |
---|---|---|
omg -.-
eine id ist eine eindeutige zuweisund, durch die man das objekt erkennt wir in der schweiz haben eine ID (identitätskarte) durch die kann bestimmt werden: "aaah, das ist der darth" so... wenn man dieses wissen hat (was jeder kluge kopf haben sollte!) dann kann man das übersetzen. weisen wir dem type (mit dem man umzugehen wissen sollte) eine id zu. was bedeutet das? Code: [AUSKLAPPEN] type fu
field id field alles andere end type BOA! man sieht, ein ID feld! beim erstellen des types wird dem id nun eine nummer (oder ein toller code) zugeordnet. durch das man das type wieder erkennen kann! jetzt geht man alle types durch Code: [AUSKLAPPEN] for f.fu=each fu
next toll! wenn man jetzt etwas für alle tun will, dann haut man die anweisung da rein! wenn man will, dass nur ein bestimmtes objekt das tut, sucht man nach dem objekt mit der richtigen ID! (für faule und langsame nochma:) Code: [AUSKLAPPEN] for f.fu=each fu
if f\id=GESUCHT then ;mach was endif next war das wirklich so schwer?! |
||
Diese Signatur ist leer. |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
mir is klar wie man das macht. Nur wie ich jedem eine andere ID zuweise weiß ich nich.Da müsst ich ja 3-Seite-Text schreiben, um jedem eine zuzuweisen... Ich wollte nur wissen wie es auch einfacher geht... | ||
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! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Globaler Counter der erhöht wird wann immer eine Instanz erstellt wird. | ||
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 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jap danke ! Ich hatte auch schon an sowas gedacht, aber hatte keine ahnung wie ...
Code: [AUSKLAPPEN] Type f Field x Field y Field ID Field Prüfer End Type So oder? ~Edit~ Funtzt auch nich... Code: [AUSKLAPPEN] Graphics 800,600,16,2 Global Maus = CreateImage(20,20) SetBuffer ImageBuffer(Maus) Line 0,0,5,20 Line 0,0,20,5 Line 5,20,20,5 Global Bank = CreateImage(50, 50) SetBuffer ImageBuffer(Bank) Color 200, 10, 10 Rect 1, 1, 50, 150 ,1 Rect 1, 1, 150, 50, 1 Color 255, 255, 255 Rect 1, 1, 150, 20, 1 Rect 1, 1, 20, 150, 1 BB = ImageWidth(Bank) BH = ImageHeight(Bank) Type feld Field x Field y Field ID Field P End Type Global b.feld Global S_Geld = 10000 Global G_Geld = 10000 Const NORMAL = 0 Const UP = 1 Const DOWN = 2 Const HIT = 3 HidePointer() SetBuffer BackBuffer() ;Schleife hier: b = New feld b\x = 750 b\y = 100 b\p = 1 b\ID = b\p Repeat Cls Rect 50,50,700,500,0 mx = MouseX() my = MouseY() If MS = NORMAL If MouseDown(1) Then MS = HIT ElseIf MS = HIT If MouseDown( 1 ) Then MS = DOWN Else MS = UP ElseIf MS = DOWN If Not MouseDown( 1 ) Then MS = UP ElseIf MS = UP MS = NORMAL EndIf For b = Each feld If MS = HIT If b\ID = 1 If mx => b\x And mx <= b\x + BB If my => b\y And my <= b\y + BH Schieben = True EndIf EndIf EndIf ElseIf MS = UP If mx => b\x And mx <= b\x + BB If my => b\y And my <= b\y + BH S_Geld = S_Geld - 200 b = New feld b\x = 750 b\y = 100 b\p = b\p + 1 b\ID = b\p EndIf EndIf Schieben = False EndIf If Schieben = True Then b\x = b\x + (mx - Oldmx) b\y = b\y + (my - Oldmy) EndIf If b\x < 50 Then b\x = 50:mx = 50 If b\y < 50 Then b\y = 50:my = 50 If b\x > 700 Then b\x = 700:mx = 700 If b\y > 500 Then b\y = 500:my = 500 DrawImage Bank,b\x,b\y Next If MS = HIT If mx => 0 And mx <= 50 If my => 200 And my <= 250 G_Geld = G_Geld + 1000 S_Geld = S_Geld + 1000 EndIf If my => 300 And my <= 350 G_Geld = G_Geld - 1000 S_Geld = S_Geld - 1000 EndIf EndIf EndIf If S_Geld < 0 Then S_Geld = 0 ElseIf S_Geld > 15000 S_Geld = 15000 EndIf If G_Geld < 0 Then G_Geld = 0 ElseIf G_Geld > 15000 G_Geld = 15000 ElseIf G_Geld > 15000 And S_Geld < 15000 S_Geld = ((G_Geld - S_Geld) +(G_Geld-S_Geld)) EndIf DrawImage Maus,mx,my Text 1,1, " Geld : "+S_Geld Text 1,15,"Geliehen : "+G_Geld Rect 0,200,50,50,0 Rect 0,300,50,50,0 Flip Oldmx = mx Oldmy = my Until KeyHit(1) End ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie wäre es, wenn du erst über eine Lösung nachdenkst und dann drauf los programmierst?
Da von BRs antwort bis zu deinem Codeposting nur 10min vergingen bezweifel ich SEHR, dass du erst über eine Lösung nachgedacht hast. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
darth |
![]() Antworten mit Zitat ![]() |
---|---|---|
...
Code: [AUSKLAPPEN] global nr
;irgendwas f.fu=new fu : f\id=nr : nr=nr+1 kann das schwer sein? |
||
Diese Signatur ist leer. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was ist eine Globale ?
Was ist eine Instanz ? Es mangelt wie immer an Grundlegendem Wissen und an eigenen Gedanken. |
||
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 |
![]() |
Gameprogman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] for i=0 to was weiß ich... f.fu=new fu f\id=i next so müsste das doch problemlos funktionieren.... eine ID weißt du dem Objekt genau wie zb. die x oder y Koordinate zu. dazu muss man nur wissen was ein type ist, und wie man eine Schleife benutzt. Und natürlich muss man etwas nachdenken, woran es bei mir allerdings auch schon manchmal gescheitert ist ![]() |
||
www.bandradr.de ! Awesome ! |
![]() |
AraneA |
![]() Antworten mit Zitat ![]() |
---|---|---|
das geht aber nur solange du alle instanzen auf einmal erstellst.... | ||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey ! Habs gelöst (ich denke es ist angebracht dies zu sagen: Ich habs nich alleine gelöst. Eingeproggt hat mia geholfen ![]() Code: [AUSKLAPPEN] Graphics 800,600,16,2 Global Maus = CreateImage(20,20) SetBuffer ImageBuffer(Maus) Line 0,0,5,20 Line 0,0,20,5 Line 5,20,20,5 Global Bank = CreateImage(50, 50) SetBuffer ImageBuffer(Bank) Color 100,100,100 Rect 0,0,10,50 Rect 0,0,50,10 BB = ImageWidth(Bank) BH = ImageHeight(Bank) Type feld Field x Field y Field ID Field rot End Type Global b.feld Global S_Geld = 10000 Global G_Geld = 10000 Global Bank_Geld = 200 fps# = 50.0 fpsWait# = 1000/fps# HidePointer() SetBuffer BackBuffer() ;Schleife hier: b = New feld b\x = 780 b\y = 100 b\ID = ID_NR:ID_NR = ID_NR + 1 Color 200,200,200 Repeat StartT# = MilliSecs() Cls Rect 50,50,700,500,0 mx = MouseX() my = MouseY() For b = Each feld If MouseDown(1) If mx => b\x And mx <= b\x + BB If my => b\y And my <= b\y + BH Schieben = True Objekt = b\ID EndIf EndIf EndIf If Schieben = True Then For i.feld = Each feld If i\ID = Objekt Then i\x = mx-BB/2 i\y = my-BH/2 If MouseHit(2) Then RotateImage Bank,90 EndIf Next If Not MouseDown(1) b = New feld b\x = 800 b\y = 100 b\ID = ID_NR:ID_NR = ID_NR + 1 Schieben = False EndIf EndIf If b\x < 51 Then b\x = 51 If b\y < 51 Then b\y = 51 If b\x > 699 Then b\x = 699 If b\y > 499 Then b\y = 499 DrawImage Bank,b\x,b\y Text 100,100,Objekt+". Object ausgewält" Next If MouseHit(1) If mx => 0 And mx <= 50 If my => 200 And my <= 250 G_Geld = G_Geld + 1000 S_Geld = S_Geld + 1000 EndIf If my => 300 And my <= 350 G_Geld = G_Geld - 1000 S_Geld = S_Geld - 1000 EndIf EndIf EndIf DrawImage Maus,mx,my Text 1,1, " Geld : "+S_Geld Text 1,15,"Geliehen : "+G_Geld Rect 0,200,50,50,0 Rect 0,300,50,50,0 Flip SleepTime# = fpsWait#-MilliSecs()+StartT# If SleepTime# > 2 Then Delay SleepTime# Until KeyHit(1) End ![]() |
||
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! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group