Rect Zeichen Problem
Übersicht

YniäuqBetreff: Rect Zeichen Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo, ich bin neu hier und habe bereits meine ersten Programmiererfahrungen mit BlitzBasic gemacht. Jetzt mein Problem, ich möchte eine Eingaberoutine machen. Ich habe alle Buchstaben in einem Bild gespeichert und sobald ich die jeweilige Taste drücke, erscheint auch der jeweilige Buchstabe auf dem Bildschirm, aber nur für einen ganz kleinen augenblick. Sobald der Cursor das Rechteck nicht mehr berührt, verschwindet der Buchstabe wieder...wie kann ich es so schreiben, dass der Buchstabe trotzdem stehen bleibt?
Soll ich die Rechtecke besser in einem Dim Feld speichern? Code: [AUSKLAPPEN] For tilex=1 To anz_spieler For tiley=1 To 3 Rect 60*tilex,60*tiley,50,50,0 ; zeichnet so viele Rechtecke, wie es Spieler gibt in x-Position und zeichnet 3 Rechtecke nach unten If mx<60*tilex+50 And my<60*tiley+50 And mx>60*tilex And my>60*tiley Then Text 60,70, tilex+"..."+tiley ; an welchem Rechteck befinde ich mich gerade key=GetKey() If key<> 0 Then If key<31 Then key=33 If key>96 Then key=key-32 ; Kleinbuchstaben sind auch Großbustaben ascii=key EndIf posx=tilex*60 posy=60*tiley txt$=Chr$(ascii) ;wandeltt ascii in zeichen um zeichen = CreateImage(tln * 32,32) make_zeichen() DrawImage zeichen,posx,posy EndIf next next |
||
![]() |
Ana |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit einem Type wäre das ganze natürlich sehr elegant, allerdings kannst du auch eine globale variable machen, wenn du nur ein Bild jeweils haben willst, jedenfalls musst du es so in deiner Main loop unterbringen, das es nicht nur für den einen Frame in dem die jeweilige Taste gedrückt wird angezeigt wird. vielleicht einfach was in richtung
Code: [AUSKLAPPEN] if imageanzeigen = true then Drawimage ...
bin mir aber nicht sicher ob das wirklich deiner frage entspricht. Und ja Dim Felder/Arrays bieten sich prima an um rechteckige Maps darin zu speichern, sicherlich eine gute Idee Außerdem geht es ein wenig mit createimage drunter und drüber, ich glaube es würd jeden durchlauf ein neues erstellt, welches dann in der variable gespeichert wird, wenn nichts gedrückt wurde dann ist das halt auch leer. Die Bilder als solches geistern aber noch irgendwo in deinem speicher rum, createimage sollte eigentlich auch immer ein freeimage haben, vorallem wenn du die variable überschreiben willst |
||
Don't only practice your art,
but force your way into its secrets, for it and knowledge can raise human to divine |
Yniäuq |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dankeschön Ana ![]() Ich möchte ein Multiplayergame programmieren und jeder Spieler darf 3 Tasten belegen. Sollte ich das dann also am besten mit Types probieren? |
||
![]() |
Ana |
![]() Antworten mit Zitat ![]() |
---|---|---|
Types sind fast immer eine gute Idee, wenn du mich fragst ich mag sie jedenfalls. Allerdings kann ich dir nicht sagen ob es in dem Fall sinnvoll ist, weil ich eigentlich kaum eine vorstellung habe was du eigentlich tust bzw. in welchem zusammenhang tastedrücken + bild malen steht. Aber angenommen du willst das bild eine sekunde anzeigen würde ich das so machen:
BlitzBasic: [AUSKLAPPEN] Type Bild So glaube ich müsste das einigermaßen passen eventuell kannst du da ja was nützliches für dich draus sehen, ansonsten hab ich einfach nur eine angenehme ablenkung während einer langweiligen vorlesung gehabt ![]() Achso kann sein dass das nicht ganz passt, kann das leider hier nicht testen ... olles linux ... Edit: Ich weiß ja nicht wie weit deine kenntnisse reichen und will dir bestimmt nicht zu nahe tretten, wenn du irgendwas nicht verstehen solltest, kannst mir auch gern eine PM schreiben, ich freu mich immer über Post ![]() |
||
Don't only practice your art,
but force your way into its secrets, for it and knowledge can raise human to divine |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Yniäuq hat Folgendes geschrieben: Dankeschön Ana
![]() Ich möchte ein Multiplayergame programmieren und jeder Spieler darf 3 Tasten belegen. Sollte ich das dann also am besten mit Types probieren? Was für ein Spiel soll es eigentlich werden? Types sind eigentlich nie verkehrt, vorallem weil sie viel dynamischer sind als Dim-Arrays. Später kannst du auf einfachstem weg, ohne viel rumgeändere deinem Programm noch Sachen hinzufügn. Bei Dim-Arrays ist das etwas schwieriger, obwohl man sie im Prinzip auch wie Types mit Konstanter Anzahl verwalten könnte. Ein Type Beispiel: (ich weiß ja nicht, ob du mit Types schon zurrecht kommst, da du recht neu bist. Der Code sollte selbstklärend sein ![]() Code: [AUSKLAPPEN] Graphics 800,600
SetBuffer BackBuffer() Type Schneeflocke Field x,y ;zwei Type-Variablen hintereinander geschrieben, anstatt untereinander. Platzsparend :P Field speed End Type Global S.Schneeflocke ;Type als "Global" definieren, damit es in Funktionen verwendet werden kann. Solange man die ;die erste Schneeflocke in einer Funktion erstellt, ist der Type automatisch Global. For i=1 To 1000 create_Schneeflocke(Rnd(800),Rnd(-600),Rnd(1,3)) Next Timer=CreateTimer(60) While KeyDown(1)=0 Cls update_Schneeflocke() WaitTimer(Timer) Flip 0 Wend Function create_Schneeflocke(L_x,L_y,L_speed) ;Schneeflocke erstellen S.Schneeflocke=New Schneeflocke S\x=L_x S\y=L_y S\speed=L_speed End Function Function update_Schneeflocke() For S.Schneeflocke=Each Schneeflocke S\x=S\x+Rnd(-1,1) S\y=S\y+S\speed If S\y>600 Then S\y=0:S\x=Rnd(800) Rect S\x,S\y,1,1 Next End Function |
||
Twitter
Download Jewel Snake! Windows|Android |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group