Schuss und Bild

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Quäiny

Betreff: Schuss und Bild

BeitragMo, Feb 11, 2008 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Schuss ist zusehen, aber ich kann nur ein bild von der animation erkennen und die restlichen bilder sind auch vom erboden verschluckt worden!!!

Code: [AUSKLAPPEN]


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


;Dateien hochladen
Global Hintergrund=LoadImage ("wolken.bmp")
Global Flugzeug = LoadImage ("Flugzeug22.bmp")
Global Explosion=LoadAnimImage("explo.bmp",48,48,0,10)
Global troop=LoadAnimImage("trooprunner.bmp",54,90,0,12)
Global Turm=LoadImage("turm.bmp")
Global laser = LoadImage("defiant.bmp")
Global Bruecke=LoadImage("brücke3.bmp")
Global Bruecke2=LoadImage("brücke4.bmp")

;troop dort hinsetzen, wo er sich im Spiel befinden soll
Global troop_x =350, troop_y = 440, shot_counter=0

Type shot ;erstellt den Type "shot"
Field shot_x ;x Koordinate
Field shot_y ;y Koordinate
End Type

;Farbe der Bilder verschwinden lassen
MaskImage Flugzeug,255,255,255
MaskImage Explosion,0,255,0
MaskImage troop,0,0,0
MaskImage Bruecke,255,255,255



Repeat
Cls
;Animation der Explosion
If MilliSecs() > tmrExplosion + 100 Then
tmrExplosion=MilliSecs()
frmExplosion=(frmExplosion + 1) Mod 10
End If

;Variablen der Funktionen
movetroop()
createLaser()


Flip
Until KeyHit(1)




Function movetroop()
;troop soll bewegt werden
If KeyDown(203) Then troop_x = troop_x - 1
If KeyDown(205) Then troop_x = troop_x + 1
If KeyDown(208) Then troop_y = troop_y -1
If KeyDown(200) Then troop_y = troop_y +1

;troop soll sich nur in einem bestimmten Teil bewegen
If PosY > 500 Then troop_y = 500
If PosY < 400Then troop_y = 400
If PosX > 750 Then troop_x = 750
If PosX < 5Then troop_x = 5

;Animation von troop
If MilliSecs() > tmrtroop + 100 Then
tmrtroop=MilliSecs()
frmtroop=(frmtroop + 1) Mod 12
End If


;zeichnet troop auf die Grafik
DrawImage troop,troop_x,troop_y, frmtroop


End Function

 

Function createlaser()
If KeyDown(57) Then
shot_counter = shot_counter +1
End If

;sollte der Zähler 5 erreicht haben, erstelle neuen schuss
If shot_counter = 5 Then

info.shot = New shot ;Schuss wird erstellt
info\shot_x = troop_x +5 ;da er ja beim Spieler erstellt werden soll : wird die Schusskoordinate(shot_X) auf troop_x und +5 rüber gelegt
info\shot_y = troop_y ;beim Y wert ist es nicht anders, da der troop ja auch rauf und runter fahren kann

shot_counter = 0 ; den Zähler auf 0 damit es wieder von vorne losgehen kann
End If


; so nachdem der Schuss/laser erstellt wurde, müssen wir ja sagen das JEDER schuss sich nach oben bewegen soll

For info.shot = Each shot ; so wird jeder einzelne Schuss angesprochen
info\shot_x = info\shot_x +8 ; die Schüsse werden um -8 nach oben bewegt
DrawImage laser,info\shot_x,info\shot_y ; jetzt noch jeden schuss malen
Next

End Function

TileImage Hintergrund
DrawImage Turm,500,150
DrawImage Flugzeug,550,300
DrawImage Attacke,550,300, frmAttacke
DrawImage bruecke,1,1
DrawImage Bruecke2, 100,100



End

Progger93

BeitragMo, Feb 11, 2008 18:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
die restlichen Bilder sind nicht da, weil du sie nicht in der Schleife sondern kurz vorm Ende des Programms zeichnest.So hast du nichtmal 1 Millisekunde um sie zu sehen^^.
Was die Animation angeht hab ich bisher noch nichts gefunden.

MFG Pascal
MfG Pascal
Win 7|T7250@2.0Ghz|3GB RAM|M8600GT

KddC

BeitragMo, Feb 11, 2008 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
könntest du mir die dateien mal geben....dann guck ich mal....

meinst du du bekommst dein problem schneller gelöst, wenn du zwei thread zum selben code aufmachst...wenn dir noch ein anderes problem auffällt kannst du das auch im selben thread posten... Wink
mfg
Mfg Kddc

Macbook Pro 13" 2,66Ghz

BladeRunner

Moderator

BeitragMo, Feb 11, 2008 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
ich bitte darum dass Du so verfährst wie von Kddc angedacht. Du musst nicht für jede Frage zum selben Thema einen neuen Thread eröffnen.
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

Dottakopf

BeitragDi, Feb 12, 2008 9:32
Antworten mit Zitat
Benutzer-Profile anzeigen
der schuss ist zu sehen aber die restelichen bilder kannst du nicht sehen, ja aber welche den genau jetzt?
Nicht jeder user schlept sich durch fremden und anscheinend nicht formatierten code und sucht nach den zusammenhängen. Da musst du schon konkreter werden.

Warum die anderen bilder nicht gezeichnet werden wurde ja schon angespochen. Man sollte sie schon in der schleife malen.
Nicht so, wie du es gerade hast(falsch!)
Code: [AUSKLAPPEN]

Repeat
cls

     blubber()

flip
until keyhit(1)

drawimage
drawimage



So an der animationsabfrage ist mir etz eig nix aufgefallen, weis etz aber au ned genau nach was ich eigentlich gesucht hab Confused

Hier hab ich kurz nochmal nen funktionstüchtigen prinzip aufbau für dein problem reingesetzt, vielleicht fällt dir ja dort etwas auf wo du in deinem programm falsch gemacht hast.
Code: [AUSKLAPPEN]

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

Global shot_timer
Global frame



Global bild = LoadAnimImage("bild.bmp",32,32,0,3)



;--------------------------------
Repeat
Cls


   update_grafik()


Flip
Until KeyHit(1)
;--------------------------------




Function update_grafik()

   
      If MilliSecs() > shot_timer+100  Then
         shot_timer = MilliSecs()
         frame = (frame +1) Mod 3
       
      End If
      
      DrawImage bild, 100, 100, frame




End Function


Noch so am rande, ich finde es schön das du dir mal mein Schuss tut angeschaut hast, und auch wenns jetzt nicht das ultra teil ist, sollte man copy paste aktionen unterlassen. Wink

mfg Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group