CDE
This commit is contained in:
parent
518da4a923
commit
764da6cbbb
6144 changed files with 83610 additions and 11 deletions
56
Task/Animation/C-sharp/animation.cs
Normal file
56
Task/Animation/C-sharp/animation.cs
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace BasicAnimation
|
||||
{
|
||||
class BasicAnimationForm : Form
|
||||
{
|
||||
bool isReverseDirection;
|
||||
Label textLabel;
|
||||
Timer timer;
|
||||
|
||||
internal BasicAnimationForm()
|
||||
{
|
||||
this.Size = new Size(150, 75);
|
||||
this.Text = "Basic Animation";
|
||||
|
||||
textLabel = new Label();
|
||||
textLabel.Text = "Hello World! ";
|
||||
textLabel.Location = new Point(3,3);
|
||||
textLabel.AutoSize = true;
|
||||
textLabel.Click += new EventHandler(textLabel_OnClick);
|
||||
this.Controls.Add(textLabel);
|
||||
|
||||
timer = new Timer();
|
||||
timer.Interval = 500;
|
||||
timer.Tick += new EventHandler(timer_OnTick);
|
||||
timer.Enabled = true;
|
||||
|
||||
isReverseDirection = false;
|
||||
}
|
||||
|
||||
private void timer_OnTick(object sender, EventArgs e)
|
||||
{
|
||||
string oldText = textLabel.Text, newText;
|
||||
if(isReverseDirection)
|
||||
newText = oldText.Substring(1, oldText.Length - 1) + oldText.Substring(0, 1);
|
||||
else
|
||||
newText = oldText.Substring(oldText.Length - 1, 1) + oldText.Substring(0, oldText.Length - 1);
|
||||
textLabel.Text = newText;
|
||||
}
|
||||
|
||||
private void textLabel_OnClick(object sender, EventArgs e)
|
||||
{
|
||||
isReverseDirection = !isReverseDirection;
|
||||
}
|
||||
}
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main()
|
||||
{
|
||||
Application.Run(new BasicAnimationForm());
|
||||
}
|
||||
}
|
||||
}
|
||||
33
Task/Animation/Common-Lisp/animation.lisp
Normal file
33
Task/Animation/Common-Lisp/animation.lisp
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
(use-package :ltk)
|
||||
|
||||
(defparameter *message* "Hello World! ")
|
||||
(defparameter *direction* :left)
|
||||
(defun animate (label)
|
||||
(let* ((n (length *message*))
|
||||
(i (if (eq *direction* :left) 0 (1- n)))
|
||||
(c (char *message* i)))
|
||||
(if (eq *direction* :left)
|
||||
(setq *message* (concatenate 'string
|
||||
(subseq *message* 1 n)
|
||||
(list c)))
|
||||
(setq *message* (concatenate 'string (list c)
|
||||
(subseq *message* 0 (1- n)))))
|
||||
(setf (ltk:text label) *message*)
|
||||
(ltk:after 125 (lambda () (animate label)))))
|
||||
|
||||
(defun basic-animation ()
|
||||
(ltk:with-ltk ()
|
||||
(let* ((label (make-instance 'label
|
||||
:font "Courier 14")))
|
||||
(setf (text label) *message*)
|
||||
(ltk:bind label "<Button-1>"
|
||||
(lambda (event)
|
||||
(declare (ignore event))
|
||||
(cond
|
||||
((eq *direction* :left) (setq *direction* :right))
|
||||
((eq *direction* :right) (setq *direction* :left)))))
|
||||
(ltk:pack label)
|
||||
(animate label)
|
||||
(ltk:mainloop))))
|
||||
|
||||
(basic-animation)
|
||||
24
Task/Animation/D/animation.d
Normal file
24
Task/Animation/D/animation.d
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
module test26;
|
||||
|
||||
import qd, SDL_ttf, tools.time;
|
||||
|
||||
void main() {
|
||||
screen(320, 200);
|
||||
auto last = sec();
|
||||
string text = "Hello World! ";
|
||||
auto speed = 0.2;
|
||||
int dir = true;
|
||||
while (true) {
|
||||
cls;
|
||||
print(10, 10, Bottom|Right, text);
|
||||
if (sec() - last > speed) {
|
||||
last = sec();
|
||||
if (dir == 0) text = text[$-1] ~ text[0 .. $-1];
|
||||
else text = text[1 .. $] ~ text[0];
|
||||
}
|
||||
flip; events;
|
||||
if (mouse.clicked
|
||||
&& mouse.pos in display.select(10, 10, 100, 20)
|
||||
) dir = !dir;
|
||||
}
|
||||
}
|
||||
38
Task/Animation/E/animation-1.e
Normal file
38
Task/Animation/E/animation-1.e
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# State
|
||||
var text := "Hello World! "
|
||||
var leftward := false
|
||||
|
||||
# Window
|
||||
def w := <swing:makeJFrame>("RC: Basic Animation")
|
||||
|
||||
# Text in window
|
||||
w.setContentPane(def l := <swing:makeJLabel>(text))
|
||||
l.setOpaque(true) # repaints badly if not set!
|
||||
l.addMouseListener(def mouseListener {
|
||||
to mouseClicked(_) {
|
||||
leftward := !leftward
|
||||
}
|
||||
match _ {}
|
||||
})
|
||||
|
||||
# Animation
|
||||
def anim := timer.every(100, fn _ { # milliseconds
|
||||
def s := text.size()
|
||||
l.setText(text := if (leftward) {
|
||||
text(1, s) + text(0, 1)
|
||||
} else {
|
||||
text(s - 1, s) + text(0, s - 1)
|
||||
})
|
||||
})
|
||||
|
||||
# Set up window shape and close behavior
|
||||
w.pack()
|
||||
w.setLocationRelativeTo(null)
|
||||
w.addWindowListener(def windowListener {
|
||||
to windowClosing(_) { anim.stop() }
|
||||
match _ {}
|
||||
})
|
||||
|
||||
# Start everything
|
||||
w.show()
|
||||
anim.start()
|
||||
17
Task/Animation/E/animation-2.e
Normal file
17
Task/Animation/E/animation-2.e
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
def [reverse, stop] := {
|
||||
var text := "Hello World! "
|
||||
var leftward := false
|
||||
|
||||
def anim := timer.every(100, fn _ { # milliseconds
|
||||
def s := text.size()
|
||||
text := if (leftward) {
|
||||
text(1, s) + text(0, 1)
|
||||
} else {
|
||||
text(s - 1, s) + text(0, s - 1)
|
||||
}
|
||||
print("\b" * s, text)
|
||||
})
|
||||
print("\n", text)
|
||||
anim.start()
|
||||
[def _() { leftward := !leftward; null }, anim.stop]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue