Forum | | | | | je voudrais un Sprite avec den Tasten bewegen. mon erster Versuch ist rien plus comme un gekürztes un Beispiel avec qui Biene. je suis mir mais assez sûrement, dass qui Tastaturabfrage et Movesprite so pas kombiniert volonté. (Scrollen des Hintergrundes ist dans den Beispielen oui prima erklärt.) j'ai la fois une Versuch sans Prospeed geschrieben (V 7.0) et là habe je simple seulement x% augmenté bzw. verkleinert et ensuite MCop-iert. (siehe unten et derrière -----?????). allez que voici etwa aussi ? peut-être hat einer aussi déjà un kleines Programme geschreiben wohin je blos abgucken brauche ? Jedenfalls im Voraus vielen Dank et nochmal: Guten Glissement et un gesunde Neues l'an ! Jürgen. KompilierenMarqueSéparation------------
Declare HWnd&, Bereich#, Neu&, Background&
Declare fensterkopie1&, fensterkopie2&, spriteplane&
Declare sprite1&, x%, y%, ende%
Dim Bereich#,512
X% = 100
y% = 200
$I Prospeed_Funktionen.inc
neu&=usedll("ProSpeed.dll")
def getKey(1) !"user32","GetKeyState"
WindowStyle 26
cls
SetTrueColor 1
Hwnd& = %HWnd
string bereich#,0="bmps/Hintergrund.jpg"
background&=LoadExtImage(bereich#)
CopyExtBmp(%HDC, 0,0,800,400,background&,0,0,0)
CopyExtBmp(%HDC2,0,0,800,400,background&,0,0,0)
fensterkopie1&=CreateExtBmp(%HDC,800,400)
fensterkopie2&=CreateExtBmp(%HDC,800,400)
CopyExtBmp(fensterkopie1&,0,0,800,400,%HDC,0,0,0)
CopyExtBmp(fensterkopie2&,0,0,800,400,%HDC,0,0,0)
string bereich#,0="bmps/sprites.gif"
spriteplane&=LoadExtImage(bereich#)
sprite1&=InitSprite(spriteplane&,%HDC,fensterkopie1&,fensterkopie2&,0,0,24,18,4,1,6,x%,y%,1,1)
SetSpriteSpeed (sprite1&,10,0)------????
---------------------------
Whilenot ende%
waitinput------????
sleep 10
IF @equ(%key,2) OR @equ(%key,27)
ende%=1
Endif
If @LT(getkey(49),-126)
sub x%,2
MoveSprite(sprite1&,x%,y%)------------????
Hier stünde:
Startpaint -1
MCopyBmp "Sprite nach Fensterkopie", x%, y%
u. s. w......
EndPaint
EndIf
If @LT(getkey(51),-126)
add x%,2
MoveSprite(sprite1&,x%,y%)------------????
EndIf
Mcopy "Fensterkopie auf den Bildschirm
wend
Wo würde ich den Sprung in die PROC hinschreiben die y% für einen Sprung errechnet?
=========================
DeleteAllSprites()
FreeExtBmp(background&)
FreeExtBmp(spriteplane&)
FreeExtBmp(fensterkopie1&)
FreeExtBmp(fensterkopie2&)
freedll neu&
../../function-references/XProfan/dispose/'>Dispose bereich#
|
| | | | |
| | | Hi,
la hâte dus déjà avec ProSpeeds GetSystemKey() probiert ? MoveSprite() et GetSystemKey() müßten sans Probleme kombinierbar son...
oui, également à alle une grandiosen Glissement pour 2004 !!!
Salut, Frank |
| | | | |
| | | Hi Frank, GetSytemKey ist pas cela Problem. (Im Übringen sogar quelque chose langsamer comme getkey(.)). Um une Jump & Run trop écrivons brauche je deine DLL, là vous qui Funktion SetBackAutoCollision contient et avant allem une Tabelle erstellt, la mienne Figur (sur qui weißen Felder qui Fensterkopie) führt. mais oui c'est ca avec cette Funktion habe je mon Probleme: si je qui Figur per MoveSprite mittels Tasten bewege et SetBackAutoCollision sur Kollision gestellt ist, hüpft qui Figur. Seitlich peux je qui Figur ensuite gar pas plus bewegen. alors qui Contrôle per bouton et SetBackAutoCollision sommes cela eigentliche Problem. peut-être peux Du mir aider, là je crois alle Varianten ausprobiert trop avons. (Im Spieleforum gehts anscheinend um cela gleiche Problem) Ansonsten un gesundes nouveau l'an 2004. Salut Jürgen! |
| | | | |
| | | Hi,
dans diesem le cas tu viens avec MoveSprite() pas toujours plus. Hierzu müßtest du SetSpritePos() benutzen. Hatte selber gestern cela gleiche Problem et SetSpritePos elegant gelöst.
Salut, Frank |
| | | | |
| | | Hi Frank Habe je oui aussi déjà probiert, mais SetBackAutoCollision funktioniert ensuite pas. si je pas trop nerve, peut-être hat irgenwer Schonmal un kleines Beispiel programmiert ? ou bien la hâte Du peut-être une Auszug aus Deinem Programme ? je entschuldige pour qui Mühe, qui je bisher gemacht habe et bedanke mich pour Dein Verständnis. salut Jürgen. |
| | | | |
| | | allô Jürgen,
tu fais aucun Mühe ! Pour cette ist cet Forum doch gedacht, um Fragen trop répondre !
je hab deinen Source quelque chose modifié. cela Sprite peux maintenant avec den Cursortasten dedans bestimmter Grenzen (deiner l'élection) gesteuert volonté. Sogar diagonal ! cela ganze sollte sans Probleme avec SetBackAutoCollision() kombinierbar son... Pour qui Tastenabfrage erscheint mir qui API GetKeyState() am idealsten. WaitInput peux du pas benutzen, es sei car, tu mets une kleinen Minuteur. mais ist oui aussi gar pas nötig...
ici qui Code: KompilierenMarqueSéparationDeclare HWnd&, Bereich#, Neu&, Background&
Declare fensterkopie1&, fensterkopie2&, spriteplane&
Declare sprite1&,x&,y&,key&
Declare speedx&,speedy&,randl&,randr&,rando&,randu&
Dim Bereich#,512
SetTrueColor 1
$I Prospeed_Funktionen.inc
neu&=usedll("ProSpeed.dll")
DEF GetKeyState(1) !"USER32","GetKeyState"
DEF IsKey(1) and(GetKeyState(&(1)),$8000)
WindowStyle 26
Window 0,0-800,400
Hwnd& = %HWnd
Aktuelle Position
x&=100
y&=100
Geschwindigkeit des Sprites
speedx&=2
speedy&=2
Randgrenzen absolut (links, oben, rechts und unten)
randl&=0
rando&=0
randr&=200
randu&=200
string bereich#,0="bmps/Hintergrund.jpg"
background&=LoadExtImage(bereich#)
CopyExtBmp(%HDC, 0,0,800,400,background&,0,0,0)
CopyExtBmp(%HDC2,0,0,800,400,background&,0,0,0)
fensterkopie1&=CreateExtBmp(%HDC,800,400)
fensterkopie2&=CreateExtBmp(%HDC,800,400)
CopyExtBmp(fensterkopie1&,0,0,800,400,%HDC,0,0,0)
CopyExtBmp(fensterkopie2&,0,0,800,400,%HDC,0,0,0)
string bereich#,0="bmps/sprites.gif"
spriteplane&=LoadExtImage(bereich#)
sprite1&=InitSprite(spriteplane&,%HDC,fensterkopie1&,fensterkopie2&,0,0,24,
18,4,1,6,100,100,speedx&,speedy&)
While 1
Sleep 1
key&=GetSystemKey()
Case (key&=2 OR key&=27):BREAK
Steuern per Cursortasten
Case IsKey($25):x&=x&-speedx& links
Case IsKey($27):x&=x&+speedx& rechts
Case IsKey($26):y&=y&-speedy& oben
Case IsKey($28):y&=y&+speedy& unten
Stößt Sprite an Randgrenze ?
Case x&<=randl&:x&=randl&
Case x&>=randr&:x&=randr&
Case y&<=rando&:y&=rando&
Case y&>=randu&:y&=randu&
MoveSprite(sprite1&,x&,y&)
Wend
DeleteAllSprites()
FreeAllExtBmps()
freedll neu&
Dispose bereich#
Salut, Frank |
| | | | |
| | | Hi Frank, hatte bisher aucun Zeit. alors vielen Dank !! |
| | | | |
|
répondreOptions du sujet | 2.558 Views |
Themeninformationencet Thema hat 1 participant: |