Problem mit Spiel

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Lifetec

Betreff: Problem mit Spiel

BeitragSa, Feb 04, 2006 13:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute ich habe mi9r gerade etwas geschrieben doch wenn ich es starte dann kommt immer das .

Code: [AUSKLAPPEN]

Image frame out of range


Weiß jemand was ich falsch gemacht habe ???

Hier mein BB-Code
Code: [AUSKLAPPEN]

Graphics 800,600,32,2
SetBuffer BackBuffer()

hinter = LoadImage("sterne.bmp")
schiff = LoadImage("Raumschiff.bmp")
rakete = LoadImage("Rakete.bmp")
X = 305
Y = 420

Repeat
 
 TileBlock hinter,0,H
 DrawImage schiff, X,Y
 DrawImage rakete, 100,100
 Flip
 

 
; Rand Testen

 If X < 0 Then X = 0
 If X > 605 Then X = 605
 If Y < 0 Then Y = 0
 If Y > 451 Then Y = 451
; Raumschiff Bewegen
 If KeyDown(200) = 1 Then Y = Y - 5
 If KeyDown(208) = 1 Then Y = Y + 5
 If KeyDown(205) = 1 Then X = X + 7
 If KeyDown(203) = 1 Then X = X - 7
; Rakete Abfeuern
 DrawImage rakete, 100,100
;Collision
 ImagesCollide (rakete, 100,100 , 1, schiff, X, Y, 2)
   Print "Hallo "

Until KeyHit(1)

Hubsi

BeitragSa, Feb 04, 2006 13:39
Antworten mit Zitat
Benutzer-Profile anzeigen
ImagesCollide (rakete, 100,100 , 1, schiff, X, Y, 2) -> Das Bild hat keine Frames, ergo ist der zu prüfende Frame auch gleichzeitig der erste, also 0 Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

HW

BeitragSa, Feb 04, 2006 13:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
 ImagesCollide (rakete, 100,100 , 0, schiff, X, Y, 0)

Es gibt keinen Frame mit der Nummer 1 oder 2.
Du hast wohl das mit dem Befehl ImagesCollide missverstanden bzw. du hast missverstanden, was Frames sind.
Ein Bild kann in mehrere Frames aufgeteilt werden. Diese sind dann fast eigenständige Bilder, nur dass alle Frames eines Bildes gleich groß sind. Nach der Angabe der Koordinaten eines Bildes kommt oft die Angabe der Framenummer, die gezeichnet/geprüft werden soll. Frames werden meist für Animationen verwendet, pro Animationsschritt ein Frame. So bringt man z.B. Bilder von Lebewesen zum Laufen.
Mit LoadAnimImage kann man Bilder mit Frames laden, mit LoadImage nicht. Frames werden übrigens nebeneinander in dem zu ladenden Bild gezeichnet. Bilder mit verschiedenen Frames kannst du mit DrawImage zeichnen, indem du nach den Koordinaten die Nummer des Frames angibst.
Auf www.blitzbase.de findest du sicher noch mehr Informationen.

Edit: Zu spät, aber ich hoffe, ich konnte dir noch was erklären.

Ach und: Wenn du willst, dass gerade bei der Kollision "Hallo" geprinted wird, solltest du den Code so umgestalten:
Code: [AUSKLAPPEN]
If ImagesCollide (rakete, 100,100 , 0, schiff, X, Y, 0) Then
Print "Hallo"
Endif
  • Zuletzt bearbeitet von HW am Sa, Feb 04, 2006 13:52, insgesamt einmal bearbeitet

Lifetec

BeitragSa, Feb 04, 2006 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok das funkuniert jetzt.


Aber jetzt habe ch eine zweite frage wie kann ich es den machen wenn das Raumschiff die Rakete beruhert das die Rakete verschwindet ich habe es schon mal aus probiert in dem ich darunter geschrieben habe.

Code: [AUSKLAPPEN]

FreeImage rakete

Aber das hat nicht funkuniert.
 

HW

BeitragSa, Feb 04, 2006 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
So wird das nichts. Du musst Types dafür verwenden.
Vorgehensweise:
Erstmal liest du dir eventuell Tutorials zu Types durch (z.B. auf www.blitzbase.de )
Dann machst du Folgendes:
1. Wenn geschossen wird, erstellst du ein neues Type für deine Rakete.
2. Beim Zeichnen der Rakete benutzt du eine For Each...Next Schleife.
3. Du löscht den Type, wenn sie kollidiert.

Natürlich musst du auch ein Type dafür definieren, z.B.:
Code: [AUSKLAPPEN]

Type rakete
Field x,y
End Type
  • Zuletzt bearbeitet von HW am Sa, Feb 04, 2006 13:58, insgesamt einmal bearbeitet

Lifetec

BeitragSa, Feb 04, 2006 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe es mal in der Online Hilfe Nachgeschlagen aber nich verstanden kannst du mir ein Beispiel proggen ?????
 

HW

BeitragSa, Feb 04, 2006 13:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein. Es bringt dir nichts, wenn du einfach den Code von anderen übernimmst. Du lernst nichts dabei.
Schau vllt noch auf www.robsite.de, da ist es sehr verständlich gemacht.
Die Online Hilfe ist dafür übrigens nicht so gut geeignet, eher Tutorials, die auch auf www.blitzbase.de sind.

Lifetec

BeitragSa, Feb 04, 2006 14:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok ich sieh es mir an jetzt habe ich noch ein Problem habe eben nebenbei, ein Programm schreiben wollen was ein Document (txt) ausliest.

Doch mein Problem is kaum hat man zwei Zeilen geschrieben kann es mein Programm mit ReadLine nicht mehr Lesen.

Kennt jemand einen Befehl mit dem ich ein ganzes Document auslesen kann ???
 

HW

BeitragSa, Feb 04, 2006 14:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du die Datei nach dem Schreiben lesen willst, musst du sie mit CloseFile() schliessen und nochmal mit ReadFile() oder OpenFile() öffnen.
Jedenfalls öffnen die oben genannten Befehle eine Datei vollständig.

SoNenTyp

BeitragSa, Feb 04, 2006 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Einfach solange Readline in einer Schleife ausführen bis EOF(file) True ist.
Gruss Der Typ.

User posted image

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group