Figur soll springen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

BlackPhönix

Betreff: Figur soll springen

BeitragDi, Jul 21, 2009 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich versuche seit 2 Tagen mein Bild das ich auch schon laden konnte hüpfen zu lassen. Aber leider will es nicht funktionieren.

Ich hoffe, jemand kann mir helfen.
Hier der Code:
Codetags eingefügt, thema gesplittet. BladeRunner
Code: [AUSKLAPPEN]

Print "Freddy´s Adventures 1.0"

Print "Gib deinen Namen ein :"

Spielername$=Input()     ; Den Spieler auffordern, seinen Namen einzugeben.

Print "Spielername:" + Spielername$


Print "Los Gehts !"

WaitKey

Graphics 800,600,0,2    ; Damit die Grafik auf den Bildschirm gezaubert wird.

SetBuffer BackBuffer()
y=480                   ; Die Koordinaten von Freddy und dem Hintergrund.
x=60
x7=1
y7=-160
y1=480
x1=60
Global frametimer=CreateTimer(60)
SeedRnd MilliSecs()

AppTitle "Freddys Adventures"





Global Jump=KeyHit(44)

Global Hintergrund1= LoadImage  ("Freddy_Adventures_Hintergrund1.bmp") ; Um die Bilder zu laden.
Global Hero= LoadImage ("Freddy1.bmp")


Repeat

If KeyDown(200) Then y=y-1 ; Die Steuerung von Freddy.
If KeyDown(203) Then x=x-1
If KeyDown(205) Then x=x+1
If KeyDown(208) Then y=y+1

If KeyDown(203) Then x7=x7+1 ; Um die Täuschung vom laufen durch die Welt zu simulieren.
If KeyDown(205) Then x7=x7-1
If KeyDown(200) Then y7=y7+1
If KeyDown(208) Then y7=y7-1

If KeyDown(203) And KeyDown (29) Then x=x-3  ; Die Funktion zum schneller laufen.
If KeyDown(205) And KeyDown (29) Then x=x+3
If KeyDown(203) And KeyDown (29) Then x7=x7+3
If KeyDown(205) And KeyDown (29) Then x7=x7-3




If KeyHit(44) Then For Jump = 1 To 10  ; Die Funktion zum Springen(Noch nicht fertig)Dauer bis zum Sprung:10 sec.
Delay(1000)
DrawImage Hero,x1,y1 And y1=y1-30 
Next




ClsColor 0,0,0
Cls

DrawImage Hintergrund1,x7,y7 ; Um die Bilder anzuzeigen.
DrawImage Hero,x,y

Flip

Until KeyDown(1)

 
End
Mfg Chris

BladeRunner

Moderator

BeitragDi, Jul 21, 2009 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Gesplittet, da es in dem Thread in dem Du gepostet hast um den Transfer von Daten per Internet ging. Bitte sorgfältiger lesen und die Codetags für deinen Code benutzen. danke.
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

TimBo

BeitragDi, Jul 21, 2009 23:09
Antworten mit Zitat
Benutzer-Profile anzeigen
also als erstes mach das mit der Tastenabfrage mal anderst:
const up=200
const down=201
const left
....
sry habe die TastenScanCodes nicht im Kopf.

dann in der hauptschleife

if keydown(up) then
1)
2)
3)
endif

so geht das schonmal schneller
mit dem Springen, benutze eine Variable die die Höhe speichert. Dann kannste in der Mainschleife Drawimage ausführe. Für den Charakter nur einmal Drawimage und nicht in einer schleife.

TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

BlackPhönix

BeitragDi, Jul 21, 2009 23:51
Antworten mit Zitat
Benutzer-Profile anzeigen
TimBo hat Folgendes geschrieben:
also als erstes mach das mit der Tastenabfrage mal anderst:
const up=200
const down=201
const left
....
sry habe die TastenScanCodes nicht im Kopf.

dann in der hauptschleife

if keydown(up) then
1)
2)
3)
endif

so geht das schonmal schneller
mit dem Springen, benutze eine Variable die die Höhe speichert. Dann kannste in der Mainschleife Drawimage ausführe. Für den Charakter nur einmal Drawimage und nicht in einer schleife.

TimBo


Also:
Zu 1.
Ich habe den Richtungsvariablen jetzt werte zugeordnet.
Und von denen soll ich dann bei eingabe was abziehen, oder wie ?
Zu 2. Wenn ich z.B Const Sprunghöhe = 680
nehme was soll ich dann damit machen?

Bitte um Antwort
Mfg Chris
 

EwokonCrack

BeitragMi, Jul 22, 2009 11:12
Antworten mit Zitat
Benutzer-Profile anzeigen
du könntest bei tastendruck einer variable einen bestimmten wert geben (True) und im selben schleifendurchlauf überprüfen, ob dieser wert nun "true" ist. sollte dies der fall sein, erhöhst du deine sprungvariable.
am ende (oder wo auch immer) gibst du nun den befehl: DrawImage Figur,figurx,figury-sprungvariable

nun überprüfst du noch, ob die sprungvariable einen bestimmten wert erreicht. sobald deine variable z.B. 100 ist, wird sie nicht mehr erhöht sondern verringert.

sollte so ersteinmal funktionieren

BlackPhönix

BeitragMi, Jul 22, 2009 11:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Alles klar, danke euch für die hilfe.
Ich werd es gleich mal ausprobieren.
Mfg Chris

BlackPhönix

BeitragMi, Jul 22, 2009 12:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, es funkioniert immer noch nicht.
Ich hab es so versucht:

Code: [AUSKLAPPEN]
Global Sprung
          Global Jump

While KeyDown(44)

If KeyDown(44) Then Sprung =1
If Sprung =1 Then Jump = -100
If Jump = 380 Then Jump = 480

Wend




Was mach ich falsch ???
Mfg Chris

BlackPhönix

BeitragMi, Jul 22, 2009 12:16
Antworten mit Zitat
Benutzer-Profile anzeigen
BlackPhönix hat Folgendes geschrieben:
Sorry, es funkioniert immer noch nicht.
Ich hab es so versucht:

Code: [AUSKLAPPEN]
Global Sprung
          Global Jump

While KeyDown(44)

If KeyDown(44) Then Sprung =1
If Sprung =1 Then Jump = -100
If Jump = 380 Then Jump = 480

Wend




Was mach ich falsch ???



Das hab ich noch vergessen:
Code: [AUSKLAPPEN]
Drawimage Hero,x,y-Jump
Mfg Chris

BladeRunner

Moderator

BeitragMi, Jul 22, 2009 12:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte benutze in Zukunft den Edit Button, Doppel- oder gar Triple-Posts sind nicht gerne gesehen und führen auch mal zum schließen eines Threads.
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
 

EwokonCrack

BeitragMi, Jul 22, 2009 13:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Graphics 800,600,24,2
SetBuffer BackBuffer()
Global springen, sprungdauer, sprungart
Global x=300, y=400

Const leertaste=57

Repeat
Cls

Rect x,y-sprungdauer,20,20

If KeyHit(leertaste) Then
   springen=True
   sprungart=1
EndIf
   
   If springen=True Then
      If sprungart=1 Then
         sprungdauer=sprungdauer+1
         If sprungdauer=100 Then sprungart=2
      ElseIf sprungart=2 Then
         sprungdauer=sprungdauer-1
         If sprungdauer=0 Then springen=False
      EndIf
   EndIf

Flip
Forever


das "rect" ist natürlich durch "drawimage" zu ersetzen.
ich hoffe das kannst du so nachvollziehen!

Mfg, SuggahFairy

BlackPhönix

BeitragMi, Jul 22, 2009 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Muss ich das in die Hauptschleife schreiben?
Question
Mfg Chris
 

aletes

BeitragMi, Jul 22, 2009 13:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Klar, du kannst es aber auch in eine Function schreiben, und dann in der Hauptschleife die Funktion aufrufen
 

Kaddy

BeitragMi, Jul 22, 2009 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
ja das muss in die Hauptschleife, sonst würde dein Programm doch gar nicht mehr überprüfen ob die Taste gedrück wurde.
Bin Aktuell auf der Suche nach einen Programmierer Team, ob Hobby Team oder Firma ist egal. Einfach eine PM an mich schreiben.
Bezahlung verlange ich NATÜRLICH keine Wink

Es gibt 10 arten von Menschen, die einen verstehen das Binärsystem , die anderen nicht SmileSmile

BlackPhönix

BeitragDo, Jul 23, 2009 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke euch für die vielen Tipps............thx
Mfg Chris

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group