Objekte vom Spielfeld verschwinden lassen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Jack

Betreff: Objekte vom Spielfeld verschwinden lassen

BeitragDi, Mai 24, 2005 12:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, wie schaffe ich es, dass ein Objekt, das meine Spielfigur einsammelt oder abschießt, verschwindet?


Danke für eure Hilfe Confused
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragDi, Mai 24, 2005 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

UM SO SCHLIMMER !

Nach 2 Monaten sollte man eigentlich den Befehls-satz von BB kennen.

Wenn es 3D ist, was du meinst, könnte man das Objekt ja ausblenden.
Bei 2D zeichnest es halt nicht mehr.

....
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***

Lunatix

BeitragDi, Mai 24, 2005 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Hot-Bit : Jetz halt aber mal die Luft an, JA?

Er hat was gefragt, in vernünftigen Ton! Vielleicht hääte ihm die Antwort mit Types und Delete gereicht! Warum sind so viele als so blöd zu den Nooby's???? Es sind ANFÄNGER keine Profie's wie wir, OK?

Und wenn du ihm keine Antwort schreibst, dann Poste doch ert gar nicht!!!

So nun Zum Prob.:

Du kannst das so machen:
BlitzBasic: [AUSKLAPPEN]

Global PosX,PosY,PosZ
Const HealthType=1
Const PlayerType=2
Type Health
Field HPlus
Field HMesh
End Type
Collisions PlayerType,HealthType,2,3

...
...
While Not IrgendEineBedingungErfüllt=1

If Irgendeinebedingungerfüllt=1
CreateHelth(posX,posY,posZ)
EndIf
updateHealth()
UpdateWorld
RenderWorld
Flip
Wend

Function CreateHealth()
H.Health=New health
H\Mesh=LoadMesh(\"DeinHealthMesh.endung\")
H\HPlus=Rand(0,100)
PositionEntity H\Mesh,posX,posY,posZ
End Function

Function UpdateHealth()

For H.Helth=Each Health
If EntityCollided(player,1) ;1=siehe oben(const)
PlayerHealth=PlayerHealth+H\HPlus
FreeEntity H\Mesh
Delete H
EndIf
End Function
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

BladeRunner

Moderator

BeitragDi, Mai 24, 2005 15:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Gesplittet wegen Flame und Spam:
Der andere Teil kann hier gefunden werden: https://www.blitzforum.de/viewtopic.php?t=11581

Keine Beleidigungen bitte. Er ist Anfänger.
Zum Thema Suche: auch Suchen will gelernt und geübt sein. Wenn ein Suchwort nicht die passenden Ergebnisse liefert kann man ja Alternativen eingeben.

BladeRunner
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

Noa

BeitragDi, Mai 24, 2005 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
jop kann man, aber manchma hilft auch das nich

Jack

BeitragDi, Mai 24, 2005 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
@Junkprogger:
Du benutzt doch 3D-Befehle, oder? Ich mein aber 2D-Befehle, oder geht das auch so?

Freeman

BeitragDi, Mai 24, 2005 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
das einfachste wäre es eine bedingung per if abfrage drumzuschreiben, und diese Variabledann einfch ändern so das die bedingungen dann eben nicht mehr stimmen.

fReEmAn
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28
 

Thoth

BeitragDi, Mai 24, 2005 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
ein beispiel:

BlitzBasic: [AUSKLAPPEN]
If eingesammelt = 0 Then DrawImage einsammelobjekt,x,y


und wenn er es eingesmamelt hat einfach den wert von eingesammelt zu 1 ändner Wink

tyty

BeitragDi, Mai 24, 2005 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
drawimage "hintergrund"
drawimage "spieler"
drawimage "gegenstand"
if position(spieler) = position(gegenstand)
then
drawimage "hintergrund"
drawimage "spieler"

...also: NOTdrawimage "gegenstand"



<<< mal eben in pseudocode >>>


EDIT: hatte mal die selbe frage
User posted image

Kaikille suomea puhuville ihmisille: tyty = tyty the technical youngster!!!

Surat

BeitragDi, Mai 24, 2005 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Ich mach das so:
Code: [AUSKLAPPEN]

If stein1=1 Then DrawImage stein,Xs1,Ys1

Leider kann man trotzdem noch mit dem Image kollidieren, auch wenn es nicht mehr sichtbar ist(also stein1=0 ist).
Deswegen setzte ich Xs1 oder auch Ys1 auf Minuswerte an die das
steuerbare Raumschiff oder ähnlliches nicht ran kommt.

mfg felix
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)

AZUON-Beyond the dark life (2%)
SOULS OF DESTINY (23%)

Jack

BeitragMi, Mai 25, 2005 9:36
Antworten mit Zitat
Benutzer-Profile anzeigen
@toth:
du meinst so was(,oder?):
BlitzBasic: [AUSKLAPPEN]
If ImagesOverlap(Figur,X,Y,X2,Y2,32,32) Then Gegenstand = 1


und ich brauch dann noch 2 abfragen(,oder?)
BlitzBasic: [AUSKLAPPEN]
If Gegenstand = 0 Then DrawImageRect tiles, X,Y,X2,Y2,32,32
If Gegenstand = 1 Then


aber was soll dann die 2. abfrage sein?

@tyty:
und du meinst das:
BlitzBasic: [AUSKLAPPEN]
DrawImage HGrund, 0,0
DrawImage Figur, X,Y
DrawImage Gegenstand, X2,Y2
If Position(Figur) = Position(Gegenstand) Then
DrawImage HGrund, 0,0
DrawImage Figur, X,Y
EndIf


Aber ist "Position" eine Funktion, eine Variable oder ein Dim-Feld?
 

Thoth

BeitragMi, Mai 25, 2005 10:25
Antworten mit Zitat
Benutzer-Profile anzeigen
da du in der hauptschleife ja am anfang BlitzBasic: [AUSKLAPPEN]
Cls
stehn hast, kannst du es eben einfach so machen:
BlitzBasic: [AUSKLAPPEN]
blablabla...
bild = LoadImage....

;Hauptschleife
Repeat

Cls
If bild_ist_vorhanden = 0 Then DrawImage bild,x,y
;und dann hier: WENN das bild BILD mit der MAUS kollidiert dann ist die variable: bild_ist_vorhanden = 1 - da das bild ja nur noch gezeichnet wird wenn der wert 0 ist - ist es dann weg sobald du es mit der maus berührst Wink

Until KeyHit(1) usw.


cu

Lunatix

BeitragMi, Mai 25, 2005 12:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Okai, noch mal in 2D :

BlitzBasic: [AUSKLAPPEN]


Global PX,PY,posX,posY,PlayerHealth
Type HealthImage
Field HealthImage
Field HealthPlus
End Type


Repeat
Cls
PX=MouseX()
PY=MouseY()
If Irgendnebedingungerfüllt=1
DrawHeaalth()
EndIf

...
...
updateHealth()
Flip
Until KeyHit(1)

Function Drawhealth()
H.Health=New Health
H\HealthImage=LoadImage(\"DeinBild.endung\")
H\HealthPlus=Rand(0,100)
End Function

Function updateHealth()
For H.Health=Each Health
DrawImage H\Health,posX,posY
If ImageRectCollide(H\Health,posX,posY,0,PX,PY,0)
PlayerHealth=PlayerHealth+H\HealthPlus
FreeImage H\HealthImage
Delete H
Exit
EndIf
Next
End Function
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

Thoth

BeitragMi, Mai 25, 2005 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
warum so umstandlich JungProgger O_o ?
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragMi, Mai 25, 2005 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

Das frage ich mich auch ...

Aber die Fresse aufreißen, und mir sagen, daß ich still sein soll, das kann er ...
Code: [AUSKLAPPEN]
Function Drawhealth()
H.Health=New Health
H\HealthImage=LoadImage("DeinBild.endung")
H\HealthPlus=Rand(0,100)
End Function


Mitdenken, Junge... mit denken !

Für was habt ihr denn so ein Objekt auf den Schultern ?

....
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***

garret

Betreff: Minuswerte

BeitragSo, Mai 29, 2005 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Surat

Du brauchst die Koordinaten nicht zu negieren (schickes Wort), sondern fügst die Bedingung einfach nochmal in die Kollisionsabfrage ein.

Zitat:

If stein1=1 Then DrawImage stein,Xs1,Ys1


Also eben:
If ImagesOverlap(maus,mx,my,stein1,xs1,ys1) And stein1=1 then ...

Minuswerte sind manchmal ein heißes Pflaster (hab einen Fehler mal 2 Tage gesucht, bis ich gemerkt hatte, dass ein negativer Feldindex vorhanden ist f(-1,0), was ja nicht geht...)
>>nec aspera terrent<< (Auch Widerwärtigkeiten schrecken nicht)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group