2 Fragen = Keine Lösung in Sicht

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Leroy

Betreff: 2 Fragen = Keine Lösung in Sicht

BeitragSo, Jun 10, 2007 22:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe zwei Fragen und bisher keine Lösung in Sicht...
Undzwar würde ich gerne wie bei dem Spiel Falling Knuddels also nach dem Prinzip Gegenstände von oben herabfallen lassen... undzwar immer eine bestimmte maximale Anzahl von Gegenständen. Leider komme ich da wohl an Types nicht vorbei... ich habe es schon ausprobiert aber bin leider kläglich gescheitert... der ganze Sonntag Nachmittag für nix Evil or Very Mad
Also das währe meine erste Frage und meine zweite:
Wie kann ich dann eine Imagescollide- Abfrage für alle runterkommenden Grafiken machen?

Ich bedanke mich schonmal für alle Antworten.
Mfg.
Leroy

Christoph

BeitragSo, Jun 10, 2007 22:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kann jeden Eintrag eines Types einzeln ansprechen mit:

ql:for ; ql:each

in dieser Schleife machst du dann die imagescollide abfrage

Leroy

BeitragSo, Jun 10, 2007 22:56
Antworten mit Zitat
Benutzer-Profile anzeigen
mh... versteh ich net... wenn ich zum Beispiel ne If-Abfrage machen will:
Wenn ein Typ auf meinen Paddle trifft dann lösch das Type und füge der Variable bla +1 hinzu?
Wie würde so ne if dann ausehen?

Smily

BeitragSo, Jun 10, 2007 23:08
Antworten mit Zitat
Benutzer-Profile anzeigen
hehe mein Spiel scheint ja richtig berühmt zu werden Smile *kleiner scherz*

Hier war mein erster Ansatz. Das was du haben möchstest dürfte da mit irgendwo drinn stecken
Code: [AUSKLAPPEN]
Type knuddels
 Field x
 Field y
 Field f
End type
Graphics 800,600,16,2
HidePointer()
setbuffer backbuffer()
AutoMidHandle 1
TFormFilter 0
Local knuddel[4]
Restore knuddel_data
knuddel[0] = BitzEdit_RestoreImage%()
HandleImage knuddel[0],0,imageheight(knuddel[0])
MaskImage knuddel[0],255,0,255

ScaleImage knuddel[0],2,2

For X = 1 To 4
 knuddel[x] = CopyImage(knuddel[x-1])
 ScaleImage knuddel[x],1,0.75
Next
seedrnd millisecs()
ftimer = CreateTimer(60)
Level=1
Repeat
 cls
Rect MouseX()-50,500,100,5
Line 0,500+imageheight(knuddel[4]),800,500+imageheight(knuddel[4])
If Rand(0,100) <= Level
knuddels.knuddels = New knuddels
knuddels\x = Rand(0,800)
knuddels\y = 0
EndIf

 For knuddels.knuddels = Each knuddels
  DrawImage knuddel[knuddels\f],knuddels\x,knuddels\y

 
  If Not knuddels\f
    knuddels\y=knuddels\y + 4
   For col.knuddels = Each knuddels
    If col\f = 4
     If ImagesCollide(knuddel[0],knuddels\x,knuddels\y,0,knuddel[4],col\x-13,col\y,0) And ImagesCollide(knuddel[0],knuddels\x,knuddels\y,0,knuddel[4],col\x+13,col\y,0) knuddels\f = 1
    End if
   Next
   If knuddels\y => 600 knuddels\f = 1
   If ImageRectCollide(knuddel[0],knuddels\x,knuddels\y,0,mousex()-50,500,100,5) Delete knuddels.knuddels:punkte=punkte+1: If punkte Mod 10 = 0 Then level=level + 1
  Else
   If knuddels\f < 4 Then knuddels\f = knuddels\f + 1
   If knuddels\f = 4 And knuddels\y < 500 + ImageHeight(knuddel[2]) Then end
  End if
 Next
  Text 0,0, "Punkte: " + Punkte
  Text 0,20, "Level: " + Level
  WaitTimer(ftimer)

  Flip
Until KeyHit(1)

Function BitzEdit_RestoreImage%(frame%=1)
 Read w%: Read h%
 image=CreateImage(w%,h%,frame%)
 SetBuffer ImageBuffer(image)
 LockBuffer ImageBuffer(image)
 For y=0 To h%-1
  For x=0 To w%
   Read rgb%
   WritePixelFast x,y,rgb%
  Next
 Next
 UnlockBuffer ImageBuffer(image)
 SetBuffer BackBuffer()
 Return image
End Function

.knuddel_data
Data 26
Data 22
Data $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF
Data $FF00FF, $000000, $000102, $050001, $010101, $FF00FF, $060000, $010101
Data $000200, $010002, $000100, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF
Data $FF00FF, $FF00FF, $000000, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF
Data $FF00FF, $FF00FF, $000000, $020202, $283212, $2B340D, $23320D, $2A3211
Data $2C3013, $242E0F, $020300, $020101, $010201, $010100, $010201, $FF00FF
Data $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $000000, $FF00FF, $FF00FF
Data $FF00FF, $FF00FF, $FF00FF, $FF00FF, $000002, $2D3B12, $24320C, $2A310F
Data $A8D83F, $AED943, $24350C, $ABD83C, $57C85C, $2A3110, $58C55D, $59C361
Data $54BF5C, $030104, $030300, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF
Data $000000, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $060404
Data $272F0C, $ABDB40, $ABDB42, $ABD93E, $ACD93F, $ABDA3F, $ABDB44, $ACD344
Data $53C55C, $AAD93E, $ADD83F, $54C659, $000400, $030305, $FF00FF, $FF00FF
Data $FF00FF, $FF00FF, $FF00FF, $000000, $FF00FF, $FF00FF, $FF00FF, $FF00FF
Data $FF00FF, $FF00FF, $293912, $27310F, $293012, $A8DA40, $AAD93E, $AAD73F
Data $AAD83D, $AFDE40, $A5DB3C, $AFD942, $A8DB40, $57C05C, $2B2E10, $273311
Data $010000, $030102, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $000000, $FF00FF
Data $FF00FF, $FF00FF, $FF00FF, $020302, $27310D, $263210, $ABDA3F, $ACD93B
Data $AAD63F, $ABDE3F, $B0E049, $A9D942, $A6D940, $B3DB42, $A9D840, $ACD53C
Data $ADDF41, $A9DB3F, $59BF60, $243610, $010001, $000000, $FF00FF, $FF00FF
Data $FF00FF, $000000, $FF00FF, $FF00FF, $FF00FF, $010204, $040103, $27360A
Data $ACD942, $ADD942, $A7DC44, $B1DF41, $AED543, $AADC40, $A8D539, $ACD83F
Data $A7DA3F, $ACDD43, $ACDA43, $A7D93C, $ACDA42, $B0DD40, $59BD5D, $58C75F
Data $050502, $010004, $FF00FF, $FF00FF, $000000, $FF00FF, $FF00FF, $FF00FF
Data $020401, $030304, $58C35E, $ABDC41, $AAD93F, $ACD73F, $A8DB41, $ADDB40
Data $A9DA41, $AEDD43, $A9D93C, $ACDB42, $A9D73C, $ACDA3E, $ABDD45, $AED73E
Data $A9DC40, $ABDB40, $57C25C, $00A97D, $030403, $000000, $FF00FF, $000000
Data $FF00FF, $FF00FF, $FF00FF, $272E0F, $28330F, $282E0D, $AEDF45, $A9D740
Data $ACDA3E, $A8DA40, $AAD440, $ACD93B, $A9DB43, $A8D741, $ABDC3B, $A8D840
Data $ABDA3F, $AAD943, $A9DA3D, $ADD73F, $A8DD3F, $57C15D, $03A87C, $000200
Data $000000, $FF00FF, $000000, $FF00FF, $FF00FF, $2B320C, $273010, $AADD40
Data $A8DB3E, $AED93F, $A9DC3D, $ACD641, $ABD93D, $A8E03F, $29300D, $26320D
Data $ADD93D, $252F0F, $2B310C, $A8DD40, $ACD63C, $A9D741, $56C65C, $5BBD5D
Data $24300C, $000103, $010000, $030303, $FF00FF, $000000, $FF00FF, $FF00FF
Data $292E0F, $AADF42, $ACD93E, $A8D63C, $A9D540, $ABDA43, $A7DC40, $AED63B
Data $A8D840, $C0DF77, $29310D, $A8D63F, $C5E473, $223112, $A9D83C, $A8DC45
Data $ABD83D, $ACDA40, $55C05A, $59C25D, $00AC76, $030004, $000000, $000000
Data $000000, $FF00FF, $000300, $253010, $AFDA3C, $ABDD48, $B0DA43, $A7E03F
Data $ABD83D, $A6D740, $AEDC3F, $ADDA3F, $26360C, $272E0A, $ACDB44, $23300B
Data $28310B, $ADD841, $ADD83C, $A7DB3B, $AADA3F, $AAD741, $59C35C, $01A77E
Data $00AB7C, $000000, $010101, $000000, $FF00FF, $030002, $2A310F, $58C35D
Data $27310E, $AADA3B, $AFDA42, $A9D841, $ADD93D, $A8D93F, $A3D53F, $2B300E
Data $253511, $A9D93C, $2B3010, $27310E, $A8D940, $AAD53C, $AAD943, $AADB41
Data $A7DE3D, $5BBF5D, $00AD79, $01A977, $000000, $030303, $000000, $FF00FF
Data $FF00FF, $24340D, $242C0F, $ACE040, $ACD844, $A8D640, $ADDF41, $A9DB40
Data $AAD93C, $ADDB3D, $AADD3F, $AAD441, $ABDB3A, $ACDB40, $A6D941, $ADD93E
Data $A8DD3C, $A6DA41, $ACD53E, $ABD33D, $54C35C, $00A77B, $04AB7E, $040404
Data $000000, $000000, $FF00FF, $050103, $273612, $AEDD3B, $ADDA49, $A9DA3B
Data $ADDB3D, $AAD640, $AAD83F, $A9D841, $ABD941, $A9D73E, $ACDA3E, $AAD940
Data $A7D73E, $ADDA3E, $A6D93E, $ACD641, $ABD93D, $ABD941, $58C95E, $56C35E
Data $030400, $000000, $000000, $FF00FF, $000000, $000000, $000200, $58C25D
Data $ABD543, $A8DB3D, $ABD73E, $57C661, $AAD83E, $ABDB3D, $AAD63D, $AAD840
Data $29330C, $A6D741, $ADDA3F, $AADC40, $262F0D, $A9D93F, $ACD940, $ABDB41
Data $A7D63D, $AADA3E, $5AC15B, $00A67C, $040201, $000000, $010101, $000000
Data $000000, $010101, $5BC25B, $56C55D, $57C05D, $57C55C, $AADB40, $AEDA42
Data $AADA40, $ABD63F, $A6DA41, $ADD941, $28300B, $272E10, $26330F, $ADD93E
Data $ACD83F, $A7DB3D, $AEDC44, $AED73F, $A9DE3E, $56C25E, $02A779, $01AA7E
Data $000000, $000000, $000000, $060505, $000101, $000001, $05A97C, $000402
Data $292C0B, $ADD73E, $A6D93F, $ACDC40, $ABD941, $B2DD40, $A7DA3E, $A7D943
Data $AEDE3D, $A6D441, $ACDC40, $ABDA42, $AAD843, $58C15C, $ACDD3E, $58BE5E
Data $5CC65F, $08B182, $00AA7A, $000000, $040404, $000000, $FF00FF, $020201
Data $030304, $000200, $000003, $56C75C, $57C45C, $ABDB43, $ADDC43, $A9D23C
Data $AADD44, $B0DD3F, $AED941, $56C35C, $AFDE3F, $A8D941, $A8D93D, $B3DB3A
Data $54C25B, $57C260, $5AC75E, $00A679, $02AC7C, $070303, $000000, $020202
Data $000000, $FF00FF, $FF00FF, $010200, $000001, $000100, $020204, $2A2F0F
Data $59C55B, $59C25A, $23370D, $AED63F, $56C15E, $56C35E, $56C261, $5CC25E
Data $27330D, $58C360, $53C55F, $293011, $02A779, $00A97E, $08B07B, $000106
Data $000000, $020202, $FF00FF, $000000, $FF00FF, $FF00FF, $FF00FF, $FF00FF
Data $050200, $000100, $040406, $010002, $010103, $303713, $233111, $28320D
Data $050201, $050303, $000508, $000000, $010101, $020302, $040201, $010101
Data $010300, $000000, $040404, $060504, $FF00FF, $FF00FF, $000000, $FF00FF
Data $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $020001, $020402, $010200
Data $FF00FF, $020402, $020000, $000102, $030407, $020000, $FF00FF, $030403
Data $000000, $FF00FF, $040204, $050304, $000402, $FF00FF, $FF00FF, $FF00FF
Data $FF00FF, $000000
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, Jun 10, 2007 23:13, insgesamt einmal bearbeitet

Leroy

BeitragSo, Jun 10, 2007 23:11
Antworten mit Zitat
Benutzer-Profile anzeigen
oj... lass mich raten um das zu verstehen brauch ich Abi oder? Xd ^^
Ne irgendwie fehlt mir trotz einiger Tuts einfach das Verständniss für Types... ka ^^
aufjedenfall danke, werde mich mal reinarbeiten...!

Smily

BeitragSo, Jun 10, 2007 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm der code sieht nur kompliziert aus, weil ich unten in hexform das bild rangehangen habe. ^^
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

StepTiger

BeitragSo, Jun 10, 2007 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Arbeite mal die Tutorials auf Robsite durch, da werden glaube auch Types behandelt Wink
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.

Dottakopf

Betreff: Vielleicht hilft das

BeitragMo, Jun 11, 2007 12:21
Antworten mit Zitat
Benutzer-Profile anzeigen
1) type definieren...
Code: [AUSKLAPPEN]

type objekt
  field objekt_x
  field objekt_y
end type


2) Type erstellen
In einer schleife die objekte(den typ) erstellen u. werte festlegen
(Für "info." kanst du einsetzten was du willst)

Code: [AUSKLAPPEN]

   info.objekt = new objekt
       info\objekt_x = Rnd(0,800)
       info\objekt_y = Rnd(0,600)


3) Type etwas "machen lassen"
Jezt musst du sagen was mit allen (each) types passieren soll
Code: [AUSKLAPPEN]

  for info.objekt = each objekt                    ; für jedes objekt
        info\objekt_y = info\objekt_y +1       ;bewegen
        oval info\objekt_x,info\objekt_y,5,5   ;objekt zeichnen
  next


So und nun zu :
Zitat:

mh... versteh ich net... wenn ich zum Beispiel ne If-Abfrage machen will:
Wenn ein Typ auf meinen Paddle trifft dann lösch das Type und füge der Variable bla +1 hinzu?
Wie würde so ne if dann ausehen?


Das muss auch mit in die "for / each " Schleife rein (punkt 3):

Code: [AUSKLAPPEN]

for info.objekte = each objekt
   
if imagescollide(objekt,info\objekt_x,info\objekt_y,0,bla,x,y,0)
   delete info.objekt
   punkte = punkte +1
end if

next


Hoffentlich konnte ich dir weiterhelfen,denn wenn man types erstmal kann sind sie ne feine sache.

Hier ist nochmal der OH link für types (sollte man auf jeden Fall mal durchgearbeitet haben)
http://www.blitzbase.de/tutorials/shadow_1.htm

mfg Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

kriD

BeitragMo, Jun 11, 2007 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kann statt types auch für jedes field ein eigenes array machen, is vielleicht einfacher... Wink
 

Lador

BeitragMo, Jun 11, 2007 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, des kommt aber immer darauf an, wie viele man machen soll. Außerdem sind sie einfacher "zu bedienen", weil du dir nicht für X zB die ID 3 merken musst.

MFG Lador

Leroy

BeitragMo, Jun 11, 2007 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
@Dottakopf:
Ich bedanke mich erstmal recht Herzlich für deine Hilfe.
Ich denke das ich mit dieser Grundlage gut arbeiten kann und somit einen Faden zur Welt der Types bekomme ^^
Ich hoffe das es dich nicht stören würde, falls ich mich bei weiteren Frage nochmal melden würde?

Mfg.
Leroy

/Edit:

Leier ergibt sich schon ein Problem... habe mir das alles mal angeschaut und ihr habt recht: Es ist garnicht so schwer Very Happy
Nun will ich aber das er nicht ununterbrochen Types erstellt sondern sobald z.B. 20 Types sich auf dem Bildschirm befinden soll er aufhöhrne und erst weiter machen wenn es wieder wenig sind... wie setze ich das ganze um?
Ich habe es Anhand des Beispieles mit vollgendem versucht, was aber nicht klappte:

If info.objekt < 20 then
...
endif

Klappt aber wie ich mir dachte irgendwie nicht so ganz... ^^

Also bin ich wohl nochmal auf eure Hilfe angewiesen?
 

Lador

BeitragMo, Jun 11, 2007 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, wie wäre es, wenn du die Types durchlaufen lässt, und dann in der Zählschleife jedes Mal anzahl = anzahl + 1 machst? Dann machste eben "wenn anzahl >= 20 dann mache dies und das".

Hoffe das konnte dir helfen.

MFG Lador

Leroy

BeitragMo, Jun 11, 2007 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
perfekt, das hat mir super geholfen! Danke Very Happy
Neu hier im Forum und schon so viele Tolle Hilfe! Danke nochmal @All!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group