figur auf bitmap bewegen

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

ProggerOrk

Betreff: figur auf bitmap bewegen

BeitragDi, Okt 19, 2004 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
ich versuche gerade eine Figur auf einer Bitmap zu bewegen sprich Hab eine Bitmap wo ein Berg druff is und darauf möchte ich das die Figur sich bewegt. Soweit so gut..

Bisher hab ich es so:

Code:
if imagescollide.....
else
y = y + 1
end if


Die Figur fällt immer ein bisschen runter.. Aber sie soll den Berg auch wieder hoch steigen können.. ok .. dann hab ich mal so probiert:

Code:
if imagescollide.....
y = y - 1
else
y = y + 1
end if


Aber jetzt zuckt die Figur immer.. Hat da vlt irgeneiner eine gescheite Lösung für?

ProggerOrk

BeitragDi, Okt 19, 2004 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
ok formulieren wir das ganze ma bissl besser.. Ich habe jetzt Beispiel so eine Landschaft, wie bei Worms.. Aber wie mache ich das der "Wurm" nur eine bestimmte Steigung steigen kann und wie ich ihn überhaupt wieder steige lasse.. Hoffentlich versteht das wer-.-

bYe

Chester

BeitragDi, Okt 19, 2004 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
rechne die aktuelle höhe des Berges zur Y Koordiante deines Players dazu

Hubsi

BeitragDi, Okt 19, 2004 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Schonmal an ImageRectCollide gedacht, wegen dem "einsinken"? Also den Berg als Image und ein kleines Rechteck gleich unterhalb der Spielfigur. Und dann so in etwa:Code:
If Not ImageRectCollide(...)
  fallen
EndIf

If ImageRectCollide(...)
  steigen
EndIf
Nicht gerade das schnellste, aber das einzige was mir gerade dazu einfällt. So sollte er den Berg hoch und runterkraxeln ohne zu zittern Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

ProggerOrk

BeitragDi, Okt 19, 2004 23:18
Antworten mit Zitat
Benutzer-Profile anzeigen
ah ok habs hinbekommen^^ aber wie macht man es das er bestimmte steigungen net hoch gehen kann? hmm dann muesste ich an jeder seite noch ma ne kollisionsfrage machen aber das wäre auch schlecht..hmm..

rambo256

BeitragMi, Okt 20, 2004 0:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast ja bestimmt,wenn der spieler steigt,eine x und y geschwindigkeit.
wenn dann halt die y geschwindigkeit über sin(deine gradzahl ab wann der spieler nicht mehr die steigung hoch kann) dann ist fallen = true
Asus F53z

Das Leben ist eine reine Konkatenation...
 

azureuz

BeitragSo, Dez 05, 2004 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
irgendwie bekomme ich das nciht hin. hier mal mein teil vom code:

Code:
Graphics 500,200,24,2
SetBuffer BackBuffer()
AppTitle "Sandstorm by azureuz"


                                                          ;Variabeln werden geladen...


Global map=LoadImage("map1.jpg")
Global panzer=LoadAnimImage("panzer2.bmp",30,17,0,3)
MaskImage panzer,255,0,255
fntverdana=LoadFont("Verdana",12,False,False,False)
Global x=130
Global y=130
Global map_schwarz=LoadImage("map_schwarz.bmp")
MaskImage map_schwarz,255,255,255

                                                            ....hierr ist auch noch code....

                                                          ;Bilder setzen


DrawImage map,10,10
DrawImage panzer,x,y,frmpanzer
DrawImage map_schwarz,10,114

If ImageRectCollide(panzer,x,y,0,150,150)
y+1
End If



das mit dem "if image..." ist so oder so falsch...nur ich hab echt ka wie das gehen soll.

Hubsi

BeitragSo, Dez 05, 2004 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Diese Zeile wird der Compiller so nicht fressen:Code:
If ImageRectCollide(panzer,x,y,0,150,150)
Schau Dir den Befehl (besonders die erforderlichen Parameter) in der Onlinehilfe nochmal genauer an Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

azureuz

BeitragSo, Dez 05, 2004 15:22
Antworten mit Zitat
Benutzer-Profile anzeigen
jo, aber genau der befehl ist in der onlinehilfe so kompli.

Hubsi

BeitragSo, Dez 05, 2004 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Code:
If ImageRectCollide(panzer,x,y,0,x,y+ImageHeight(panzer),ImageWidth(panzer),1)
Das ImageWidth(panzer) bzw. ImageHeight(panzer) ersetzt Du noch durch die Größe des Bildes und schon ist er gar nicht mehr so kompliziert Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

azureuz

BeitragSo, Dez 05, 2004 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
aber wie geht das dann weiter? es ist ja ne if-anfrage,oder?

Hubsi

BeitragSo, Dez 05, 2004 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Sei mir nicht böse, aber Dir fehlt ganz einfach Erfahrung. Wenn Du noch mit solchen Problemen zu kämpfen hast, dann ist Sandstorm einfach eine Nummer zu groß für Dich. Sammle Erfahrung mit kleinen Projekten, denen Du auch gewachsen bist und das ganze stellt bald schon kein Hinderniss mehr dar Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

azureuz

BeitragSo, Dez 05, 2004 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
das einzigste hindernis ist für mich die collision...das wars. wenn ich ein anderes projekt mache, wo ich auch die collision brauche, dann häng ich wieder hier. :/

und von alleine krieg ich bestimmt nicht heraus wie die collision funzt.

der panzer soll ja einfach weiterfahren und halt nur hoch und runter gehen.

btw....ja, natürlich fehlt mir erfahrung und ich bin dir ja auch nicht böse. ich brauch halt nur ein beispiel oder so..

Hubsi

BeitragSo, Dez 05, 2004 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Code:
y=y+1
If ImageRectCollide(panzer,x,y,0,x,y+ImageHeight(panzer),ImageWidth(panzer),1)
  y=y-1
endif
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

BladeRunner

Moderator

BeitragSo, Dez 05, 2004 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Code:
If ImageRectCollide(panzer,x,y,0,x,y+ImageHeight(panzer),ImageWidth(panzer),1)

...wenn Panzer und jetzige Position kollidieren ...

... dann tue was im Falle einer Kollision passieren soll. Niemand ausser Dir kann wissen wie die genauen Folgen der Kolli aussehen sollen.
Wenn es ja ums "Einsinken" ins Gelände geht, wäre die adäquate reaktion die y-Koord zu vermindern.
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
 

azureuz

BeitragSo, Dez 05, 2004 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
hm. stell dir vor hubsi, das hab ich sogar geschrieben! Very Happy
aber ich hatte da nicht das 'y=y-1' -.-

nungut, mein code sieht nun so aus:

Code:
y=y+1
If ImageRectCollide(panzer,x,y,0,x,y+57(map_schwarz),184(map_schwarz),1)
y=y-1
EndIf


jetzt kommt folgender fehler: "Expecting ')'"

Es sind doch alle ")" gesetzt? Ich hab doch nur die Imageheight und imageweight mit meinen Werten geändert?!

Hubsi

BeitragSo, Dez 05, 2004 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Code:
y=y+1
If ImageRectCollide(map,0,0,0,x,y+57,184,1)
y=y-1
EndIf
Mist! Hab vorhin nicht richtig aufgepasst Embarassed Du musst natürlich die Map auf Kolli mit dem Rechteck prüfen Embarassed
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

azureuz

BeitragSo, Dez 05, 2004 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
sau Very Happy
naja, macht ja nichts...du hilfst mir ja Smile

das heißt jetzt, das 'map' die map ist? wodrauf sich der panzer bewegen soll,richtig?

nochmal zu7m mitschreiben.

ich will das mein panzer auf der map(ist atm ja nur ne grafik) fährt.

mein panzer ist 17px hoch und 30px breit. meine map ist 480px breit und 57px hoch.

Hubsi

BeitragSo, Dez 05, 2004 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Code:
y=y+1
If ImageRectCollide(map,mapx,mapy,0,panzerx,panzery+17,30,1)
y=y-1
EndIf
map ist das Handle des Mapbildes
mapx bzw. mapy sind die Koords wo Du sie hinzeichnest
0 der Frame der Map (wird wohl nur einer sein)
panzerx bzw. panzery die Koords des Panzers

So sollte es dann schon funzen, denke ich Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

azureuz

BeitragSo, Dez 05, 2004 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
so, funzt!
habs mal mit einem text probiert der dann aufzeigen soll!
nun aber noch ein prob. ^^
wenn ich ein bild, bei einer bestimmten farbe transparent mache, sieht er das doch nicht mit als collide,oder?

trotzdem..danke!

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group