Animation

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen

 

joni8a

BeitragDo, Sep 28, 2006 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich habe da noch eine frage wie mache ich das aus einer kanone am schiff eine kugel rausfligt und wenn sie trifft auch wieder verschwindet

joni8a

Christoph

BeitragDo, Sep 28, 2006 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Das wurde schon sehr oft besprochen. Such einfach mal nach Themen, die diese Frage beantworten. Smile
 

joni8a

BeitragDo, Sep 28, 2006 14:54
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo mit meinem "spiel" bin ich nun so weit:
Graphics 640,480
SetBuffer BackBuffer()
;bilderladen
st=LoadImage("stern.bmp")
ver=LoadImage("vertei.bmp")
att=LoadImage("attacke.bmp")
;transparente farbe
MaskImage ver ,255,0,255
MaskImage att ,255,0,255
MidHandle att
;haupschleife
Repeat
Cls
;sterne bewegen
X_stern=X_stern + 5 If X_stern=201 Then X_stern =1
;alle bilder malen;
TileImage st, X_stern,5
DrawImage ver,1,1
DrawImage att,MouseX(),MouseY()
;Kollision zwischen Raumstation und Schiff prüfen.
If ImagesCollide(ver, MouseX(), MouseY(), 0, att, 1, 1, 0) Then Text MouseX(), MouseY(),"bumm"
Until KeyHit(1)


aber der code funktioniert nicht warum?

joni8a

Schranz0r

BeitragDo, Sep 28, 2006 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil du nur einmal MouseX() und MouseY() prüfen kannst pro schleifendurchlauf.

Mach mal so

Mx = MouseX()
My = MouseY()
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 

Ava

Gast

BeitragDo, Sep 28, 2006 15:42
Antworten mit Zitat
Schranz0r hat Folgendes geschrieben:
Weil du nur einmal MouseX() und MouseY() prüfen kannst pro schleifendurchlauf.

Mach mal so

Mx = MouseX()
My = MouseY()



Absoluter Quatsch. Diese Regel gilt nur für MouseHit, MouseSpeed und KeyHit.
 

joni8a

BeitragDo, Sep 28, 2006 15:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Und woran liegt es denn?
 

Matthias

BeitragDo, Sep 28, 2006 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ersetzen
Code: [AUSKLAPPEN]

If ImagesCollide(att,MouseX(),MouseY(), 0, Ver, ImageWidth(ver), ImageHeight(ver),0)
 

Matthias

BeitragDo, Sep 28, 2006 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu deinem anderem Problem. Vieleicht hilft dir dieses Beispiel

Graphics 800,600,32,2

TFormFilter False

Global PlayDre,PlayerX=300,PlayerY=300
Global Player=CreateImage(30,30)
Global KugelX#,KugelY#
ClsColor 0,200,0

SetBuffer ImageBuffer(Player):Color 200,0,0:Rect 0,0,30,30
Color 255,100,0:Rect 0,0,30,30,0:Line 15,15,15,30
MidHandle Player



Global Kugel=CreateImage(3,30)
SetBuffer ImageBuffer(Kugel):Color 255,255,255:Rect 0,0,3,30
MidHandle Kugel

SetBuffer BackBuffer()

Repeat:
If KeyDown(203)=1 Then PlayDre=PlayDre-5
If KeyDown(205)=1 Then PlayDre=PlayDre+5

PlayDre=PlayDre Mod 360
Cls
Select KeyHit(57):Case 1:KugKX#=Cos(180-PlayDre):KugKY#=Sin(180-PlayDre)
KuUp=CopyImage(Kugel):RotateImage KuUp,PlayDre:KugSch=300
KugelX#=PlayerX:KugelY=PlayerY

End Select

Select KugSch:Case 0:Case 1:FreeImage KuUp:Default
KugelX=KugelX-KugKY#:KugelY=KugelY-KugKX#
DrawImage KuUp,KugelX#,KugelY#:KugSch=KugSch-1

End Select



UpdatePlayer
Flip

Until KeyDown(1)=1
End


Function UpdatePlayer()
Img=CopyImage(Player):RotateImage Img,PlayDre
DrawImage Img,PlayerX,PlayerY:FreeImage Img
End Function
 

joni8a

BeitragDo, Sep 28, 2006 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke das hilft mir aufjeden fall wenn ich es ein bischen änder,danke.
Aber leider komme ich nicht weiter mit dem "spiel" wenn ich das andere problem nicht löse.

joni8a

PS:wie kann ich verhindern das wenn ein schuss abgeganegn ist und ich noch mal spse trüge das denn der eine schuss wegeht

Schranz0r

BeitragDo, Sep 28, 2006 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
mit types


Code: [AUSKLAPPEN]

Graphics 800,600,0,2

Type shoot
  Field x
  Field y
End type

SetBuffer BackBuffer()
Repeat
Cls
 
Mx = MouseX()
My = MouseY()
Maushit = MouseHit(1)


If Maushit Then
   s.shoot = New shoot
   s\x = Mx
   s\y = My   
EndIf

For s.shoot = Each shoot
   Rect s\x, s\y, 5, 10, 1
    s\y = s\y - 4
    If s\y < -10 Then Delete s.shoot
Next
Flip
Until keyhit(1)


Das ist mal was simples zum thema Schuss
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 

joni8a

BeitragDo, Sep 28, 2006 17:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wie kann ich diese problem lösen:
Graphics 640,480
SetBuffer BackBuffer()
;bilderladen
st=LoadImage("stern.bmp")
ver=LoadImage("vertei.bmp")
att=LoadImage("attacke.bmp")
;transparente farbe
MaskImage ver ,255,0,255
MaskImage att ,255,0,255
MidHandle att
;haupschleife
Repeat
Cls
;sterne bewegen
X_stern=X_stern + 5 If X_stern=201 Then X_stern =1
;alle bilder malen;
TileImage st, X_stern,5
DrawImage ver,1,1
DrawImage att,MouseX(),MouseY()
;Kollision zwischen Raumstation und Schiff prüfen.
If ImagesCollide(ver, MouseX(), MouseY(), 0, att, 1, 1, 0) Then Text MouseX(), MouseY(),"bumm"
Until KeyHit(1)

Schranz0r

BeitragDo, Sep 28, 2006 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie, das der schuss gelöscht wird, wenn du einen gegner trifst?

Schau dir mal den Code an

Code: [AUSKLAPPEN]

Graphics 800,600,0,2

Type shoot
  Field x
  Field y
End type

SetBuffer BackBuffer()
Repeat
Cls
 
Mx = MouseX()
My = MouseY()
Maushit = MouseHit(1)


If Maushit Then
   s.shoot = New shoot
   s\x = Mx
   s\y = My   
EndIf

Rect 350,100,100,20,1 ;######### DER GEGNER

For s.shoot = Each shoot
   Rect s\x, s\y, 5, 10, 1
    s\y = s\y - 4
    If RectsOverlap(350,100,100,20,s\x,s\y,5,10)  Then Delete s.shoot ;######HIER WIRD DER SCHUSS GELÖSCHT
Next


Flip
Until keyhit(1)
 


einfach in dein BB kopieren!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 

joni8a

BeitragDo, Sep 28, 2006 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich habe das problem gelöst

wenn ihr trozdem vorschläge habt zu lösung denn postet sie trozdem denn kenne ich auch andere wege

Schranz0r

BeitragDo, Sep 28, 2006 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Na wie hast du's den gemacht?

Das wollen die anderen bestimmt auch wissen!

edit so ist besser:

Code: [AUSKLAPPEN]
Graphics 800,600,0,2

Type shoot
  Field x
  Field y
End type

SetBuffer BackBuffer()
Repeat
Cls
 
Mx = MouseX()
My = MouseY()
Maushit = MouseHit(1)


If Maushit Then
   s.shoot = New shoot
   s\x = Mx
   s\y = My 
    Zaehler = Zaehler + 1
EndIf

Rect 350,100,100,20,1 ;######### DER GEGNER

For s.shoot = Each shoot
   Rect s\x, s\y, 5, 10, 1
    s\y = s\y - 4
    If RectsOverlap(350,100,100,20,s\x,s\y,5,10) Then
         Delete s.shoot : Zaehler = Zaehler -1           ;######HIER WIRD DER SCHUSS GELÖSCHT
      ElseIf s\y =< -10 Then
         Delete s.shoot : Zaehler = Zaehler -1
      EndIf
      
Next

Text 10,10,"Shoots : " + Zaehler

Flip
Until keyhit(1)


Weil so wird der Schuss oben gelöscht, wenn er über den oberen Bildrand raus geht, und wenn er den Gegner trift!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 

joni8a

BeitragDo, Sep 28, 2006 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht diese problem sondern das andere.
Aus irgend ein grund wollte er bei sterne bewegen da wo der if befehl anfängt nicht auf eine linie haben sondern eine unter x_stern.

Und da habe ich noch eine frage was sind field und wie könnte ich den code am besten in meinen einfügen ohne das probleme entstehen(am 30 oktober bekomme ich ein buch über blitz da hört das fragen auf)

Schranz0r

BeitragDo, Sep 28, 2006 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du schonmal vorlessen willst:

KLICK MICH


Das ist das Community Tutorial

da steht alles drin!

Field ist wie der Name schon sagt ein Feld im Type.
aber les dir mal die Community-Tutorials durch.

Grüße
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 

joni8a

BeitragDo, Sep 28, 2006 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke und wie kann dein code nun am besten an meinen anpassen?

Kryan

BeitragDo, Sep 28, 2006 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
am besten gar nicht....

du guckst dir seinen code an und guckst wie er es macht
dann versuchst du es - am besten ohne wieder zu luschern - auf eigene Faust!
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

BladeRunner

Moderator

BeitragDo, Sep 28, 2006 19:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Und benutzt bitte codetags Wink
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
 

joni8a

BeitragDo, Sep 28, 2006 19:31
Antworten mit Zitat
Benutzer-Profile anzeigen
warum steht da immer s.shot kann man das s auch in f umwandeln

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group