Gleichzeitig bewegen und schießen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

niggy

Betreff: Gleichzeitig bewegen und schießen

BeitragMi, Feb 04, 2009 19:18
Antworten mit Zitat
Benutzer-Profile anzeigen
könnte mir jemand helfen ?
ich weiß leider nicht wie man das machen muss wenn man ein schuss oder auch mehrere zeichnet und gleichzeitig sich bewegt damit man beides sieht
könnt ihr mir nen tip geben?

~EDITIERT~

Titel geändert.
hamZta
 

da_poller

BeitragMi, Feb 04, 2009 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm... eine genauere beschreibeung in welchem spiel genre das liegt und vllt etwas code wären hilfreich..

Chrise

BeitragMi, Feb 04, 2009 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
da_poller hat Folgendes geschrieben:
hmm... eine genauere beschreibeung in welchem spiel genre das liegt und vllt etwas code wären hilfreich..


lol xD
Laufen und Scheißen gleichzeitig ^^

Ähm ich glaube so ein ähnliches Thema hatten wir schonmal hier. Da kamen Vorschläge, wie das Objekt oder die Figur zu unterteilen in Oberkörper und Beine.
 

niggy

BeitragMi, Feb 04, 2009 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
das spiel ist sowas wie ein jump and run shooter
wie metroid falls das jemand kennt

hier ist der code
Code: [AUSKLAPPEN]


;set graphics

Graphics 800, 600

;variabeln
Global samusX = 600
Global samusy = 372
Global counter = 1



;grafiken

Global hintergrund1 = LoadImage("C:\Dokumente und Einstellungen\User\Desktop\blitzbasic\Grafiken\metroid_erstes lvl.bmp")
Global hintergrund2 = LoadImage("C:\Dokumente und Einstellungen\User\Desktop\blitzbasic\Grafiken\metroid_erstes level2.bmp")
Global samuslinks = LoadImage("C:\Dokumente und Einstellungen\User\Desktop\blitzbasic\Grafiken\samuslinks ohne waffe.bmp")
Global samuslinkswaffe = LoadImage("C:\Dokumente und Einstellungen\User\Desktop\blitzbasic\Grafiken\samuslinkswaffe.bmp")
Global samusrechts = LoadImage("C:\Dokumente und Einstellungen\User\Desktop\blitzbasic\Grafiken\samusrechts ohne waffe.bmp")
Global samusrechtswaffe = LoadImage("C:\Dokumente und Einstellungen\User\Desktop\blitzbasic\Grafiken\samusrechtswaffe.bmp")
Global schussrechts = LoadImage("C:\Dokumente und Einstellungen\User\Desktop\blitzbasic\Grafiken\schussrechts.bmp")
Global schusslinks = LoadImage("C:\Dokumente und Einstellungen\User\Desktop\blitzbasic\Grafiken\schusslinks.bmp")





;hintergrund
SetBuffer BackBuffer()
DrawImage hintergrund2, x, y
DrawImage hintergrund1, x, y
MaskImage samuslinks, 255, 0, 255
MaskImage samusrechts, 255, 0, 255
MaskImage samuslinkswaffe, 255, 0, 255
MaskImage samusrechtswaffe, 255, 0, 255
MaskImage hintergrund1, 255, 0, 255
DrawImage samuslinks, 600, 373
SetBuffer BackBuffer()
DrawImage hintergrund2, x, y
DrawImage hintergrund1, x, y
DrawImage samuslinks, samusx, samusy
DrawImage samuslinkswaffe, samusx-8, samusy


Global samuslook$ = samuslinks
Global samuslookweapon$ = samuslinkswaffe
Global samusschuss$ = schusslinks



;makes the music
levelsound=LoadSound ("C:\Dokumente und Einstellungen\User\Desktop\metroid\metroid_tallon.wav")
LoopSound levelsound
PlaySound(levelsound)


Goto start
;funktionen
 ;bewegungsfunktionen
Function moveleft ()
     FlushKeys
     If ImageRectCollide(samuslinks, samusx, samusy, frame, 453, 376, 1, 40)=0  And ImageRectCollide(samuslinks, samusx, samusy, frame, 350, 334, 5, 4)=0 Then
     samusx = samusx-1
     SetBuffer BackBuffer ()
     DrawImage samuslinks, samusx, samusy
     DrawImage samuslinkswaffe, samusx-8, samusy
     samuslook$ = samuslinks
     samuslookweapon$ = samuslinkswaffe
     samusschuss$ = schusslinks
     Flip
     DrawImage hintergrund2, x, y
     DrawImage hintergrund1, x, y
     If KeyHit(200) Then jump ()
     EndIf
     FlushKeys
   End Function


Function moveright ()
     FlushKeys
     If ImageRectCollide(samusrechts, samusx, samusy, frame, 705, y, 3, 600)=0 And ImageRectCollide(samusrechts, samusx, samusy, frame, 395, 380, 3, 42)=0 And ImageRectCollide(samusrechts, samusx, samusy, frame, 275, 334, 3, 4)=0 Then
      samusx = samusx+1
      SetBuffer BackBuffer ()
      DrawImage samusrechts, samusx, samusy
      DrawImage samusrechtswaffe, samusx+11, samusy
      samuslook$ = samusrechts
      samuslookweapon$ = samusrechtswaffe
      samusschuss$ = schussrechts
      Flip
      DrawImage hintergrund2, x, y
      DrawImage hintergrund1, x, y
      If KeyHit(200) Then jump ()
     EndIf
     FlushKeys
   End Function


Function jump ()
     FlushKeys
     For n = 0 To 50
       If ImageRectCollide(samuslook$, samusx, samusy, 0, 276, 343, 80, 5)=0 Then
       samusy = samusy-1
       SetBuffer BackBuffer ()
       DrawImage samuslook$, samusx, samusy
        If samuslookweapon$ = samusrechtswaffe Then
           DrawImage samuslookweapon$, samusx+11, samusy
         Else DrawImage samuslinkswaffe, samusx-8, samusy
        EndIf
       Flip
      DrawImage hintergrund2, x, y
      DrawImage hintergrund1, x, y
      If KeyDown(203) Then moveleft ()
      If KeyDown(205) Then moveright ()
      EndIf
     Next 
    FlushKeys
   End Function


Function shoot ()
      If samusschuss$ = schussrechts Then
       

;unvollständig



    End Function





.start



While Not KeyDown(1)   
;falling ;)
    While ImageRectCollide (samuslook$, samusx, samusy, frame, 0, 419, 800, 9)=0 And ImageRectCollide(samuslook$, samusx, samusy, frame, 397, 375, 56, 42)=0 And ImageRectCollide(samuslook$, samusx, samusy, frame, 276, 333, 80, 5)=0
       samusy = samusy+1
       DrawImage samuslook$, samusx, samusy

       If samuslookweapon$ = samusrechtswaffe Then
          DrawImage samuslookweapon$, samusx+11, samusy
        Else DrawImage samuslinkswaffe, samusx-8, samusy
       EndIf
       Flip
       DrawImage hintergrund2, x, y
       DrawImage hintergrund1, x, y
       If KeyDown(203) Then moveleft ()
       If KeyDown(205) Then moveright ()
       If KeyHit (31) Then shoot ()
     Wend
;bewegungsknöpfe
    ;bewegen
    .bewegen
     If KeyDown(203) Then moveleft ()
     If KeyDown(205) Then moveright ()
     If KeyHit(200) Then jump ()
     If KeyHit (31) Then shoot ()
     ;falling ;)




Wend
End

 

da_poller

BeitragMi, Feb 04, 2009 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
mhh beim schnellen überfliegen seh ich böses GOTO, dann solltest du relative pfade verwenden und zu guter letzt.. wo ist da die hauptschleife?

WüstLing

BeitragMi, Feb 04, 2009 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Kleiner Tipp: Wenn du die .bb datei im selben Ordner wie die Bilder,Sounds,etc. angibst, musst du nicht immer die elends langen Pfade hinschreiben Wink

BladeRunner

Moderator

BeitragMi, Feb 04, 2009 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.

Das sollten Basics sein 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

coolo

BeitragMi, Feb 04, 2009 23:21
Antworten mit Zitat
Benutzer-Profile anzeigen
haha, scheißenn haha!

Nein mal im Ernst: Versuch dich am Anfang mit etwas einfacherem als ein Jump/n/run, ein kleines Pong oder Brake-Out Spiel sollte für dich geeignet sein. Ansonsten einen Space-Shooter.

Nun zu Fragestellung: Du musst im Mainloop(zw. While-wend) einfach eine neue Funktion einfügen zum schießen.

Achja: Versuche Goto zu meiden, es ist BÖSE!
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat
 

niggy

BeitragFr, Feb 06, 2009 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
ich seh grad das ich nicht nur scheiße buchstabiere sondern auch genauso erkläre

mein problem ist das ich nicht weiß wie gleichzeitig ein oder mehrere schüsse und meine figur sich bewegen können ich hab da leider keine idee
am besten wärs wenn ich dafür keine variablen bräuchte

BladeRunner

Moderator

BeitragFr, Feb 06, 2009 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohne Variablen wird das sicher nix, denn in denen musst du eben deine Informationen speichern.
Welche Art von Var liegt nun an dir und der gewünschten Flexibilität:
-Normale Variablen bei Einzelnen Dingen
-Dim (also Arrays) wenn es eine fest definierte Anzahl gleicher Objekte ist
-Types wenn es eine flexible Anzahl gleicher Objekte sein soll.
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
 

niggy

BeitragFr, Feb 06, 2009 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
hm da ich nicht bestimmen will wieviele schüsse man hat da man unendlich haben soll nehm ich die types
ich weiß nur leider nich was das ist oder wie man sie benutzt
vielleicht hab ich es nur vergessen

Dice of Darkness

BeitragMi, Feb 11, 2009 11:35
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/help/Type

Schau mal da nach, wenn du wissen willst, was ein Type ist. Wenn du das verstanden hast (verstanden, nicht kopiert), solltest du in der Lage sein, beliebig viele Schüsse zu generieren.
Gratis Spiele, Musik, Tools
 

niggy

BeitragMi, Feb 11, 2009 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
vielen dank für das type tut damit kann ich was anfangen ( hoffentlich)

auch vielen dank dass du den thread umbenannt hast
ich hab mich schlapp gelacht nachdem ich gemerkt hab was für nen schwachsinn ich da geschrieben habe


und noch ne frage kann mir jemand mal ne alternative zu diesen elends langen codes geben?
sie dienen dazu dass man nicht durch die wände läuft...

Code: [AUSKLAPPEN]
If ImageRectCollide ( samuslook$ , samusx, samusy, frame, 395, 377, 59, 40)=0  And ImageRectCollide ( samuslook$, samusx, samusy, frame, 275, 335, 80, 41)=0 And ImageRectCollide(samuslinks, samusx, samusy, frame, 143 , 346, 59, 51)=0   Then


mit imgerect collide funktioniert das leider nicht und auch in variabeln speichern geht irgendwie auch nicht
dauernd diese langen zielen zu schreiben ist ziemlich ätzend und unübersichtlich Sad Sad Sad Sad

Xeres

Moderator

BeitragMi, Feb 11, 2009 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Bilder sind Int Variablen, also % bzw. ohne Symbol, warum also sind deine Bilder Strings ($) ?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

niggy

BeitragDo, Feb 12, 2009 16:36
Antworten mit Zitat
Benutzer-Profile anzeigen
da meine figur nach links und rechts gucken kann hab ich 2 bilder gemacht
je nachdem in welche richtung man guckt ist samuslook$ entweder
Samusrechts
oder
samuslinks
welche wiederum die bilder sind

Xeres

Moderator

BeitragDo, Feb 12, 2009 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, BlitzBasic lässt einen auch damit durchkommen, da Zahlen und Strings ineinander Konvertiert werden... richtig wäre aber trotzdem Interger.
Aber zum abkürzen:
Wie sind denn Wände bei dir definiert?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group